Last active
August 29, 2015 14:11
-
-
Save yoon/0fb3199935f923580d39 to your computer and use it in GitHub Desktop.
DRAFT health-data-standards JSON schema
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "http://json-schema.org/draft-04/schema#", | |
"definitions": { | |
"entry": { | |
"allOf": [ | |
{ "$ref": "#/definitions/thing_with_codes" }, | |
{ "properties": { | |
"description": { "type": ["string", "null"] }, | |
"specifics": { "type": ["string", "null"] }, | |
"time": { "type": ["integer", "null"] }, | |
"start_time": { "type": ["integer", "null"] }, | |
"end_time": { "type": ["integer", "null"] }, | |
"status_code": { "type": ["object", "null"] }, | |
"mood_code": { | |
"type": "string", | |
"default": "EVN" | |
}, | |
"negation_ind": { "type": ["boolean", "null"] }, | |
"negation_reason": { "type": ["object", "null"] }, | |
"oid": { "type": ["string", "null"] }, | |
"reason": { "type": ["object", "null"] }, | |
"cda_identifier": { "type": ["object", "null"] }, | |
"values": { "type": ["array", "null"] } | |
} | |
} | |
] | |
}, | |
"provider": { | |
"allOf": [ | |
{ "$ref": "#/definitions/person" }, | |
{ "properties": { | |
"specialty": { "type": ["string", "null"] }, | |
"phone": { "type": ["string", "null"] }, | |
"organization": { "$ref": "#/definitions/organization" }, | |
"cda_identifiers": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/cda_identifier" } | |
} | |
} | |
} | |
] | |
}, | |
"transfer": { | |
"allOf": [ | |
{ "$ref": "#/definitions/thing_with_codes" }, | |
{ "properties": { | |
"time": { "type": ["integer", "null"] } | |
} | |
} | |
] | |
}, | |
"lab_result": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"reference_range": { "type": ["string", "null"] }, | |
"interpretation": { "type": ["object", "null"] } | |
} | |
} | |
] | |
}, | |
"fulfillment_history": { | |
"type": "object", | |
"properties": { | |
"prescription_number": { "type": ["string", "null"] }, | |
"dispense_date": { "type": ["integer", "null"] }, | |
"quantity_dispensed": { "type": ["object", "null"] }, | |
"fill_number": { "type": ["integer", "null"] }, | |
"fill_status": { "type": ["string", "null"] } | |
} | |
}, | |
"order_information": { | |
"type": "object", | |
"properties": { | |
"order_number": { "type": ["string", "null"] }, | |
"fills": { "type": ["integer", "null"] }, | |
"quantity_ordered": { "type": ["hash", "null"] }, | |
"order_expiration_date_time": { "type": ["integer", "null"] }, | |
"order_date_time": { "type": ["integer", "null"] } | |
} | |
}, | |
"address": { | |
"type": "object", | |
"properties": { | |
"street": { "type": ["array", "null"], "default": [] }, | |
"city": { "type": ["string", "null"] }, | |
"state": { "type": ["string", "null"] }, | |
"zip": { "type": ["string", "null"] }, | |
"country": { "type": ["string", "null"] }, | |
"use": { "type": ["string", "null"] } | |
} | |
}, | |
"telecom": { | |
"type": "object", | |
"properties": { | |
"use": { "type": ["string", "null"] }, | |
"value": { "type": ["string", "null"] }, | |
"preferred": { "type": ["boolean", "null"] } | |
} | |
}, | |
"organization": { | |
"type": "object", | |
"properties": { | |
"name": { "type": ["string", "null"] }, | |
"addresses": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/address" } | |
}, | |
"telecoms": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/telecom" } | |
} | |
} | |
}, | |
"person": { | |
"type": "object", | |
"properties": { | |
"title": { "type": ["string", "null"] }, | |
"given_name": { "type": ["string", "null"] }, | |
"family_name": { "type": ["string", "null"] }, | |
"addresses": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/address" } | |
}, | |
"telecoms": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/telecom" } | |
} | |
} | |
}, | |
"guarantor": { | |
"type": "object", | |
"properties": { | |
"organization": { "$ref": "#/definitions/organization" }, | |
"person": { "$ref": "#/definitions/person" }, | |
"time": { "type": ["integer", "null"] }, | |
"start_time": { "type": ["integer", "null"] }, | |
"end_time": { "type": ["integer", "null"] } | |
} | |
}, | |
"cda_identifier": { | |
"type": "object", | |
"properties": { | |
"root": { "type": ["string", "null"]}, | |
"extension": { "type": ["string", "null"]} | |
} | |
}, | |
"encounter": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"admit_type": { "type": ["object", "null"]}, | |
"discharge_disposition": { "type": ["object", "null"]}, | |
"admit_time": { "type": ["integer", "null"]}, | |
"discharge_time": { "type": ["integer", "null"]}, | |
"transfer_to": { "$ref": "#/definitions/transfer" }, | |
"transfer_from": { "$ref": "#/definitions/transfer" }, | |
"facility": { "type": ["object", "null"] }, | |
"reason": { | |
"oneOf": [ | |
{ "type": "null" }, | |
{ "$ref": "#/definitions/entry" } | |
] | |
} | |
} | |
} | |
] | |
}, | |
"result_value": { | |
"type": "object" | |
}, | |
"thing_with_codes": { | |
"type": "object", | |
"properties": { | |
"codes": { "type": ["object", "null"], "default": {} } | |
} | |
}, | |
"provider_performance": { | |
"type": "object", | |
"properties": { | |
"start_date": { "type": ["integer", "null"] }, | |
"end_date": { "type": ["integer", "null"] } | |
} | |
} | |
}, | |
"type": "object", | |
"properties": { | |
"title": { "type": ["string", "null"] }, | |
"first": { "type": ["string", "null"] }, | |
"last": { "type": ["string", "null"] }, | |
"gender": { "type": ["string", "null"] }, | |
"birthdate": { "type": ["integer", "null"] }, | |
"deathdate": { "type": ["integer", "null"] }, | |
"religious_affiliation": { "type": ["object", "null"] }, | |
"effective_time": { "type": ["integer", "null"] }, | |
"race": { "type": ["object", "null"] }, | |
"ethnicity": { "type": ["object", "null"] }, | |
"languages": { | |
"type": "array", | |
"default": [] | |
}, | |
"test_id": { "type": ["string", "null"] }, | |
"marital_status": { "type": ["object", "null"] }, | |
"medical_record_number": { "type": ["string", "null"] }, | |
"medical_record_assigner": { "type": ["string", "null"] }, | |
"expired": { "type": ["boolean", "null"] }, | |
"clinical_trial_participant": { "type": ["boolean", "null"] }, | |
"provider_performances": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/provider_performance" } | |
}, | |
"addresses": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/address" } | |
}, | |
"telecoms": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/telecom" } | |
}, | |
"allergies": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"type": { "type": ["object", "null"] }, | |
"reaction": { "type": ["object", "null"] }, | |
"severity": { "type": ["object", "null"] } | |
} | |
} | |
] | |
} | |
}, | |
"care_goals": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/entry" | |
} | |
}, | |
"conditions": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"type": { "type": ["string", "null"] }, | |
"cause_of_death": { "type": ["boolean", "null"] }, | |
"time_of_death": { "type": ["integer", "null"] }, | |
"priority": { "type": ["integer", "null"] }, | |
"name": { "type": ["string", "null"] }, | |
"ordinality": { "type": ["object", "null"] }, | |
"severity": { "type": ["object", "null"] }, | |
"treating_provider": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/provider" } | |
} | |
} | |
} | |
] | |
} | |
}, | |
"encounters": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/encounter" } | |
}, | |
"immunizations": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"series_number": { "type": ["integer", "null"] }, | |
"performer": { "$ref": "#/definitions/provider" }, | |
"medication_product": { "type": ["object", "null"] } | |
} | |
} | |
] | |
} | |
}, | |
"medical_equipment": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"manufacturer": { "type": ["string", "null"] }, | |
"anatomical_structure": { "type": ["object", "null"] }, | |
"removal_time": { "type": ["integer", "null"] } | |
} | |
} | |
] | |
} | |
}, | |
"medications": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"administration_timing": { "type": ["object", "null"] }, | |
"freetextsig": { "type": ["string", "null"] }, | |
"dose": { "type": ["object", "null"] }, | |
"type_of_medication": { "type": ["object", "null"] }, | |
"status_of_medication": { "type": ["object", "null"] }, | |
"fulfillment_history": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/fulfillment_history" } | |
}, | |
"order_information": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/order_information" } | |
}, | |
"route": { "type": ["object", "null"] }, | |
"site": { "type": ["object", "null"] }, | |
"dose_restriction": { "type": ["object", "null"] }, | |
"fulfillment_instructions": { "type": ["string", "null"] }, | |
"indication": { "type": ["object", "null"] }, | |
"product_form": { "type": ["object", "null"] }, | |
"vehicle": { "type": ["object", "null"] }, | |
"reaction": { "type": ["object", "null"] }, | |
"delivery_method": { "type": ["object", "null"] }, | |
"patient_instructions": { "type": ["string", "null"] }, | |
"dose_indicator": { "type": ["string", "null"] }, | |
"cumulative_medication_duration": { "type": ["object", "null"] } | |
} | |
} | |
] | |
} | |
}, | |
"procedures": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"site": { "type": ["object", "null"] }, | |
"incision_time": { "type": ["integer", "null"] }, | |
"ordinality": { "type": ["object", "null"] }, | |
"source": { "type": ["object", "null"] } | |
} | |
} | |
] | |
} | |
}, | |
"results": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/lab_result" } | |
}, | |
"social_history": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/entry" | |
} | |
}, | |
"vital_signs": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/lab_result" } | |
}, | |
"support": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"address": { "$ref": "#/definitions/address" }, | |
"telecom": { "$ref": "#/definitions/telecom" }, | |
"title": { "type": ["string", "null"] }, | |
"given_name": { "type": ["string", "null"] }, | |
"family_name": { "type": ["string", "null"] }, | |
"mothers_maiden_name": { "type": ["string", "null"] }, | |
"type": { "type": ["string", "null"] }, | |
"relationship": { "type": ["string", "null"] } | |
} | |
} | |
] | |
} | |
}, | |
"advance_directives": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/entry" } | |
}, | |
"insurance_providers": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"payer": { "$ref": "#/definitions/organization" }, | |
"guarantors": { | |
"type": "array", | |
"items": { "$ref": "#/definitions/guarantor" } | |
}, | |
"subscriber": { "$ref": "#/definitions/person" }, | |
"type": { "type": ["string", "null"] }, | |
"member_id": { "type": ["string", "null"] }, | |
"relationship": { "type": ["object", "null"] }, | |
"financial_responsibility_type": { "type": ["object", "null"] }, | |
"name": { "type": ["string", "null"] } | |
} | |
} | |
] | |
} | |
}, | |
"functional_statuses": { | |
"type": "array", | |
"items": { | |
"allOf": [ | |
{ "$ref": "#/definitions/entry" }, | |
{ "properties": { | |
"type": { "type": ["string", "null"] }, | |
"source": { "type": ["object", "null"] } | |
} | |
} | |
] | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment