ЕСОЗ - публічна документація
RC_[UPD] Medical Events MongoDB Data Model
- 1 Concept
- 2 Data Structure
- 2.1.1 Important!
- 2.2 Patient
- 2.3 Episode of care
- 2.4 Encounter
- 2.5 Visit
- 2.6 Observation
- 2.7 Medication request
- 2.8 Condition
- 2.9 Immunization
- 2.10 Allergy intolerance
- 2.11 Risk Assessment
- 2.12 Device
- 2.13 Medication Statement
- 2.14 Procedure
- 2.15 Diagnostic report
- 2.16 Сlinical impression
- 2.17 Specimen
- 2.18 Device dispense
- 2.19 Composition
- 3 Complex Types
- 3.1 reference
- 3.2 identifier
- 3.3 codeable_concept
- 3.4 coding
- 3.5 period
- 3.6 period_date
- 3.7 status_history
- 3.8 diagnosis
- 3.9 diagnoses_hstr
- 3.10 stage
- 3.11 evidence
- 3.12 explanation
- 3.13 reaction
- 3.14 vaccination_protocol
- 3.15 value
- 3.16 component
- 3.17 reference_range
- 3.18 effective_at
- 3.19 source
- 3.20 quantity
- 3.21 range
- 3.22 sampledData
- 3.23 prediction
- 3.24 ratio
- 3.25 probability
- 3.26 when
- 3.27 UDI
- 3.28 extended_reference
- 3.29 reason
- 3.30 dosage
- 3.31 paper_referral
- 3.32 duration
- 3.33 related_artifact
- 3.34 narrative
- 3.35 extension
- 4 Predefined extensions
Concept
Medical Events Data Structure is designed to be relevant for FHIR( Release 3 (STU)) Standart. All the resources, most of the data types and their way of usage are inherited from FHIR. However, some resources may not inherit ALL the properties or may require additional properties that are not provided by FHIR.
Medical data is stored in no-sql format. In the centre of the architecture is a Patient collection. Most of the resources are a part of this collection, except of Observations and Conditions, because of their expected collection size.
Data Structure
This section describes the actual data structure in eHealth MongoDB and how does it correspond to FHIR standard.
Some fields in Data Model may not correspond directly to the API interfaces. They are transformed on the application level.
Important!
Next objects contain audit fields by default:
Episode
Visit
Encounter
Observation
Condition
Immunization
Allergy_intolerance
Device
Risk_assessment
Medication_statement
Procedure
Diagnostic report
Clinical impression
Specimen
Device dispense
Audit fields:
Name | Type | M/O |
|
---|---|---|---|
inserted_at | dateTime | M |
|
updated_at | dateTime | M |
|
inserted_by | uuid | M |
|
updated_by | uuid | M |
|
Patient
Object name: patient
Name | Type | M/O | Description and constraints |
---|---|---|---|
id | base64 | M | hash |
status | string | M |
|
inserted_by | uuid | M |
|
verification_status | string | M |
|
preperson | boolean | M |
|
death_date | dateTime | O |
|
Episode of care
Object name: episode_of_care
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"identifier" : [{ Identifier }], // Business Identifier(s) relevant for this EpisodeOfCare | id | uuid | M |
| Ok | Approved |
| patient_id | string | M |
|
|
|
| name | string | M |
| Ok |
|
status | code | M | active, closed, entered_in_error | Ok | Approved | |
| number | string | M | Human readable episode number. Is a shared identifier common to all service requests related to this episode of care | No implementation [3.12.2018] |
|
| cancellation_reason | codeable_concept | O |
| No implementation |
|
| closing_reason | codeable_concept | O |
| No implementation |
|
| closing_summary | string | O |
|
|
|
| explanatory_letter | string | O |
|
|
|
| status_reason | O | eHealth/closing_reasons, |
|
| |
"period" : { Period }, // Interval during responsibility is assumed | period | M |
| Only date handled | Approved | |
"managingOrganization" : { Reference(Organization) }, // Organization that assumes care | managing_organization | {reference(legal_entity)} | M |
| Ok | Approved |
"careManager" : { Reference(Practitioner) }, // Care manager/care co-ordinator for the patient | care_manager | {reference(employee)} | M | Employee | Ok | Approved |
"diagnosis" : BackboneElement | diagnoses_history | M |
| Ok | Approved | |
"statusHistory" : BackboneElement | status_history | M | only start date | Ok | Approved | |
"type" : [{ CodeableConcept }], // Type/class - e.g. specialist referral, disease management | type | {coding} | M | deafult value: primary_care | Ok | Approved |
| current_diagnoses | O |
|
|
| |
| closing_summary | string | O |
|
|
|
"patient" : { Reference(Patient) }, // R! The patient who is the focus of this episode of care | patient | reference(patient) | M |
| Is a part of the corresponding collection | Approved |
"referralRequest" : [{ Reference(ReferralRequest) }], // Originating Referral Request(s) |
|
|
| Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals. | No implementation | Approved |
"team" : [{ Reference(CareTeam) }], // Other practitioners facilitating this episode of care |
|
|
|
| No implementation | Approved |
"account" : [{ Reference(Account) }] // The set of accounts that may be used for billing for this EpisodeOfCare } |
|
|
|
| No implementation | Approved |
| encounters | [encounter] | M |
| mongo | No implementation |
Encounter
It is described at Encounter data model
Visit
Object name: visit
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
No | id | uuid | M |
|
|
| patient_id | string | M |
|
|
No | period | {period} | M |
|
|
Observation
It is described at Observation data model
Medication request
Object name: medication_request
Condition
Object name: condition
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"identifier" : [{ Identifier }], // Business identifier | id | uuid | M |
| Ok | Approved |
| primary_source | boolean | M |
|
|
|
| source | {source} | O |
|
|
|
"assertedDate" : "<dateTime>", // Date record was believed accurate | asserted_date | string | O | Date record was believed accurate date_time | Ok |
|
"bodySite" : [{ CodeableConcept }], // Anatomical location, if relevant | body_sites | O |
| Ok |
| |
"clinicalStatus" : "<code>", // C? active | recurrence | inactive | remission | resolved | clinical_status | string | M | active | recurrence | inactive | remission | resolved | Ok
|
|
"code" : { CodeableConcept }, // Identification of the condition, problem or diagnosis | code | M | ICPC2 or ICD10 code: depends on context encounter class | Ok |
| |
"context" : { Reference(Encounter|EpisodeOfCare) }, // Encounter or episode when condition first asserted | context | {reference(encounter)} | M |
| Ok |
|
"evidence" : Backbone | evidences | O |
| Ok |
| |
| patient_id | string | M |
|
|
|
"subject" : { Reference(Patient|Group) }, // R! Who has the condition? | patient | uuid | M |
| Ok |
|
"severity" : { CodeableConcept }, // Subjective severity of condition | severity | O |
| Ok |
| |
"stage" : Backbone | stage | {stage} | O |
| Ok |
|
"verificationStatus" : "<code>", // C? provisional | differential | confirmed | refuted | entered-in-error | unknown | verification_status | string | M | provisional | differential | confirmed | refuted | entered_in_error
| Ok
|
|
| context_episode_id | uuid | O | Episode of the Encounter, during which this condition is made |
|
|
| managing_organization | {reference(legal_entity)} |
|
|
|
|
| explanation_letter | string | M |
|
|
|
"onsetDateTime" : "<dateTime>", | onset_date | dateTime | M |
| Ok |
|
"category" : [{ CodeableConcept }], // problem-list-item | encounter-diagnosis | category | M |
| No implementation |
| |
| report_origin | reference(patient) | O |
| Covered by Medical Events MongoDB Data Model#source | No implementation |
"asserter" : { Reference(Practitioner|Patient|RelatedPerson) }, // Person who asserts this condition | asserter | reference(employee) | O |
| Covered by Medical Events MongoDB Data Model#source | No implementation |
onset_age | positiveInt | O |
| Ok | No implementation | |
"onsetPeriod" : { Period }, | onset_period | O |
| Ok | No implementation | |
"onsetRange" : { Range }, | onset_range | range | O |
| Ok | No implementation |
"onsetString" : "<string>", | onset_string | string | O |
| Ok | No implementation |
"abatementDateTime" : "<dateTime>", | abatement_date_time | date_time | O |
| Ok | No implementation |
"abatementAge" : { Age }, | abatement_age | age | O |
| Ok | No implementation |
"abatementBoolean" : <boolean>, | abatement_boolean | boolean | O |
| Ok | No implementation |
"abatementPeriod" : { Period }, | abatement_period | O |
| Ok | No implementation | |
"abatementRange" : { Range }, | abatement_range | range | O |
| Ok | No implementation |
"abatementString" : "<string>", | abatement_string | string | O |
| Ok | No implementation |
| M |
|
|
| ||
"note" : [{ Annotation }] // Additional information about the Condition | note | [annotation] | O |
| Ok | No implementation |
Immunization
Object name: immunization
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
"identifier" : [{ Identifier }], // Business identifier | id | uuid | M |
| Ok |
"encounter" : { Reference(Encounter) }, // Encounter administered as part of | context | {reference(encounter)} | M | This a encounter on which immunization was registered | Ok |
"date" : "<dateTime>", // Vaccination administration date | date | dateTime | M | string | Ok |
"doseQuantity" : { Quantity(SimpleQuantity) }, // Amount of vaccine administered | dose_quantity | {quantity} | O |
| Ok |
"status" : "<code>", // R! completed | entered-in-error | status | string | M | completed | entered_in_error
| Ok |
"notGiven" : <boolean>, // R! Flag for whether immunization was given | not_given | boolean | M |
| Ok |
"vaccineCode" : { CodeableConcept }, // R! Vaccine product administered | vaccine_code | M |
| Ok | |
| patient_id | string | M |
|
|
"patient" : { Reference(Patient) }, // R! Who was immunized | patient | reference(patient) | M |
| No implementation |
"primarySource" : <boolean>, // R! Indicates context the data was recorded in | primary_source | boolean | M |
| Ok |
| M |
|
| ||
"reportOrigin" : { CodeableConcept }, // Indicates the source of a secondarily reported record | report_origin | codeable_concept | O | Covered by Medical Events MongoDB Data Model#source
| No implementation |
"location" : { Reference(Location) }, // Where vaccination occurred | legal_entity | reference(legal_entity) | O |
| Ok |
"manufacturer" : { Reference(Organization) }, // Vaccine manufacturer | manufacturer | string | O |
| Ok |
"lotNumber" : "<string>", // Vaccine lot number | lot_number | string | O |
| Ok |
"expirationDate" : "<date>", // Vaccine expiration date | expiration_date | dateTime | O |
| Ok |
"site" : { CodeableConcept }, // Body site vaccine was administered | site | O |
| Ok | |
"route" : { CodeableConcept }, // How vaccine entered body | route | O |
| Ok | |
| source | {source} | O |
|
|
"practitioner" : BackboneElement | performer | reference(employee) | O | Covered by Medical Events MongoDB Data Model#source | No implementation |
"note" : [{ Annotation }], // Vaccination notes |
|
|
|
| No implementation |
"explanation" : BackboneElement | explanation | O |
| Ok | |
"reaction" : BackboneElement | reactions | O |
| Ok | |
"vaccinationProtocol" : BackboneElement | vaccination_protocols | O |
| Ok | |
| explanation_letter | string | M | M - only for "verification_status" : "entered_in_error" |
|
Allergy intolerance
Object name: allergy_intolerance
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
"identifier" : [{ Identifier }], // Business identifier | id | uuid | M |
| Ok |
"clinicalStatus" : "<code>", // C? active | inactive | resolved | clinical_status | string | M |
| Ok |
"verificationStatus" : "<code>", // C? R! unconfirmed | confirmed | refuted | entered-in-error | verification_status | string | M |
| Ok |
"type" : "<code>", // allergy | intolerance - Underlying mechanism (if known) | type | string | M |
| Ok |
"category" : ["<code>"], // food | medication | environment | biologic | category | string | M |
| Ok |
"criticality" : "<code>", // low | high | unable-to-assess | criticality | string | M |
| Ok |
"code" : { CodeableConcept }, // Code that identifies the allergy or intolerance | code | M |
| Ok | |
"patient" : { Reference(Patient) }, // R! Who the sensitivity is for |
| reference(patient) | M |
| No implementation |
"onsetDateTime" : "<dateTime>", | onset_date_time | dateTime | M |
| Ok |
|
|
|
| No implementation | |
"onsetPeriod" : { Period }, |
|
|
|
| No implementation |
"onsetRange" : { Range }, |
|
|
|
| No implementation |
"onsetString" : "<string>", |
|
|
|
| No implementation |
"assertedDate" : "<dateTime>", // Date record was believed accurate | asserted_date | dateTime | M |
| Ok |
| source | {source} | O |
|
|
| patient_id | string | M |
|
|
"recorder" : { Reference(Practitioner|Patient) }, // Who recorded the sensitivity | recorder | reference(patient| employee) | M |
| No implementation |
| primary_source | boolean | M |
|
|
| M |
|
| ||
| report_origin | codeable_concept | O | Covered by Medical Events MongoDB Data Model#source | No implementation |
"asserter" : { Reference(Patient|RelatedPerson|Practitioner) }, // Source of the information about the allergy | asserter | reference(patient|employee) | O | Covered by Medical Events MongoDB Data Model#source | No implementation |
"lastOccurrence" : "<dateTime>", // Date(/time) of last known occurrence of a reaction | last_occurence | dateTime | O |
| Ok |
"note" : [{ Annotation }], // Additional text not captured in other fields |
|
|
|
| No implementation |
"reaction" : BackboneElement | reaction | reaction | M |
| No implementation |
| context | {reference(encounter)} | M |
| Ok |
| explanation_letter | string | M | M - only for "verification_status" : "entered_in_error" |
|
Risk Assessment
Object name: risk_assessment
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"identifier" : { Identifier }, // Unique identifier for the assessment | id | uuid | M |
| Ok |
|
"basedOn" : { Reference(Any) }, // Request fulfilled by this assessment | based_on | reference(service_request) | O | service request? | No implementation |
|
"parent" : { Reference(Any) }, // Part of this occurrence | parent |
|
| use case? can't find an example | No implementation |
|
"status" : "<code>", // R! registered | preliminary | final | amended + | status | string | M |
| Ok |
|
"method" : { CodeableConcept }, // Evaluation mechanism | method | O |
| Ok |
| |
"code" : { CodeableConcept }, // Type of assessment | code | M |
| Ok |
| |
"subject" : { Reference(Patient|Group) }, // Who/what does assessment apply to? | subject | reference(patient) |
| No implementation, because risk assessment is already in patient's collection | Ok |
|
"context" : { Reference(Encounter|EpisodeOfCare) }, // Where was assessment performed? | context | {reference(encounter)} | M |
| Ok |
|
// occurrence[x]: When was assessment made?. One of these 2: "occurrenceDateTime" : "<dateTime>", "occurrencePeriod" : { Period }, | asserted_date | dateTime | M | only datetime | Ok |
|
| patient_id | string | M |
|
|
|
"condition" : { Reference(Condition) }, // Condition assessed | condition |
|
| Use case? | No implementation |
|
"performer" : { Reference(Practitioner|Device) }, // Who did assessment? | performer | {reference(employee)} | M |
| Ok |
|
// reason[x]: Why the assessment was necessary?. One of these 2: "reasonCodeableConcept" : { CodeableConcept }, "reasonReference" : { Reference(Any) }, | reason | {reason} | O |
| Ok |
|
"basis" : [{ Reference(Any) }], // Information used in assessment | basis | {extended_reference}(text+[reference(condition|observation|diagnostic_report)]) | O | condition|observation|diagnostic_report | Ok |
|
"prediction" : [{ Backbone element }], | predictions | O |
|
|
| |
"mitigation" : "<string>", // How to reduce risk | mitigation | string | O |
| Ok |
|
"comment" : "<string>" // Comments on the risk assessment | comment | string | O |
| Ok |
|
| explanation_letter | String | M | M - only for "verification_status" : "entered_in_error" |
|
|
Device
Object name: device
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"identifier" : [{ Identifier }], // Instance identifier | id | uuid | M |
| Ok |
|
| identifier | O |
|
|
| |
| definition | {reference(device_definition)} | O |
|
|
|
| name | [reference(device_name)] | M | |
|
|
"udi" : { // Unique Device Identifier (UDI) Barcode string "deviceIdentifier" : "<string>", // Mandatory fixed portion of UDI "name" : "<string>", // Device Name as appears on UDI label "jurisdiction" : "<uri>", // Regional UDI authority "carrierHRF" : "<string>", // UDI Human Readable Barcode String "carrierAIDC" : "<base64Binary>", // UDI Machine Readable Barcode String "issuer" : "<uri>", // UDI Issuing Organization "entryType" : "<code>" // barcode | rfid | manual + }, | udi | string | M | what format is suitable for Ukraine? | No implementation |
|
"status" : "<code>", // active | inactive | entered-in-error | unknown | status | string | M |
| Ok |
|
| status_reason | O | device_status_reasons |
|
| |
| serial_number | string | O |
|
|
|
| parent | {reference(device)} | O |
|
|
|
| recorder | {reference(employee)} | M |
|
|
|
| recorder_legal_entity | {reference(legal_entity)} | M |
|
|
|
| status_history |
| M |
| No implementation |
|
| asserted_date | string | M | date_time
|
|
|
| usage_period | Period | M |
|
|
|
| context | {reference(encounter)} | M |
|
|
|
| context_episode_id | uuid | M |
|
|
|
| property | [reference(device_property)] | О |
|
|
|
"subject" : { Reference(Patient|Group) }, // Who/what does assessment apply to? | subject | {reference(patient)} | M |
|
|
|
| primary_source | boolean | M |
|
|
|
| report_origin | source | M |
|
|
|
"type" : { CodeableConcept }, // What kind of device this is | type | M | example - implant | Ok |
| |
"lotNumber" : "<string>", // Lot number of manufacture | lot_number | string | O |
| Ok |
|
"manufacturer" : "<string>", // Name of device manufacturer | manufacturer | string | O |
| Ok |
|
"manufactureDate" : "<dateTime>", // Date when the device was made | manufacture_date | dateTime | O |
| Ok |
|
"expirationDate" : "<dateTime>", // Date and time of expiry of this device (if applicable) | dateTime | O |
| Ok |
| |
| model_number | string | O |
|
|
|
"model" : "<string>", // Model id assigned by the manufacturer | model | string | O |
| Ok |
|
"version" : "<string>", // Version number (i.e. software) | version | string | O |
| Ok |
|
"patient" : { Reference(Patient) }, // Patient to whom Device is affixed |
|
|
|
| No implementation |
|
"owner" : { Reference(Organization) }, // Organization responsible for device |
|
|
|
| No implementation for now |
|
"contact" : [{ ContactPoint }], // Details for human/organization for support | contact_point | string |
|
| No implementation |
|
"location" : { Reference(Location) }, // Where the resource is found | location |
|
|
| No implementation for now |
|
"url" : "<uri>", // Network address to contact device | uri | string |
|
| No implementation for now |
|
"note" : [{ Annotation }], // Device notes and comments | note | string | O |
| Ok |
|
| explanation_letter | string | M | M - only for "verification_status" : "entered_in_error" |
|
|
"safety" : [{ CodeableConcept }] // Safety Characteristics of Device | safety | [codeable_concept] | O |
| No implementation |
|
Medication Statement
Object name: medication_statement
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"identifier" : [{ Identifier }], // External identifier | id | uuid | M |
| Ok |
|
"basedOn" : [{ Reference(MedicationRequest|CarePlan|ServiceRequest) }], // Fulfils plan, proposal or order | based_on | {reference(medication_request)} | O |
| Ok |
|
"partOf" : [{ Reference(MedicationAdministration|MedicationDispense| MedicationStatement|Procedure|Observation) }], // Part of referenced event | part_of | reference(?) |
| What is the difference between this one and the previous one? | No implementation |
|
"status" : "<code>", // R! active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken | status | string | M | dictionary:
|
|
|
"statusReason" : [{ CodeableConcept }], // Reason for current status | status_reason | codeable_concept | M |
| No implementation |
|
"category" : { CodeableConcept }, // Type of medication usage | category | codeable_concept | M |
| No implementation |
|
// medication[x]: What medication was taken. One of these 2: "medicationCodeableConcept" : { CodeableConcept }, "medicationReference" : { Reference(Medication) }, | medication_code | M |
| Ok |
| |
"subject" : { Reference(Patient|Group) }, // R! Who is/was taking the medication |
|
|
| No implementation, because medication statement is already stored in the patient collection | Ok |
|
context" : { Reference(Encounter|EpisodeOfCare) }, // Encounter / Episode associated with MedicationStatement | context | {reference(encounter)} | M |
| Ok |
|
// effective[x]: The date/time or interval when the medication is/was/will taken. One of these 2: |
|
|
|
|
|
|
"assertedDate" : "<dateTime>", // Date record was believed accurate | asserted_date | dateTime | M |
| Ok |
|
| explanation_letter | string | M | M - only for "verification_status" : "entered_in_error" |
|
|
Procedure
It is described at Procedure data model
Diagnostic report
Its data model described at Diagnostic Report Data Model
Сlinical impression
Its data model described at Clinical impression data model
Specimen
Its data model described at Specimen data model
Device dispense
Its data model described at Device dispense data model
Composition
Its data model described at https://edenlab.atlassian.net/wiki/spaces/EH/pages/4219928582
Complex Types
reference
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
"reference" : "<string>", // C? Literal reference, Relative, internal or absolute URL |
|
|
|
| No implementation |
"identifier" : { Identifier }, // Logical reference, when literal reference is not known | identifier | M |
| Ok | |
| display_value | string | O |
| This field is filled on creating and never updated after |
"display" : "<string>" // Text alternative for the resource |
|
|
|
| No implementation |
identifier
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
"use" : "<code>", // usual | official | temp | secondary (If known) | use |
| M |
| No implementation |
"type" : { CodeableConcept }, // Description of identifier | type | M | Plain text representation of the concept | Ok | |
"system" : "<uri>", // The namespace for the identifier value | system | string | M |
| No implementation |
"value" : "<string>", // The value that is unique | value | string UUID | M |
| Ok |
"period" : { Period }, // Time period when id is/was valid for use | period |
|
|
| No implementation |
"assigner" : { Reference(Organization) } // Organization that issued id (may be just text) | assigner |
|
|
| No implementation |
codeable_concept
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
"coding" : [{ Coding }], // Code defined by a terminology system | coding | [coding] | M |
| Ok |
"text" : "<string>" // Plain text representation of the concept | text | string | O | Plain text representation of the concept | Ok |
coding
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
"system" : "<uri>", // Identity of the terminology system | system | string | M |
| Ok |
"version" : "<string>", // Version of the system - if relevant | version | string | O | No | |
"code" : "<code>", // Symbol in syntax defined by the system | code | string | M | Any dictionary | Ok |
"display" : "<string>", // Representation defined by the system | display | string | O |
| Ok |
"userSelected" : <boolean> // If this coding was chosen directly by the user |
|
|
|
| No implementetion |
“extension”: <Extension> | extension | [extension] | O | By default, using the extension is prohibited, except in cases where certain validations allow it. | Ok |
period
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
"start" : "<dateTime>", // C? Starting time with inclusive boundary | start | M |
| Ok | |
"end" : "<dateTime>" // C? End time with inclusive boundary, if not ongoing | end | O |
| Ok |
period_date
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
"start" : "<dateTime>", // C? Starting time with inclusive boundary | start | date | M |
| - |
"end" : "<dateTime>" // C? End time with inclusive boundary, if not ongoing | end | date | O |
| - |
status_history
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
---|---|---|---|---|---|
status | string | M | dictionary | Ok | |
| status_reason | codeable_concept | O |
|
|
| inserted_at | dateTime | M | date |
|
| inserted_by | uuid | M | user_id |
|
"period" : { Period } // R! Duration the EpisodeOfCare was in the specified status | period | M |
| No implementation |
diagnosis
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
"condition" : { Reference(Condition) }, // R! Conditions/problems/diagnoses this episode of care is for | condition | reference(condition) | M |
| Ok | Approved |
"role" : { CodeableConcept }, // Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …) | role | M | Own dictionary
| Ok | Approved | |
"rank" : "<positiveInt>" // Ranking of the diagnosis (for each role type) | rank | positiveInt | O |
| Ok | Approved |
| code | M |
| Ok |
|
diagnoses_hstr
stage
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
"summary" : { CodeableConcept }, // C? Simple summary (disease specific) | summary | codeable_concept | M |
| Ok |
|
"assessment" : [{ Reference(ClinicalImpression|DiagnosticReport|Observation) }] // C? Formal record of assessment | assessment |
| M | Own dictionary | No implementation |
|
evidence
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
"code" : [{ CodeableConcept }], // C? Manifestation/symptom | codes | M |
| Ok |
| |
"detail" : [{ Reference(Any) }] // C? Supporting information found elsewhere | details | [reference(observation)] | M |
| Ok |
|
explanation
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
| type | string | M | reasons, reasons_not_given |
|
|
| value | M |
|
|
| |
"reason" : [{ CodeableConcept }], // Why immunization occurred | reasons | O |
| Covered by explanation.value | No implementation | |
"reasonNotGiven" : [{ CodeableConcept }] // Why immunization did not occur | reasons_not_given | O |
| Covered by explanation.value | No implementation |
reaction
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
"date" : "<dateTime>", // When reaction started | date | date_time | O |
| No implementation |
|
"detail" : { Reference(Observation) }, // Additional information on reaction | detail | reference(observation) | O |
| Ok |
|
reported | boolean | O |
| No implementation |
|
vaccination_protocol
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
"doseSequence" : "<positiveInt>", // Dose number within series | dose_sequence | positive_int | O |
| Ok |
|
"description" : "<string>", // Details of vaccine protocol | description | string | O |
| Ok |
|
"authority" : { Reference(Organization) }, // Who is responsible for protocol | codeable_concept | O |
| Ok |
| |
"series" : "<string>", // Name of vaccine series | series | string | O |
| Ok |
|
"seriesDoses" : "<positiveInt>", // Recommended number of doses for immunity | series_doses | postive_int | O |
| Ok |
|
"targetDisease" : [{ CodeableConcept }], // R! Disease immunized against | target_diseases | [codeable_concept] | M |
| Ok |
|
"doseStatus" : { CodeableConcept }, // R! Indicates if dose counts towards immunity | dose_status | codeable_concept | M |
| Removed 26.02.2019 |
|
"doseStatusReason" : { CodeableConcept } // Why dose does (not) count | dose_status_reason | codeable_concept | O |
| Removed 26.02.2019 |
|
value
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
| type | string | M | quantity, codeable_concept, string, boolean, range, ratio, sampled_data, time, date_time, period | Ok |
|
| value | ONE OF: quantity, codeable_concept, string, boolean, range, ratio, sampled_data, time, date_time, period | ONE OF: M |
| Ok |
|
| value_quantity |
|
|
|
| |
| value_codeable_concept |
|
|
|
| |
| value_sampled_data |
|
|
|
| |
| value_string | string |
|
|
|
|
| value_boolean | boolean |
|
|
|
|
| value_range |
|
|
|
| |
| value_ratio |
|
|
|
| |
| value_time | string |
|
|
|
|
| value_date_time | dateTime |
|
|
|
|
| value_period |
|
|
|
|
component
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"code" : { CodeableConcept }, // R! Type of component observation (code / type) | code | M |
| Ok |
| |
| value | Medical Events MongoDB Data Model#value | M | value_quantity | Ok |
|
"valueQuantity" : { Quantity }, |
|
|
|
| Covered by value | No implementation |
"valueCodeableConcept" : { CodeableConcept } |
|
|
|
| Covered by value |
|
"valueString" : "<string>" |
|
|
|
| Covered by value | No implementation |
"valueRange" : { Range } |
|
|
|
| Covered by value | No implementation |
"valueRatio" : { Ratio } |
|
|
|
| Covered by value | No implementation |
"valueSampledData" : { SampledData } |
|
|
|
| Covered by value | No implementation |
|
|
|
| Covered by value | No implementation | |
"valueDateTime" : "<dateTime>" |
|
|
|
| Covered by value | No implementation |
"valuePeriod" : { Period } |
|
|
|
| Covered by value | No implementation |
"interpretation" : { CodeableConcept } | interpretation | O |
|
| Ok | |
"referenceRange" : [{ Content as for Observation.referenceRange }] | reference_ranges | O |
|
| Ok |
reference_range
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"low" : { Quantity(SimpleQuantity) }, // C? Low Range, if relevant | low | {quantity} | O |
| Ok |
|
"high" : { Quantity(SimpleQuantity) }, // C? High Range, if relevant | high | {quantity} | O |
| Ok |
|
"type" : { CodeableConcept }, // Reference range qualifier | type | O |
| Ok |
| |
"appliesTo" : [{ CodeableConcept }], // Reference range population | applies_to | O |
| Ok |
| |
"age" : { Range }, // Applicable age range, if relevant | age | {range} | O |
| Ok |
|
"text" : "<string>" // Text based reference range in an observation | text | string | O |
| Ok |
|
effective_at
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
| type | string | M | effective_date_time, effective_period | Ok |
|
| value | string or period | M |
| Ok |
|
source
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result |
|
---|---|---|---|---|---|---|
| type | string | M | report_origin, performer, asserter | Ok |
|
| value | for report_origin - Codeable_concept
for performer - reference(employee)
for asserter - reference(employee) | M | Who is responsible for the entity. Fills from Employee, who is responsible for the entity. | Ok |
|
quantity
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"value" : <decimal>, // Numerical value (with implicit precision) | value | decimal | M |
| Ok |
|
"comparator" : "<code>", // < | <= | >= | > - how to understand the value | comparator | string enum | O | Ok |
| |
"unit" : "<string>", // Unit representation | unit | string enum | O | for future use | Ok |
|
"system" : "<uri>", // C? System that defines coded unit form | system | string enum | M | eHealth/ucum/units | Ok |
|
"code" : "<code>" // Coded form of the unit | code | string enum | M |
| Ok |
|
range
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"low" : { Quantity(SimpleQuantity) }, // C? Low limit | low | O |
| Ok |
| |
"high" : { Quantity(SimpleQuantity) } // C? High limit | high | O |
| Ok |
|
sampledData
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
| origin | number | O |
|
|
|
| period | number | O |
|
|
|
| factor | number | O |
|
|
|
| lower_limit | number | O |
|
|
|
| upper_limit | number | O |
|
|
|
| dimensions | number | O |
|
|
|
| data | string | M |
|
|
|
prediction
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"outcome" : { CodeableConcept }, // R! Possible outcome for the subject | outcome | {codeable_concept} | M |
| Ok |
|
// probability[x]: Likelihood of specified outcome.One of these 2: "probabilityDecimal" : <decimal>, "probabilityRange" : { Range }, | probability | {probability} | O |
| Ok |
|
"qualitativeRisk" : { CodeableConcept }, // Likelihood of specified outcome as a qualitative value | qualitative_risk | {codeable_concept} | O |
| Ok |
|
"relativeRisk" : <decimal>, // Relative likelihood | relative_risk | double | O |
| Ok |
|
// when[x]: Timeframe or age range. One of these 2: "whenPeriod" : { Period }, | when | Date | O |
| Ok |
|
"rationale" : "<string>" // Explanation of prediction | rationale | string | O |
|
Ok |
|
ratio
probability
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
| type | string | M | ok |
| |
| value | ONE_OF: probability_decimal - decimal, probability_range - Range | M |
| ok |
|
when
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
| type | string | M | enum: when_period, when_range | ok |
|
| value | ONE_OF: when_period - Period, when_range - Range | M |
| ok |
|
UDI
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"deviceIdentifier" : "<string>", // Mandatory fixed portion of UDI | device_number |
|
|
|
|
|
"name" : "<string>", // Device Name as appears on UDI label |
|
|
|
|
|
|
"jurisdiction" : "<uri>", // Regional UDI authority |
|
|
|
|
|
|
"carrierHRF" : "<string>", // UDI Human Readable Barcode String |
|
|
|
|
|
|
"carrierAIDC" : "<base64Binary>", // UDI Machine Readable Barcode String |
|
|
|
|
|
|
"issuer" : "<uri>", // UDI Issuing Organization |
|
|
|
|
|
|
"entryType" : "<code>" // barcode | rfid | manual + |
|
|
|
|
|
|
extended_reference
This type can be used when a reference cannot be defined and text should be used instead.
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
| text | string | O |
|
|
|
| references | [reference] | O |
|
|
|
reason
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
| type | string | М | enum: reason_codes, reason_references |
|
|
| value | ONE_OF: reason_codes - [codeable_concept], reason_references-[reference] | М |
|
|
|
dosage
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
"sequence" : <integer>, // The order of the dosage instructions |
|
|
|
|
|
|
"text" : "<string>", // Free text dosage instructions e.g. SIG |
|
|
|
|
|
|
"additionalInstruction" : [{ CodeableConcept }], // Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" |
|
|
|
|
|
|
"patientInstruction" : "<string>", // Patient or consumer oriented instructions |
|
|
|
|
|
|
"timing" : { Timing }, // When medication should be administered // asNeeded[x]: Take "as needed" (for x). One of these 2: "asNeededBoolean" : <boolean>, "asNeededCodeableConcept" : { CodeableConcept }, |
|
|
|
|
|
|
"site" : { CodeableConcept }, // Body site to administer to |
|
|
|
|
|
|
"route" : { CodeableConcept }, // How drug should enter body |
|
|
|
|
|
|
"method" : { CodeableConcept }, // Technique for administering medication |
|
|
|
|
|
|
"doseAndRate" : [{ // Amount of medication administered "type" : { CodeableConcept }, // The kind of dose or rate specified // dose[x]: Amount of medication per dose. One of these 2: "doseRange" : { Range }, "doseQuantity" : { Quantity(SimpleQuantity) }, // rate[x]: Amount of medication per unit of time. One of these 3: "rateRatio" : { Ratio } "rateRange" : { Range } "rateQuantity" : { Quantity(SimpleQuantity) } }], |
|
|
|
|
|
|
"maxDosePerPeriod" : { Ratio }, // Upper limit on medication per unit of time |
|
|
|
|
|
|
"maxDosePerAdministration" : { Quantity(SimpleQuantity) }, // Upper limit on medication per administration |
|
|
|
|
|
|
"maxDosePerLifetime" : { Quantity(SimpleQuantity) } // Upper limit on medication per lifetime of the patient |
|
|
|
|
|
|
paper_referral
HL7 | Name | Type | M/O | Description and constraints |
---|---|---|---|---|
| requisition | string | O | Service request number |
| requester_legal_entity_name | string | O | Requester legal entity name |
| requester_legal_entity_edrpou | string | M | Requester legal entity edrpou |
| requester_employee_name | string | M | Requester employee name |
| service_request_date | date | M | Service request date |
| note | string | O | Some notes |
duration
The same structure as Medical Events MongoDB Data Model#quantity . There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM.
related_artifact
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
| type | string | М | The type of relationship to the related artifact | Ok |
|
| resource_reference | reference | М | What artifact is being referenced | Ok |
|
narrative
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
| status | string | М | Narrative status | Ok |
|
| div | string | М | Limited xhtml content | Ok |
|
extension
HL7 | Name | Type | M/O | Description and constraints | HL7 vs eHealth comparison result | Status |
---|---|---|---|---|---|---|
| code | string | М | The type of relationship to the related artifact | Ok |
|
| value_[x] |
| М | One of <specific type> must be provided | Ok |
|
|
| {CodeableConcept} |
|
|
|
|
|
| number |
|
|
|
|
|
| string |
|
|
|
|
Predefined extensions
item_weight
Name | Type | M/O | Comments |
---|---|---|---|
code | string | M | code = item_weight |
value_decimal | number | M |
|
COMPOSITION_ADDITIONAL_CONDITION_ADMISSION
Name | Type | M/O | Comments |
---|---|---|---|
code | string | M | code = COMPOSITION_ADDITIONAL_CONDITION_ADMISSION |
valueCodeableConcept | {CodeableConceptExtension} | M |
|
COMPOSITION_ADDITIONAL_CONDITION_ADMISSION_VALUE
Name | Type | M/O | Comments |
---|---|---|---|
сode | string | M | code = COMPOSITION_ADDITIONAL_CONDITION_ADMISSION_VALUE
|
valueDecimal | number | M |
|
COMPOSITION_ADDITIONAL_CONDITION_ADMISSION_LETTER_DESIGNATIONS
Name | Type | M/O | Comments |
---|---|---|---|
сode | string | M | code = COMPOSITION_ADDITIONAL_CONDITION_ADMISSION_LETTER_DESIGNATIONS |
valueCodeableConcept | {CodeableConcept} | M |
|
ЕСОЗ - публічна документація