health.ccdatojson
Module health.ccdatojson
API
Definitions
wso2healthcare/health.ccdatojson
CCDA to Flat JSON Transformer
This package provides implementation for converting Clinical Document Architecture (CCDA) XML documents to a flattened JSON structure. It supports parsing and transforming various types of clinical documents into a standardized JSON format.
Supported Document Types
The transformer currently supports the following CCDA document types:
- Continuity of Care Document (CCD)
- Progress Notes
- Procedure Notes (TODO)
- Care Plans (TODO)
- Consultation Notes (TODO)
- Operative Notes (TODO)
- Referral Notes (TODO)
- Discharge Summaries (TODO)
Features
The transformer extracts and maps the following sections from CCDA documents:
Document Information
- Document type and code
- Author information
- Creation date
- Document ID
Demographics
- Patient information
- Race and ethnicity
- Language communication preferences
- Guardian information
- Birthplace details
Clinical Information
- Allergies
- Vital signs
- Immunizations
- Medications
- Procedures
- Problems/Diagnoses
- Lab results
- Assessment and plan
- Plan of treatment
- Instructions
- Progress notes
- Reason for visit
- Care team information
Encounter Information
- Encounter type
- Encounter time (start/end)
- Location details
- Care team members
Usage
The transformer provides a main function getCCDSummaries
that accepts an array of CCDA XML documents and returns an array of transformed summaries. The output is a flattened JSON structure that can be easily processed and integrated into other systems.
Output Structure
The transformed JSON includes the following main sections:
{ "documentInfo": [...], "demographics": [...], "encounter": [...], "allergies": [...], "vitalSigns": [...], "immunizations": [...], "medications": [...], "procedures": [...], "problems": [...], "results": [...], "notes": [...], "reasonForVisits": [...], "assessmentAndPlans": [...], "planOfTreatments": [...], "instructions": [...], "assessments": [...], "careTeam": [...] }
Implementation Details
The transformer uses Ballerina's CCDA parsing capabilities to process CCDA documents and maps the Record structure to a custom JSON format. It handles various CCDA sections and their specific data types, including:
- Codes and code systems (LOINC, SNOMED CT, etc.)
- Dates and time ranges
- Measurements and units
- References and relationships between sections
- Text content and narrative blocks
Functions
aggregateToFlatStructure
function aggregateToFlatStructure((ProgressNoteSummary|CCDSummary)[] data) returns AggregateResult
Parameters
- data (ProgressNoteSummary|CCDSummary)[] -
getByAttribute
getCCDSummaries
function getCCDSummaries(string[] ccdDocuments) returns CCDSummary[]|error
Parameters
- ccdDocuments string[] -
getChildText
getSectionTextByAttribute
getSectionTextByID
Records
health.ccdatojson: Address
Fields
- street? string -
- city? string -
- state? string -
- postalCode? string -
- country? string -
health.ccdatojson: AddressItem
Fields
- street_lines? string[] -
- city? string -
- state? string -
- zip? string -
- use? string -
health.ccdatojson: Administration
Fields
- route? Route -
- interval? Interval -
health.ccdatojson: AdvanceDirective
Fields
- hasAdvanceDirective? boolean -
- directiveType? string -
- description? string -
- witnessedBy? string -
- date? string -
health.ccdatojson: AggregateResult
Aggregate result for the Clinical Document Summaries
Fields
- demographics Demographics[] - Patient demographics
- documentInfo DocumentInfo[] - Clinical Document info
- encounter Encounter[] - Encounter information
- allergies Allergy[] - Allergies
- immunizations Immunization[] - Immunizations
- medications Medications[] - Medications
- procedures Procedure[] - Procedures
- problems Problems[] - Problems
- vitalSigns VitalSigns[] - Vital Signs
- results Results[] - Results
- assessmentAndPlans AssessmentAndPlan[] - Assessment and Plans
- assessments Assessment[] - Assessments
- planOfTreatments PlanOfTreatment[] - Plan of Treatments
- instructions Instructions[] - Instructions
- notes ProgressNotes[] - Notes
- reasonForVisits ReasonForVisit[] - Reason for Visits
- careTeam CareTeam[] - Care Team
health.ccdatojson: Allergen
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: Allergies
Fields
- text? string -
- allergies Allergy[] -
health.ccdatojson: Allergy
Fields
- allergen? string -
- status? string -
- criticality? string -
- notedDate? string -
- reactions? AllergyReaction[] -
- comments? string[] -
- date_range? DateRange -
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
- severity? string -
- reaction? Reaction -
- reaction_type? ReactionType[] -
- allergen_info? Allergen -
- treating_clinician? Member -
health.ccdatojson: AllergyReaction
Fields
- code string -
- displayName string -
health.ccdatojson: Assessment
Fields
- title? string -
- text? string -
- assessmentItems? AssessmentItem[] -
health.ccdatojson: AssessmentAndPlan
Fields
- assesmentAndPlanNote? string -
- effectiveTime? string -
- status? string -
- assignedAuthor? Author -
- organization? Organization -
- plannedProcedures? PlannedProcedure[] -
health.ccdatojson: AssessmentItem
Fields
- code? string -
- name? string -
- severity? string -
- description? string -
health.ccdatojson: Author
Fields
- name? string -
- role? string -
- specialty? string -
health.ccdatojson: Birthplace
Fields
- place? Place -
health.ccdatojson: CareTeam
Fields
- attendingClinician? Member -
- startDate? string -
- endDate? string -
- relationship? Relationship -
health.ccdatojson: CCDSummary
Fields
- documentInfo? DocumentInfo -
- demographics? Demographics -
- encounter? Encounter -
- subjective? Subjective -
- objective? Objective -
- allergies? Allergies -
- immunizations? Immunization[] -
- medications? Medications[] -
- procedures? Procedure[] -
- problems? Problems[] -
- results? Results[] -
- careTeam? CareTeam -
- notes? ProgressNotes -
- assessment? Assessment -
- vitalSigns? VitalSigns -
- planOfTreatment? PlanOfTreatment -
health.ccdatojson: CholesterolResult
Fields
- 'type? string -
- value? string -
health.ccdatojson: CodeItem
Fields
- name? string -
- code? string -
- translations? TranslationsItem[] -
health.ccdatojson: Date_time
Fields
- point? Point -
health.ccdatojson: Date_time_01
Fields
- low? Low -
health.ccdatojson: DateRange
Fields
- 'start? string -
- end? string -
health.ccdatojson: Demographics
Fields
- patientId? string -
- firstName? string -
- middleName? string -
- lastName? string -
- dob? string -
- gender? string -
- address? Address -
- phone? string -
- email? string -
- emergencyContact? EmergencyContact -
- insuranceDetails? InsuranceDetails -
- birthTime? string -
- deceasedInd? boolean -
- deceasedTime? string -
- multipleBirthInd? boolean -
- multipleBirthOrderNumber? int -
- maritalStatusCode? string -
- religiousAffiliationCode? string -
- race? string -
- sdtcRaceCode? string[] -
- ethnicGroup? string -
- sdtcEthnicGroupCode? string[] -
- languageCommunication? LanguageCommunication[] -
- guardian? Guardian[] -
- birthplace? Birthplace -
health.ccdatojson: DocumentInfo
Fields
- documentId? string -
- documentTypeCode? string -
- author? Author -
- creationDate? string -
- lastModified? string -
- version? string -
- documentType? string -
health.ccdatojson: DoseQuantity
Fields
- value? string -
- unit? string -
health.ccdatojson: EducationType
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: EmailItem
Fields
- address? string -
health.ccdatojson: EmergencyContact
Fields
- name? string -
- relationship? string -
- phone? string -
health.ccdatojson: Encounter
Fields
- encounterId? string -
- encounterType? string -
- location? Location -
- encounterTime? EncounterTime -
- referral? Referral[] -
- careTeam? CareTeam -
- description? string -
health.ccdatojson: EncounterTime
Fields
- startTime? string -
- endTime? string -
health.ccdatojson: ExtendedProduct
Fields
- unencoded_name? string -
- product? Product -
health.ccdatojson: FamilyHistory
Fields
- father? string -
- mother? string -
health.ccdatojson: FollowUp
Fields
- timeFrame? string -
- 'type? string -
- reason? string -
health.ccdatojson: Guardian
Fields
- code? string -
- addr? Address[] -
- telecom? Telecom[] -
- guardianPerson? Person -
health.ccdatojson: IdentifiersItem
Fields
- identifier? string -
- extension? string -
health.ccdatojson: IdentifiersItem_01
Fields
- identifier? string -
- extension? string -
health.ccdatojson: Immunization
Fields
- administeredDate? string -
- product? Product -
- doseQuantity? DoseQuantity -
- route? Route -
- instructions? string -
- educationType? EducationType -
health.ccdatojson: Instructions
Fields
- status? string -
- patientInstructions? string -
- code? string -
- title? string -
- text? string -
- id? string -
- confidentialityCode? string -
- languageCode? string -
- author? Author[] -
- effectiveTime? string -
health.ccdatojson: InsuranceDetails
Fields
- provider? string -
- policyNumber? string -
- coverageStartDate? string -
- coverageEndDate? string -
health.ccdatojson: Interval
Fields
- period? Period -
- frequency? boolean -
health.ccdatojson: LabResults
Fields
- cholesterol? CholesterolResult[] -
- bloodSugar? string -
health.ccdatojson: LanguageCommunication
Fields
- languageCode? string -
- modeCode? string -
- proficiencyLevelCode? string -
- preferenceInd? boolean -
health.ccdatojson: Location
Fields
- healthCareFacility? string -
- room? string -
- address? Address -
- telecom? Telecom[] -
health.ccdatojson: Low
Fields
- date? string -
- precision? string -
health.ccdatojson: Medication
Fields
- name? string -
- dose? string -
- route? string -
- frequency? string -
- startDate? string -
- endDate? string -
health.ccdatojson: Medications
Fields
- dateRange? DateRange -
- sig? string -
- product? Product -
- doseQuantity? DoseQuantity -
- rateQuantity? RateQuantity -
- supply? Supply -
- precondition? PreCondition -
- administration? Administration -
- vehicle? Vehicle -
- prescriber? Prescriber -
- status? string -
health.ccdatojson: Member
Fields
- id? string -
- name? string -
- role? string -
- address? Address -
- telecom? Telecom[] -
health.ccdatojson: NameItem
Fields
- middle? string[] -
- last? string -
- suffix? string -
- first? string -
health.ccdatojson: Objective
Fields
- vitalSigns? VitalSigns -
- physicalExam? PhysicalExam -
- labResults? LabResults -
health.ccdatojson: Observation
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
- value? string -
- unit? string -
- effectiveTime? string -
- status? string -
health.ccdatojson: Organization
Fields
- name? string -
- address? Address -
health.ccdatojson: Performer
Fields
- identifier? IdentifiersItem[] -
- name? string -
- organization? Organization -
- phone? PhoneItem[] -
- code? CodeItem[] -
- address? Address -
health.ccdatojson: PerformersItem
Fields
- identifiers? IdentifiersItem[] -
- name? NameItem[] -
- address? AddressItem[] -
- email? EmailItem[] -
- phone? PhoneItem[] -
- code? CodeItem[] -
health.ccdatojson: Period
Fields
- value? string -
- unit? string -
health.ccdatojson: Person
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
- 'type? string -
health.ccdatojson: PhoneItem
Fields
- number? string -
- 'type? string -
health.ccdatojson: PhysicalExam
Fields
- cardiovascular? string -
- respiratory? string -
- gastrointestinal? string -
health.ccdatojson: Place
Fields
- name? string -
- addr? Address -
health.ccdatojson: PlannedProcedure
Fields
- code? string -
- procedureName? string -
- date? string -
- provider? string -
- location? string -
- status? string -
- reason? string -
- physician? string -
health.ccdatojson: PlanOfTreatment
Fields
- medications? Medication[] -
- followUp? FollowUp -
- plannedProcedures? PlannedProcedure[] -
health.ccdatojson: Point
Fields
- date? string -
- precision? string -
health.ccdatojson: PreCondition
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: Prescriber
Fields
- organization? Organization -
- person? Person -
health.ccdatojson: Problem
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
- translations? TranslationsItem[] -
- date_time? Date_time_01 -
health.ccdatojson: Problems
Fields
- date? string -
- name? string -
- identifiers? IdentifiersItem[] -
- onset_age? string -
- problem? Problem -
- status? Status -
- source_list_identifiers? IdentifiersItem[] -
- comment? string -
health.ccdatojson: Procedure
Fields
- identifiers? IdentifiersItem[] -
- code? string -
- code_system_name? string -
- name? string -
- text? string -
- status? string -
- startTime? string -
- endTime? string -
- targetSite? TargetSite -
- performer? Performer -
- date? string -
health.ccdatojson: Product
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
- translation? Translation -
- lot_number? string -
- manufacturer_name? string -
health.ccdatojson: ProgressNotes
Fields
- notes? string -
- effectiveTime? string -
- status? string -
- assignedAuthor? Author -
health.ccdatojson: ProgressNoteSummary
Fields
- documentInfo? DocumentInfo -
- demographics? Demographics -
- encounter? Encounter -
- subjective? Subjective -
- objective? Objective -
- assessment? Assessment -
- assessmentAndPlan? AssessmentAndPlan -
- planOfTreatment? PlanOfTreatment -
- allergies? Allergies -
- instructions? Instructions -
- advanceDirectives? AdvanceDirective[] -
- vitalSigns? VitalSigns -
- immunizations? Immunization[] -
- medications? Medications[] -
- procedures? Procedure[] -
- problems? Problems[] -
- results? Results[] -
- notes? ProgressNotes -
- reasonForVisits? ReasonForVisit -
- careTeam? CareTeam -
health.ccdatojson: RateQuantity
Fields
- value? string -
- unit? string -
health.ccdatojson: Reaction
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: ReactionType
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: ReasonForVisit
Fields
- text? string -
- visitEntries? Observation[] -
health.ccdatojson: Reference_range
Fields
- text? string -
- low_unit? string -
- low_value? string -
- high_unit? string -
- high_value? string -
health.ccdatojson: Referral
Fields
- referredBy? string -
- specialty? string -
- reason? string -
health.ccdatojson: Relationship
Fields
- code? string -
- displayName? string -
- text? string -
health.ccdatojson: Results
Fields
- name? string -
- date? string -
- code? string -
- code_system? string -
- code_system_name? string -
- tests? TestsItem[] -
health.ccdatojson: Route
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: Schedule
Fields
- 'type? string -
- period? Period -
health.ccdatojson: SocialHistory
Fields
- smoking? string -
- alcoholUse? string -
- exerciseHabits? string -
health.ccdatojson: Status
Fields
- name? string -
- date_time? Date_time_01 -
health.ccdatojson: Subjective
Fields
- chiefComplaint? string -
- history? string -
- socialHistory? SocialHistory -
- familyHistory? FamilyHistory -
health.ccdatojson: Supply
Fields
- repeatNumber? string -
- quantity? string -
- product? ExtendedProduct -
health.ccdatojson: TargetSite
Fields
- code? string -
- code_system_name? string -
- name? string -
health.ccdatojson: Telecom
Fields
- value? string -
- use? string -
- 'type? string -
health.ccdatojson: TestsItem
Fields
- date? string -
- name? string -
- description? string -
- value? string -
- unit? string -
- code? string -
- code_system? string -
- code_system_name? string -
- translation? Translation_01 -
- reference_range? Reference_range -
health.ccdatojson: Translation
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: Translation_01
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: TranslationsItem
Fields
- name? string -
- code? string -
- code_system_name? string -
- code_system? string -
health.ccdatojson: TranslationsItem_01
Fields
- name? string -
- code? string -
- code_system_name? string -
- code_system? string -
health.ccdatojson: Vehicle
Fields
- name? string -
- code? string -
- code_system? string -
- code_system_name? string -
health.ccdatojson: VitalSigns
Fields
- statusCode? string -
- effectiveTime? string -
- observations? Observation[] -
Import
import wso2healthcare/health.ccdatojson;
Metadata
Released date: 8 days ago
Version: 0.1.0
Compatibility
Platform: any
Ballerina version: 2201.12.3
GraalVM compatible: Yes
Pull count
Total: 16
Current verison: 16
Weekly downloads
Other versions
0.1.0