Introduction
This document provides details of the json schema for ClaimMaker export.
JSON Schema Export
"3894_513244_FACILITY_2023-01-17_MARTEL, BEATRICE A": {
"batch_id": <int>, //batch id in Claim Maker
"claim": [ //array of multiple claims/”line items”. see Example (click here)
{
"box19": "",
"customField1": "",
"customField2": "",
"customField3": "",
"customField4": "",
"customField5": "",
"entities": [ // single entity represents a single line item [combination of CPT/ASA/ICD(s)/Modifier(s)/Practitioner]
{
"code": “12345”, //string. the value for this entity
"order": 0, //int. the order of the value in the ‘type’ group
"type": “SurgCPT”, //string. examples: SurgCPT/AnesCPT/ICD10/Modifier/Practitioner/PractitionerNPI
"unitValue": 0, //int. the ASA base unit value. only applies to type==’AnesCPT’
},
…
],
"order": 1, //int. order represents order of the line item in the claim from 1 to N
},
…
],
"created_date": "2023-01-18", //YYYY-MM-DD
"date_of_service": "2023-01-17", //YYYY-MM-DD
"id": 513244, //internal ID
"meta": {
"refURL": "https://claimmaker.hank.ai/app/code/batch/123/job/456”, //direct url to open the case in HANK Claim Maker
"created": "2023-01-18 10:00:40", //YYYY-MM-DD HH:MM:SS. datetime case was created in Claim Maker
"entireTimeSpent": 62,
"hasDemographics": false,
"isDataEntered": false,
"isManuallyCreated": false,
"lastUpdated": "2023-01-21 20:00", //YYYY-MM-DD HH:MM:SS. datetime case was last modified in HANK Claim Maker
"lastUpdatedExport": "",
"schemaVersion": "2.0.3",
"source": "extractor",
"timeSpent": 36
},
"note": "", //any case-related information provided to or from revenue cycle personnel. this does NOT hold clinical notes or medical records.
"patient_full_name": "", //patient full name
"patient_info": {
"guarantor": {
"address": { //Example below
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"dob": "1986-06-04", //date of birth of guarantor. timestamp. YYYY-MM-DD
"email": "",
"employer": {
"address": {
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"name": "",
"phone": ""
},
"first": "",
"fullName": "",
"homePhone": "",
"language": "",
"last": "",
"maritalStatus": "",
"middle": "",
"mobilePhone": "",
"relationship": "",
"sex": "",
"ssn": "",
"workPhone": ""
},
"insurance": [ //list of insurance plans for the patient, in order, from primary through N
{
"insuranceID": "XXXXXXXXXXXXX",
"address": {
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"authorizationNumber": "",
"company": "",
"groupId": "",
"phone": "",
"plan": "",
"policyId": "",
"subscriber": {
"address": {
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"dob": "",
"email": "",
"employer": {
"address": {
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"name": "",
"phone": ""
},
"first": "",
"fullName": "",
"homePhone": "",
"language": "",
"last": "",
"maritalStatus": "",
"middle": "",
"mobilePhone": "",
"relationship": "",
"sex": "",
"ssn": "",
"workPhone": ""
}
}
],
"patient": {
"accn": "",
"address": {
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"dob": "", //YYYY-MM-DD. patient’s date of birth
"email": "",
"employer": {
"address": {
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"name": "",
"phone": ""
},
"encn": "",
"first": "",
"fullName": "",
"homePhone": "",
"language": "",
"last": "",
"maritalStatus": "",
"middle": "",
"mobilePhone": "",
"mrn": "",
"primaryCareProvider": "",
"relationship": "",
"sex": "",
"ssn": "",
"workPhone": ""
}
},
"provider_correlation_id": "", //internal use
"provider_facility": "FACILITY", //string. name of the facility where this encounter occurred
"schedule": {
"admitDate": "", //YYYY-MM-DD. date of admission to facility
"anType": “General”, //string. primary anesthesia type. General/MAC/Spinal/etc
"anesthesiaStaff": [ //list of dicts of providers for the encounter. includes their role, name, start time, end time, and a flag for whether they were marked as the primary provider for the case or not
{
"endTime": "",//HH:MM. provider end time as appears on document
"isResponsibleProvider": true, //boolean. true/false. was this provider marked as the provider responsible for the case
"provider": "", //string. provider name
"providerNPI": "XXXXXX",
"role": "", //string. holds providers role, such as CRNA, SUPERVISING, MD, etc
"startTime": "" //HH:MM. provider start time as appears on document
}
],
"asa": "", //string. ASA classification 1 through 6
"class": "",
"diagnosis": "", //string. short diagnosis description provided as rationale for surgical procedure
"difficultIntubation": true, //boolean. true/false,
"dischargeDate": "", //YYYY-MM-DD. date of discharge from facility
"emergent": false, //boolean. true/false,
"endTime": "",//HH:MM. anesthesia end time as appears on document
"procedure": "", //string. short surgical description
"recSigned": true, //boolean. was the medical record signed by a provider. true/false,
"room": "", //string. OR location room
"startTime": "", //HH:MM. anesthesia start time as appears on document
"surgeon": "" //string. surgeon name
"surgeonNPI": "XXXXXXX"
},
"state": "", //internal use. does NOT represent US states
"status": "", //internal use
},
//FUTURE CONSIDERATIONS [NOT SUPPORTED] - Case Documentation
"input": {
"entities_metadata": [
{
"text": "...", //Will contain text unless documentId is present which is located on S3
"textLength": <int>, //size of text
"noteType": "AnesProcNotes/AnesIntraop/AnesPostEval/AnesPreEval/BillingDetails”
"inputType": "json",
"documentId": "", //if not json, then will be pointing to s3 identifier
"noteHeader": "", //type of note
"inputSource": "extractor", //Internal use only
"userAttached": false, //internal use only
"lastModifiedTime": "" //string represents timestamp
},
…
],
"documentId": "", //document home location
"dateDemographics": "" //string represents timestamp
}
}
HOW TO Traverse the Claim Entities to Recreate the Claim
- Iterate over the “claim” list to get a list of line item dictionaries
- Sort the list of line item dictionaries by value in the line item “order” key, ascending
- Iterate over the line item dictionaries
- Iterate over the entities and group them by “type” (SurgCPT, AnesCPT, …)
- Sort each group by the value in the entities “order” key, ascending
- Extract the “code” value for each entity
After doing the above, you’ll have a list of line items that hold lists of the SurgCPT, AnesCPT, ICD10, Modifiers, and Practitioner with the values for each in order
Example of Export with Values
{
"3894_513244_FACILITY_2023-01-17_MARTEL, BEATRICE A": {
"batch_id": 3894,
"documentIds": [
"hank-ai-clients:client.com/facility/processed/AnesIntraop_fj3489f.pdf",
"hank-ai-clients:client.com/facility/processed/MARTEL, B_01-17-2023.pdf",
"hank-ai-clients:client.com/facility/processed/MARTEL, B_facesheet.pdf"
],
"claim": [
{
"box19": "",
"customField1": "1723703735",
"customField2": "XX404, 4256F, XX430, G2149",
"customField3": "",
"customField4": "",
"customField5": "",
"entities": [
{
"code": "29880",
"order": 0,
"type": "SurgCPT",
"unitValue": 0
},
{
"code": "01400",
"order": 0,
"type": "AnesCPT",
"unitValue": 4
},
{
"code": "S83.242A",
"order": 0,
"type": "ICD10",
"unitValue": 0
},
{
"code": "I50.1",
"order": 1,
"type": "ICD10",
"unitValue": 0
},
{
"code": "59",
"order": 0,
"type": "Modifier",
"unitValue": 0
},
{
"code": "Jim Smith, MD",
"order": 0,
"type": "Practitioner",
"unitValue": 0
},
{
"code": "XXXXXX",
"order": 0,
"type": "PractitionerNPI",
"unitValue": 0
}
],
"order": 1
}
],
"created_date": "2023-01-18",
"date_of_service": "2023-01-17",
"id": 513244,
"meta": {
"created": "2023-01-18 10:00:40",
"entireTimeSpent": 62,
"hasDemographics": false,
"isDataEntered": false,
"isManuallyCreated": false,
"lastUpdated": "2023-01-21 20:00",
"lastUpdatedExport": "",
"schemaVersion": "2.0.3",
"source": "extractor",
"timeSpent": 36
},
"note": "",
"patient_full_name": "MARTEL, BEATRICE A",
"patient_info": {
"guarantor": {
"address": {
"city": "BRANSON",
"state": "WA",
"street1": "51 BEAUREMONT DR",
"street2": "",
"zip": "67891"
},
"dob": "1986-06-04",
"email": "beatriceemail at email.com",
"employer": {
"address": {
"city": "BRANSON",
"state": "WA",
"street1": "ONE MEDICAL CENTER DRIVE",
"street2": "",
"zip": "29876"
},
"name": "SAMPLE MEMORIAL HOSPITAL",
"phone": "+1 555-650-5000"
},
"first": "BEATRICE",
"fullName": "MARTEL, BEATRICE A",
"homePhone": "",
"language": "",
"last": "MARTEL",
"maritalStatus": "SINGLE",
"middle": "A",
"mobilePhone": "+1 555-359-7465",
"relationship": "SELF",
"sex": "F",
"ssn": "XXX-XX-9999",
"workPhone": ""
},
"insurance": [
{
"insuranceID": "XXXXXXXXXXXXX",
"address": {
"city": "LONDON",
"state": "KY",
"street1": "ATTN: CLAIMS PROCESSING DEPT PO BOX 7387",
"street2": "",
"zip": "40742-7387"
},
"authorizationNumber": "",
"company": "AMERIHEALTH CARITAS MANAGED\nMEDICAID",
"groupId": "",
"phone": "+1 888-599-1479",
"plan": "AMERIHEALTH CARITAS NH",
"policyId": "98765678",
"subscriber": {
"address": {
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"dob": "1986-06-04",
"email": "",
"employer": {
"address": {
"city": "",
"state": "",
"street1": "",
"street2": "",
"zip": ""
},
"name": "",
"phone": ""
},
"first": "BEATRICE",
"fullName": "MARTEL, BEATRICE A",
"homePhone": "",
"language": "",
"last": "MARTEL",
"maritalStatus": "",
"middle": "A",
"mobilePhone": "",
"relationship": "SELF",
"sex": "",
"ssn": "",
"workPhone": ""
}
}
],
"patient": {
"accn": "",
"address": {
"city": "BRANSON",
"state": "WA",
"street1": "51 BEAUREMONT DR",
"street2": "",
"zip": "67891"
},
"dob": "1986-06-04",
"email": "beatriceemail at email.com",
"employer": {
"address": {
"city": "BRANSON",
"state": "WA",
"street1": "ONE MEDICAL CENTER DRIVE",
"street2": "",
"zip": "29876"
},
"name": "MEMORIAL HOSPITAL",
"phone": "+1 555-650-5000"
},
"encn": "",
"first": "BEATRICE",
"fullName": "MARTEL, BEATRICE A",
"homePhone": "",
"language": "",
"last": "MARTEL",
"maritalStatus": "SINGLE",
"middle": "A",
"mobilePhone": "+1 555-359-7465",
"mrn": "98756987",
"primaryCareProvider": "BRANSON FAMILY PRACTICE 555-448-3122",
"relationship": "SELF",
"sex": "F",
"ssn": "XXX-XX-9999",
"workPhone": ""
}
},
"provider_correlation_id": "hank-ai-clients:bluelakesolutions.com/facility/processed/DailyCases20230117.csv",
"provider_facility": "FACILITY",
"schedule": {
"admitDate": "",
"anType": "general",
"anesthesiaStaff": [
{
"endTime": "15:54",
"isResponsibleProvider": true,
"provider": "WATKINS, MICHAEL R, CRNA",
"providerNPI": "XXXXXX",
"role": "CRNA",
"startTime": "14:43"
}
],
"asa": "2",
"class": "Hospital Outpatient Surgery",
"diagnosis": "Chronic pain of left knee [M25.562, G89.29\nTear of medial meniscus of left knee, current, unspecified tear type, initial encounter [S83.242A",
"difficultIntubation": false,
"dischargeDate": "",
"emergent": false,
"endTime": "15:54",
"procedure": "ARTHROSCOPY WITH MENISCECTOMY, LAT.& MEDIAL WITH SHAVING (WRVU 7.39) [29880], MODIFIER SMITH & NEPHEW ENDOSCOPY - FLOW 50 / WERE WOLF",
"recSigned": true,
"room": "OR 02",
"startTime": "14:43",
"surgeon": "HOUDE, JOHN P",
"surgeonNPI": "XXXXXXX"
},
"state": "CodeCompleted",
"status": "OK"
}
}
There are two main use cases:
Electronic Records
- providerNPI, surgeonNPI, insuranceID: Hank.ai will maintain the IDs for Insurance, Provider [NPI], and Surgent [NPI] as available
- User Experience: Electronic records should work as is today based on existing mapping
Paper Records [Mobile]
- providerNPI – hash ID that is constructed from the name
- surgeonNPI – hash ID that is constructed from the name
- insuranceID – hash ID that is facility name, company name, PO Box, Plan
- User Experience: Initially mapping will have to be implemented at first.
- Hank.ai: In about 10-12 weeks there should be a solution.