Composition is a resource in eHealth that bundle some resources together. Which resources should be bundled are mention in definite composition with the help of structure definition
Overview
- As for now every composition is associated with one of medical documents in Ukraine, while composition is not a document by itself.
- Composition use created with transaction resources in eHealth
- Composition is saved to DB in separate collection, and has its own composition.id
- Composition could not be changed
- Composition should not be signed by DS
- Each type of composition have it's own methods POST and GET
Common composition validations
- Validate access_token
- Validate scope
Compositions in e-Health
Composition Structure
HL7 | Name | Type | M/O | Description | Result |
---|---|---|---|---|---|
"identifier" : { Identifier }, // Version-independent identifier for the Composition | id | uuid | M | ok | |
"status" : "<code>", // R! preliminary | final | amended | entered-in-error | status | enum | M | dic.:composition_statuses(final, entrered_in_error) | ok |
"type" : { CodeableConcept }, // R! Kind of composition (LOINC if possible) | type | CodeableConcept | LOINC-? | ? | |
"category" : [{ CodeableConcept }], // Categorization of Composition | ? | ||||
"subject" : { Reference(Any) }, // Who and/or what the composition is about | subject | uuid | M | patient_id | ok |
"encounter" : { Reference(Encounter) }, // Context of the Composition | encounter | Reference(Encounter) | M | ok | |
"date" : "<dateTime>", // R! Composition editing time | date | dateTime | M | ||
"author" : [{ Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization) }], // R! Who and/or what authored the composition | author | Reference(employee) | M | could be taken from token | ok |
"title" : "<string>", // R! Human Readable name/title | title | string(2000) | O | ok | |
"confidentiality" : "<code>", // As defined by affinity domain | |||||
"attester" : [{ // Attests to accuracy of composition "mode" : "<code>", // R! personal | professional | legal | official "time" : "<dateTime>", // When the composition was attested "party" : { Reference(Patient|RelatedPerson|Practitioner|PractitionerRole| Organization) } // Who attested the composition }], | attester | Reference(employee) | M | ok | |
"custodian" : { Reference(Organization) }, // Organization which maintains the composition | custodian | Reference(legal_entity) | M | could be taken from token | ok |
"relatesTo" : [{ // Relationships to other compositions/documents "code" : "<code>", // R! replaces | transforms | signs | appends // target[x]: Target of the relationship. One of these 2: "targetIdentifier" : { Identifier } "targetReference" : { Reference(Composition) } }], | ? | ||||
"event" : [{ // The clinical service(s) being documented "code" : [{ CodeableConcept }], // Code(s) that apply to the event being documented "period" : { Period }, // The period covered by the documentation "detail" : [{ Reference(Any) }] // The event(s) being documented }], | |||||
"section" : [{ // Composition is broken into sections "title" : "<string>", // Label for section (e.g. for ToC) "code" : { CodeableConcept }, // Classification of section (recommended) "author" : [{ Reference(Practitioner|PractitionerRole|Device|Patient| RelatedPerson|Organization) }], // Who and/or what authored the section "focus" : { Reference(Any) }, // Who/what the section is about, when it is not about the subject of composition "text" : { Narrative }, // C? Text summary of the section, for human interpretation "mode" : "<code>", // working | snapshot | changes "orderedBy" : { CodeableConcept }, // Order of section entries "entry" : [{ Reference(Any) }], // C? A reference to data that supports this section "emptyReason" : { CodeableConcept }, // C? Why the section is empty "section" : [{ Content as for Composition.section }] // C? Nested Section }] |