Summary
Claim AI-based Adjudication System
Use cases
AI-based Claim Adjudication Status
The following state diagram corresponds to the Claim fields status with the updated adjudication process.
AI-based Claim Adjudication Process
The following activity diagram proposes the updated adjudication process.
Deployment architecture
Claim-AI Quality Module
Claim-AI Quality Responsibilities
Contribute to Claim Review Search with Medical Item/Service and AI-categorized filters
Prepare the new checked claims for AI categorisation
Push Claims to Claim-AI module on scheduled task and/or event-based activation and update Claims based on the response
Reports Claim adjudication misclassifications
Models
The new Claim-AI adjudication process is executed between Rule-based engine and the manual adjudication. Because we decided not to add additional statuses to Claim, requiring to modify the Claim module, we propose to use the JSON extensions that can be added and updated from the Claim-AI Quality module.
The following JSON extensions will be created to support the Claim AI-based Categorisation:
claim_ai
to add information on Claim. The fieldwas_categorized
allow to filter automatically checked Claim that have not been categorized by AI and ‘hide’ them for manual adjudication."json_ext": { "claim_ai_quality": { "was_categorized": "boolean", // whether the claim has been categorized by Claim-AI module or not "request_time": "datetime", // time when the claim has been sent to Claim-AI module "response_time": "datetime" // time when the claim adjudication response has been received from Claim-AI module } }
claim_ai_item
to add information on ClaimItem and ClaimService. This is used to store AI categorisation result to allow the misclassification report."json_ext": { "claim_ai_quality": { "ai_result": "integer" // claim adjudication value provided by Claim-AI module (for misclassification report) } }
Because ClaimItem
and ClaimService
doesn’t support custom fields, these classes need to be extended with ExtendableModel
class.
Migrations
Because the Claim-AI modules are activated after Claims have been adjudicated (the data used for the training), a migration script needs to be created to insert the JSON fields into the available data. The following initializations will be used:
Claim.json_ext.claim_ai_quality.was_categorized = true Claim.json_ext.claim_ai_quality.request_time = Claim.ValidityFromReview Claim.json_ext.claim_ai_quality.response_time = Claim.ValidityFromReview ClaimService.json_ext.claim_ai_quality.ai_result = ClaimService.ClaimServiceStatus ClaimItem.json_ext.claim_ai_quality.ai_result = ClaimItem.ClaimItemStatus
Module Configuration
The following module configuration is accepted:
{ claim_ai_url: string // URL of the openIMIS instance running Claim-AI module. Default: "" event_based_activation: boolean // True if the checked Claims are sent to Claim-AI module immediatly after check. Default: False }
Claim-AI Adjudication Activation Methods
Two activation methods, allowing to start the Claim-AI module processing, are available in the Claim-AI Quality module.
Event-based activation
This activation is based on the openIMIS mutation signal signal_mutation_module_after_mutating
on SubmitClaimMutation
mutation (red AcceptSignalAction in AI-based Claim Adjudication Process). First, this event allows to prepare the Claims for the Claim-AI adjudication processing. Second, it would allow to push the Claims to Claim-AI module for the actual adjudication. Because we are interested to activate the processing using this event, we propose to define the module configuration variable event_based_activation
, allowing to push the checked Claims immediately after Rule Engine check.
The event-based activation allows a continuously communication flow between the openIMIS implementation and the Claim-AI implementation.
Schedule Task activation
This activation is using the DjangoScheduler to schedule the sending of Claim to Claim-AI module (pink AcceptSignalAction in AI-based Claim Adjudication Process). As the Event-based activation, this trigger is also pushing the checked Claims to Claim-AI module.
In case the Event-based activation is activated (event_based_activation=True
), the triggering of the Schedule Task will not do anything because all the checked Claims have already been sent during
Claims Preparation
AI-based Claim Adjudication Process
Pushing Claims to Claim-AI Module
Build FHIR Claim Bundle
FHIR Contained Resources
FHIR Contained Resources feature (https://www.hl7.org/fhir/references.html#contained) allows to integrate the referred resourced. In our case for FHIR Claim, these are Patient, Condition, Medication, HealthcareService, Practitioner, ActivityDefinition.
Because AI-model is requiring information from other resources referenced by the Claim, these resources must to be accessible in the POST call sent by claim-ai-quality module.
The mechanism to build Claim resource with Contained Resources is to be developed in the openIMIS FHIR R4 module.
The construction based on Contained Resources should be possible based on query variable contained=true/false
. Default false
.
Custom Claim Review Search Filters - Frontend
The following contributor filters to claim.ReviewsFilter
are defined:
ClaimFilterMedicalItem
allows Medical Officers to filter the Claims list based on a specific Medical Item (only one from autocomplete list)ClaimFilterMedicalService
allows Medical Officers to filter the Claims list based on a specific Medical Service (only one from autocomplete list)ClaimFilterAIProcessed
allows Medical Officers to display or hide the non AI-processed Claims (checkbox, decision if this is hidden or not)
AI Categorisation Misclassification Report
A report is generated that provides the following information (based on manual reviewed Claims ):
accuracy scores
number of True Positives results
number of True Negative results
number of False Positive results
number of False Negative results
Decision: should this report be a webpage or a PDF
Claim-AI Module
Claim-AI Responsibilities
REST API accepting FHIR Claims to categorize them based on a ML model
AI-model execution
REST API
The Claim-AI module will define one endpoint that will receive the FHIR Claim Bundle to be adjudicated. The base URL for this module is /claim_ai
Call: POST /claim_ai/Claim Body: FHIR R4 Claim Bundle with Contained Resources Response: FHIR R4 ClaimResponse Bundle