Entity & other comparison
1. Difference kinds of organization
HL7
"Organisation"."type" : [{ CodeableConcept }] https://www.hl7.org/fhir/codesystem-organization-type.html
Code | Display | Definition |
prov | Healthcare Provider | An organization that provides healthcare services. |
dept | Hospital Department | A department or ward within a hospital (Generally is not applicable to top level organizations) |
team | Organizational team | An organizational team is usually a grouping of practitioners that perform a specific function within an organization (which could be a top level organization, or a department). |
govt | Government | A political body, often used when including organization records for government bodies such as a Federal Government, State or Local Government. |
ins | Insurance Company | A company that provides insurance to its subscribers that may include healthcare related policies. |
edu | Educational Institute | An educational institution that provides education or research facilities. |
reli | Religious Institution | An organization that is identified as a part of a religious institution. |
crs | Clinical Research Sponsor | An organization that is identified as a Pharmaceutical/Clinical Research Sponsor. |
cg | Community Group | An un-incorporated community group. |
bus | Non-Healthcare Business or Corporation | An organization that is a registered business or corporation but not identified by other types. |
other | Other | Other type of organization not already specified. |
e-Health
[legal_entities].type | DICTIONARY: LEGAL_ENTITY_TYPE
"values": { "MSP": "заклад з надання медичних послуг", "MIS": "Medical Information system" }, "name": "LEGAL_ENTITY_TYPE"
Problem/Difference
- In HL7 type its array (many kinds), in the e-Health Legal Entity - one value of type
- In HL7 type "prov" (Healthcare Provider) its crossing of 2 or more types of e-Health
2. Hierarchical structure of organization
HL7
Supports hierarchy by attribute "Part of"
e-Health
Non supports hierarchy of Legal Entity
Problem/Difference
Missing functionality
3. Medical services structure of organization/locations
HL7
Supports multi medical services (category + type) in location (division) at entity "healthcareservice" https://www.hl7.org/fhir/healthcareservice.html
e-Health
Now non support. May be use "Product Catalog" ???
Problem/Difference
Missing functionality
4. Confusion in practitioner quailifications/specializtion/etc
HL7
"Practitioner"."qualification"."code" : { CodeableConcept } - https://www.hl7.org/fhir/v2/0360/2.7/index.html#definition
e-Health
Other structure of quailification
### Qualification + type: SPECIALIZATION (string, required) - `Dictionary QUALIFICATION_TYPE` + institution_name: Академія Богомольця (string, required) + speciality: Педіатр (string, required) + issued_date: 2017-02-28 (string, required) - дата отримання сертифікату + certificate_number: 2017-02-28 (string, required)
Problem/Difference
Big confusion and incompatibility of practitioner quailifications/specialization/etc
May be its non confusion, but it simply kind of education/quailifications specific in UA.
5. Absent practitioner role
HL7
"PractitionerRole" -A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time. https://www.hl7.org/fhir/practitionerrole.html#resource
e-Health
Non supports sets Roles/Divisions/specialties/services for Employee.
Problem/Difference
Missing functionality
Data structure comparison
Organization
https://www.hl7.org/fhir/organization.html
HL7 | e-Health | Comparison result | To change DM |
---|---|---|---|
Organization | [legal_entities] | ||
"identifier" : [{ Identifier }] | id | uuid | not null | Ok | |
"active" : <boolean> | status | enum('active','closed') | not null | Ok | |
"type" : [{ CodeableConcept }] | type | varchar | not null | Ok | |
"name" : "<string>" | name | varchar | not null | Ok | |
"alias" : ["<string>"], // A list of alternate names that the organization is known as, or was known as in the past | ??? | Small problem | Nothing todo |
"telecom" : [{ ContactPoint }] | phones | jsonb[] | Ok | |
"telecom" : [{ ContactPoint }] | email | varchar | Ok | |
"partOf" : { Reference(Organization) }, | ??? | Problem | Nothing todo |
"contact" : [{ // Contact for the organization for a certain purpose}] | [employees] | Ok | |
→"purpose" : { CodeableConcept }, // The type of contact | [employees].employee_type | Ok | |
→"name" : { HumanName }, // A name associated with the contact | [employees].[parties].first_name + last_name | Ok | |
→"telecom" : [{ ContactPoint }], // Contact details (telephone, email, etc.) for a contact | [employees].[parties].phones | Ok | |
→"address" : { Address } // Visiting or postal addresses for the contact | [employees].[parties].??? | Small problem | Nothing todo |
"endpoint" : [{ Reference(Endpoint) }] | redirect_uri ??? | Small problem | Nothing todo |
Location
https://www.hl7.org/fhir/location.html
HL7 | e-Health | Comparison result | To change DM |
---|---|---|---|
Location | [divisions] | ||
"identifier" : [{ Identifier }] | id | uuid | not null | Ok | |
"status" : "<code>", // active | suspended | inactive | status | varchar | not null | Ok | |
"operationalStatus" : { Coding }, // The Operational status of the location (typically only for a bed/room) | ??? | Small problem | Nothing todo |
"name" : "<string>", // Name of the location as used by humans | name | varchar | not null | Ok | |
"alias" : ["<string>"], // A list of alternate names that the location is known as, or was known as in the past | ??? | Small problem | Nothing todo |
"description" : "<string>", // Additional details about the location that could be displayed as further information to identify the location beyond its name | ??? | Small problem | Nothing todo |
"mode" : "<code>", // instance | kind | ??? | Small problem | - |
"type" : { CodeableConcept }, // Type of function performed | type | varchar | not null | Small problem | - внести в верх.список отличия по значениям |
"telecom" : [{ ContactPoint }], // Contact details of the location | phones | jsonb[] | not null email | varchar | Ok | |
"address" : { Address }, // Physical location | addresses | jsonb | not null | Ok | |
"physicalType" : { CodeableConcept }, // Physical form of the location | ??? | Ok | |
"position" : { // The absolute geographic location | location | geometry | Ok | |
→"longitude" : <decimal>, // R! Longitude with WGS84 datum | location | geometry | Ok | |
→"latitude" : <decimal>, // R! Latitude with WGS84 datum | location | geometry | Ok | |
→"altitude" : <decimal> // Altitude with WGS84 datum | location | geometry | Ok | |
"managingOrganization" : { Reference(Organization) }, // Organization responsible for provisioning and upkeep | legal_entity_id | uuid | not null | Ok | |
"partOf" : { Reference(Location) }, // Another Location this one is physically part of | ??? | Small problem | Nothing todo |
"endpoint" : [{ Reference(Endpoint) }] // Technical endpoints providing access to services operated for the location | redirect_uri ??? | Small problem | Nothing todo |
Practitioner
https://www.hl7.org/fhir/practitioner.html
HL7 | e-Health | Comparison result | To change DM |
---|---|---|---|
Practitioner | [employees] | ||
"identifier" : [{ Identifier }] | id | uuid | not null | Ok | |
"active" : <boolean>, // Whether this practitioner's record is in active use | is_active | boolean | not null | Ok | |
"name" : [{ HumanName }], // The name(s) associated with the practitioner | [parties].first_name + last_name | Ok | |
"telecom" : [{ ContactPoint }], // A contact detail for the practitioner (that apply to all roles) | [parties].phones | Ok | |
"gender" : "<code>", // male | female | other | unknown | [parties].gender | Ok | |
"birthDate" : "<date>", // The date on which the practitioner was born | [parties].birth_date | Ok | |
"photo" : [{ Attachment }], // Image of the person | ??? | Small problem | Nothing todo |
"qualification" : [{ // Qualifications obtained by training and certification}] | [doctors].qualification | Ok | |
→"identifier" : [{ Identifier }], // An identifier for this qualification for the practitioner | |||
→"code" : { CodeableConcept }, // R! Coded representation of the qualification | ??? [doctors].[qualification]. type | Problem | ??? |
→"period" : { Period }, // Period during which the qualification is valid | ??? | Small problem | Nothing todo |
→"issuer" : { Reference(Organization) } // Organization that regulates and issues the qualification | [doctors].[qualification].institution_name | Ok | |
"communication" : [{ CodeableConcept }] // A language the practitioner is able to use in patient communication | ??? | Small problem | Nothing todo |
MedicationRequest
https://www.hl7.org/fhir/medicationrequest.html
HL7 | e-Health | Comparison result | To change DM |
---|---|---|---|
MedicationRequest | medication_request | ||
"identifier" : [{ Identifier }], // External ids for this request | id | uuid | not null | Ok | |
"definition" : [{ Reference(ActivityDefinition|PlanDefinition) }], // Protocol or definition | ??? план действий | Small problem | Nothing todo |
"basedOn" : [{ Reference(CarePlan|MedicationRequest| ProcedureRequest| ReferralRequest) }], // What request fulfills | ??? основание | Small problem | Nothing todo |
"groupIdentifier" : { Identifier }, // Composite request this is part of | ??? групповой ИД | Small problem | Nothing todo |
"status" : "<code>", // active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown | status | enum() | not null | Ok | |
"intent" : "<code>", // R! proposal | plan | order | instance-order | ??? Тип исползования | Small problem | Nothing todo |
"category" : { CodeableConcept }, // Type of medication usage | ??? категория | Small problem | Nothing todo |
"priority" : "<code>", // routine | urgent | stat | asap | ??? приоритет (routine | urgent | stat | asap) | Nothing todo | Nothing todo |
// medication[x]: Medication to be taken. One of these 2: | |||
"medicationCodeableConcept" : { CodeableConcept }, | |||
"medicationReference" : { Reference(Medication) }, | |||
"subject" : { Reference(Patient|Group) }, // R! Who or group medication request is for | person_id | uuid | not null | Ok | |
"context" : { Reference(Encounter|EpisodeOfCare) }, // Created during encounter/admission/stay | ??? визит - сreated during encounter/admission/stay | Small problem | Nothing todo |
"supportingInformation" : [{ Reference(Any) }], // Information to support ordering of the medication | ??? примечание | Small problem | Nothing todo |
"authoredOn" : "<dateTime>", // When request was initially authored | created_date | date | not null | Ok | |
"requester" : { // Who/What requested the Request | ??? кто запрашивает | Ok | |
"agent" : { Reference(Practitioner|Organization|Patient|RelatedPerson|Device) }, // R! Who ordered the initial medication(s) | ??? агент ??? legal_entity_id | uuid | not null | Ok | |
"onBehalfOf" : { Reference(Organization) } // C? Organization agent is acting for | ??? | ||
}, | |||
"recorder" : { Reference(Practitioner) }, // Person who entered the request | employee_id | uuid | not null | Ok | |
"reasonCode" : [{ CodeableConcept }], // Reason or indication for writing the prescription | ??? | Small problem | Nothing todo |
"reasonReference" : [{ Reference(Condition|Observation) }], // Condition or Observation that supports why the prescription is being written | ??? | Small problem | Nothing todo |
"note" : [{ Annotation }], // Information about the prescription | ??? | Small problem | Need add |
"dosageInstruction" : [{ Dosage }], // How the medication should be taken | innm_dosage_instuction | jsonb | null | Ok | !!!! ---- |
"dispenseRequest" : { // Medication supply authorization | Ok | - Но делаем кол-во | |
"validityPeriod" : { Period }, // Time period supply is authorized for | start_date | date| not null end_date | date| not null | Ok | |
"numberOfRepeatsAllowed" : "<positiveInt>", // Number of refills authorized | |||
"quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense | innm_dose_qty | number | not null | ||
"expectedSupplyDuration" : { Duration }, // Number of days supply per dispense | ??? | Small problem | Nothing todo |
"performer" : { Reference(Organization) } // Intended dispenser | ??? | Small problem | Nothing todo |
"substitution" : { // Any restrictions on medication substitution | ??? заменители | Small problem | Nothing todo |
→"allowed" : <boolean>, // R! Whether substitution is allowed or not | Small problem | Nothing todo | |
→"reason" : { CodeableConcept } // Why should (not) substitution be made | Small problem | Nothing todo | |
"priorPrescription" : { Reference(MedicationRequest) }, // An order/prescription that is being replaced | ??? предшествующий рецепт | Small problem | Nothing todo |
"detectedIssue" : [{ Reference(DetectedIssue) }], // Clinical Issue with action | ??? | Small problem | Nothing todo |
"eventHistory" : [{ Reference(Provenance) }] // A list of events of interest in the lifecycle | ??? | Small problem | Nothing todo |
MedicationDispence
https://www.hl7.org/fhir/medicationdispense.html
HL7 | e-Health | Result | To change DM |
---|---|---|---|
MedicationDispense | medication_dispenses | ||
"identifier" : [{ Identifier }], // External identifier | id | uuid | not null | Ok | |
"partOf" : [{ Reference(Procedure) }], // Event that dispense is part of | ??? процедура лечения | Small problem | Nothing todo |
"status" : "<code>", // preparation | in-progress | on-hold | completed | entered-in-error | stopped | status | enum() | not null | Ok | |
"category" : { CodeableConcept }, // Type of medication dispense | ??? категория | Small problem | Nothing todo |
// medication[x]: What medication was supplied. One of these 2: | |||
"medicationCodeableConcept" : { CodeableConcept }, | |||
"medicationReference" : { Reference(Medication) }, | |||
"subject" : { Reference(Patient|Group) }, // Who the dispense is for | [medication_requests].person_id | Ok | |
"context" : { Reference(Encounter|EpisodeOfCare) }, // Encounter / Episode associated with event | ??? визит - сreated during encounter/ admission/stay | Small problem | Nothing todo |
"supportingInformation" : [{ Reference(Any) }], // Information that supports the dispensing of the medication | ??? доп.информация | Small problem | Nothing todo |
"performer" : [{ // Who performed event | Аптека | Ok | |
"actor" : { Reference(Practitioner|Organization|Patient|Device|RelatedPerson) }, // R! Individual who was performing | employee_id | uuid | not null | Ok | |
"onBehalfOf" : { Reference(Organization) } // Organization organization was acting for}], | legal_entity_id | uuid | not null | Ok | |
"authorizingPrescription" : [{ Reference(MedicationRequest) }], // Medication order that authorizes the dispense | medication_request_id | uuid | not null | Ok | |
"type" : { CodeableConcept }, // Trial fill, partial fill, emergency fill, etc. | ??? тип использования | Small problem | Nothing todo |
"quantity" : { Quantity(SimpleQuantity) }, // Amount dispensed | [medication_dispense_details].medication_qty | Ok | |
"daysSupply" : { Quantity(SimpleQuantity) }, // Amount of medication expressed as a timing amount | ??? хватит на Х дней | Small problem | Nothing todo |
"whenPrepared" : "<dateTime>", // When product was packaged and reviewed | ??? | Small problem | Nothing todo |
"whenHandedOver" : "<dateTime>", // When product was given out | ??? | Small problem | Nothing todo |
"destination" : { Reference(Location) }, // Where the medication was sent | ??? | Small problem | |
"receiver" : [{ Reference(Patient|Practitioner) }], // Who collected the medication | ??? получатель | Small problem | Need add |
"note" : [{ Annotation }], // Information about the dispense | ??? примечание отпуска | Small problem | Need add |
"dosageInstruction" : [{ Dosage }], // How the medication is to be used by the patient or administered by the caregiver | [medication_requests]. innm_dosage_instuction | jsonb | null | Ok | |
"substitution" : { // Whether a substitution was performed on the dispense | ??? заменители | Small problem | Nothing todo |
"wasSubstituted" : <boolean>, // R! Whether a substitution was or was not performed on the dispense | ??? заменители | Small problem | Nothing todo |
"type" : { CodeableConcept }, // Code signifying whether a different drug was dispensed from what was prescribed | ??? заменители | Small problem | Nothing todo |
"reason" : [{ CodeableConcept }], // Why was substitution made | ??? заменители | Small problem | Nothing todo |
"responsibleParty" : [{ Reference(Practitioner) }] // Who is responsible for the substitution | ??? заменители | Small problem | Nothing todo |
"detectedIssue" : [{ Reference(DetectedIssue) }], // Clinical issue with action | ??? | Small problem | Nothing todo |
"notDone" : <boolean>, // Whether the dispense was or was not performed | status | enum() | not null | Ok | |
// notDoneReason[x]: Why a dispense was not performed. One of these 2: | ??? | Small problem | Nothing todo |
"notDoneReasonCodeableConcept" : { CodeableConcept }, | Small problem | Nothing todo | |
"notDoneReasonReference" : { Reference(DetectedIssue) }, | Small problem | Nothing todo | |
"eventHistory" : [{ Reference(Provenance) }] // A list of releveant lifecycle events | ??? | Small problem | Nothing todo |
Medication
https://www.hl7.org/fhir/medication.html