Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Entity & other comparison

1. Difference kinds of organization

HL7

"Organisation"."type" : [{ CodeableConcept }] https://www.hl7.org/fhir/codesystem-organization-type.html

...

e-Health

[legal_entities].type  | DICTIONARY: LEGAL_ENTITY_TYPE

Code Block
"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

...

Table of Contents

Entity & other comparison

...

1. Difference kinds of organization

HL7

"Organisation"."type" : [{ CodeableConcept }] https://www.hl7.org/fhir/codesystem-organization-type.html

CodeDisplayDefinition
provHealthcare ProviderAn organization that provides healthcare services.
deptHospital DepartmentA department or ward within a hospital (Generally is not applicable to top level organizations)
teamOrganizational teamAn 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).
govtGovernmentA political body, often used when including organization records for government bodies such as a Federal Government, State or Local Government.
insInsurance CompanyA company that provides insurance to its subscribers that may include healthcare related policies.
eduEducational InstituteAn educational institution that provides education or research facilities.
reliReligious InstitutionAn organization that is identified as a part of a religious institution.
crsClinical Research SponsorAn organization that is identified as a Pharmaceutical/Clinical Research Sponsor.
cgCommunity GroupAn un-incorporated community group.
busNon-Healthcare Business or CorporationAn organization that is a registered business or corporation but not identified by other types.
otherOtherOther type of organization not already specified.

e-Health

[legal_entities].type  | DICTIONARY: LEGAL_ENTITY_TYPE


Code Block
"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

Code Block
### 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

Info

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

HL7e-Health

Comparison

result

To change DM
Organization[legal_entities]

"identifier" : [{ Identifier }]id | uuid | not nullOk
"active" : <boolean>status | enum('active','closed') | not nullOk
"type" : [{ CodeableConcept }]type | varchar | not nullOk
"name" : "<string>"name | varchar | not nullOk
"alias" : ["<string>"], // A list of alternate names that the organization
is known as, or was known as in the past
???Small problemNothing todo
"telecom" : [{ ContactPoint }]phones | jsonb[]Ok
"telecom" : [{ ContactPoint }]email | varcharOk
"partOf" : { Reference(Organization) },???ProblemNothing todo
"contact" : [{ // Contact for the organization for a certain purpose}][employees]Ok
"purpose" : { CodeableConcept }, // The type of contact[employees].employee_typeOk
"name" : { HumanName }, // A name associated with the contact[employees].[parties].first_name + last_nameOk
"telecom" : [{ ContactPoint }], // Contact details (telephone, email, etc.)
for a contact
[employees].[parties].phonesOk
"address" : { Address } // Visiting or postal addresses for the contact[employees].[parties].???Small problemNothing todo
"endpoint" : [{ Reference(Endpoint) }]redirect_uri ???Small problemNothing todo

Location

https://www.hl7.org/fhir/location.html

HL7e-Health

Comparison

result

To change DM


Location[divisions]

"identifier" : [{ Identifier }]id | uuid | not nullOk
"status" : "<code>", // active | suspended | inactivestatus | varchar | not nullOk
"operationalStatus" : { Coding }, // The Operational status of the location
(typically only for a bed/room)
???Small problemNothing todo
"name" : "<string>", // Name of the location as used by humansname | varchar | not nullOk
"alias" : ["<string>"], // A list of alternate names that the location is known as,
or was known as in the past
???Small problemNothing todo
"description" : "<string>", // Additional details about the location that could be
displayed as further
information to identify the location beyond its name
???Small problemNothing todo
"mode" : "<code>", // instance | kind???Small problem-
"type" : { CodeableConcept }, // Type of function performedtype | varchar | not nullSmall problemConfusion
"telecom" : [{ ContactPoint }], // Contact details of the locationphones | jsonb[] | not null
email | varchar
Ok
"address" : { Address }, // Physical locationaddresses | jsonb | not nullOk
"physicalType" : { CodeableConcept }, // Physical form of the location???Ok
"position" : { // The absolute geographic locationlocation | geometryOk
→"longitude" : <decimal>, // R! Longitude with WGS84 datumlocation | geometryOk
→"latitude" : <decimal>, // R! Latitude with WGS84 datumlocation | geometryOk
→"altitude" : <decimal> // Altitude with WGS84 datumlocation | geometryOk
"managingOrganization" : { Reference(Organization) },
// Organization responsible for provisioning and upkeep
legal_entity_id | uuid | not nullOk
"partOf" : { Reference(Location) }, // Another Location this one is physically part of???Small problemNothing todo
"endpoint" : [{ Reference(Endpoint) }] // Technical endpoints providing access to
services operated for the location
redirect_uri ???Small problemNothing todo


https://www.hl7.org/fhir/practitioner.html


HL7e-Health

Comparison

result

To change DM
Practitioner[employees]

"identifier" : [{ Identifier }]id | uuid | not nullOk
"active" : <boolean>, // Whether this practitioner's record is in active useis_active | boolean | not nullOk
"name" : [{ HumanName }], // The name(s) associated with the practitioner[parties].first_name + last_nameOk

"telecom" : [{ ContactPoint }], // A contact detail for the practitioner

(that apply to all roles)

[parties].phonesOk
"gender" : "<code>", // male | female | other | unknown[parties].genderOk
"birthDate" : "<date>", // The date on which the practitioner was born[parties].birth_dateOk
"photo" : [{ Attachment }], // Image of the person???Small problemNothing todo
"qualification" : [{ // Qualifications obtained by training and certification}][doctors].qualificationOk

"identifier" : [{ Identifier }], // An identifier for this qualification

for the practitioner




"code" : { CodeableConcept }, // R! Coded representation of the

qualification

??? [doctors].[qualification]. typeProblem???
"period" : { Period }, // Period during which the qualification is valid???Small problemNothing todo

"issuer" : { Reference(Organization) } // Organization that regulates

and issues the qualification

[doctors].[qualification].institution_nameOk

"communication" : [{ CodeableConcept }] // A language the practitioner

is able to use in patient communication

???Small problemNothing todo


MedicationRequest

https://www.hl7.org/fhir/medicationrequest.html

HL7e-Health

Comparison

result

To change DM
MedicationRequest[medication_request]

"identifier" : [{ Identifier }], // External ids for this requestid | uuid | not nullOk
"definition" : [{ Reference(ActivityDefinition|PlanDefinition) }], // Protocol or definition??? план действийSmall problemNothing todo
"basedOn" : [{ Reference(CarePlan|MedicationRequest|
ProcedureRequest| ReferralRequest) }], // What request fulfills
??? основаниеSmall problemNothing todo
"groupIdentifier" : { Identifier }, // Composite request this is part of??? групповой ИДSmall problemNothing todo
"status" : "<code>", // active | on-hold | cancelled | completed |
entered-in-error | stopped | draft | unknown
status | enum() | not nullOk
"intent" : "<code>", // R! proposal | plan | order | instance-order??? Тип исползованияSmall problemNothing todo
"category" : { CodeableConcept }, // Type of medication usage

??? категория

Small problemNothing todo
"priority" : "<code>", // routine | urgent | stat | asap??? приоритет (routine | urgent | stat | asap)Nothing todoNothing 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 forperson_id | uuid | not nullOk
"context" : { Reference(Encounter|EpisodeOfCare) }, // Created during encounter/admission/stay

??? визит - сreated during encounter/admission/stay

Small problemNothing todo
"supportingInformation" : [{ Reference(Any) }], // Information to support ordering of the medication??? примечаниеSmall problemNothing todo
"authoredOn" : "<dateTime>", // When request was initially authoredcreated_date | date | not nullOk
"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 nullOk
"onBehalfOf" : { Reference(Organization) } // C? Organization agent is acting for???

"recorder" : { Reference(Practitioner) }, // Person who entered the requestemployee_id | uuid | not nullOk
"reasonCode" : [{ CodeableConcept }], // Reason or indication for writing the prescription???Small problemNothing todo
"reasonReference" : [{ Reference(Condition|Observation) }], // Condition or Observation
that supports why the prescription is being written
???Small problemNothing todo
"note" : [{ Annotation }], // Information about the prescription???Small problemNeed add
"dosageInstruction" : [{ Dosage }], // How the medication should be takeninnm_dosage_instuction | jsonb | nullOk!!!! ----
"dispenseRequest" : { // Medication supply authorizationОграничения на выдачу 

Ok

-

Но делаем кол-во

"validityPeriod" : { Period }, // Time period supply is authorized forstart_date | date| not null
end_date | date| not null
Ok
"numberOfRepeatsAllowed" : "<positiveInt>", // Number of refills authorized
Small problem

Nothing todo

"quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispenseinnm_dose_qty | number | not null

"expectedSupplyDuration" : { Duration }, // Number of days supply per dispense???Small problemNothing todo
"performer" : { Reference(Organization) } // Intended dispenser???Small problemNothing todo
"substitution" : { // Any restrictions on medication substitution??? заменителиSmall problemNothing todo
"allowed" : <boolean>, // R! Whether substitution is allowed or not
Small problemNothing todo
"reason" : { CodeableConcept } // Why should (not) substitution be made
Small problemNothing todo
"priorPrescription" : { Reference(MedicationRequest) }, // An order/prescription
that is being replaced
??? предшествующий рецептSmall problemNothing todo
"detectedIssue" : [{ Reference(DetectedIssue) }], // Clinical Issue with action???Small problemNothing todo
"eventHistory" : [{ Reference(Provenance) }] // A list of events of interest in the lifecycle???Small problemNothing todo

MedicationDispence

https://www.hl7.org/fhir/v2/0360/2.7/index.html#definitionmedicationdispense.html

...

https://www.hl7.org/fhir/practitioner.html

HL7e-HealthResultPractitioner[employees]"identifier" : [{ Identifier }]id | uuid | not nullOk"active" : <boolean>, // Whether this practitioner's record is in active useis_active | boolean | not null"name" : [{ HumanName }], // The name(s) associated with the practitioner[parties].first_name + last_nameOk

"telecom" : [{ ContactPoint }], // A contact detail for the practitioner

(that apply to all roles)

[parties].phonesOk"gender" : "<code>", // male | female | other | unknown[parties].genderOk"birthDate" : "<date>", // The date on which the practitioner was born[parties].birth_dateOk"photo" : [{ Attachment }], // Image of the person???Small problem"qualification" : [{ // Qualifications obtained by training and certification}][doctors].qualificationOk

"identifier" : [{ Identifier }], // An identifier for this qualification

for the practitioner

"code" : { CodeableConcept }, // R! Coded representation of the

qualification

??? [doctors].[qualification]. typeProblem"period" : { Period }, // Period during which the qualification is valid???Small problem

"issuer" : { Reference(Organization) } // Organization that regulates

and issues the qualification

[doctors].[qualification].institution_nameOk

"communication" : [{ CodeableConcept }] // A language the practitioner

is able to use in patient communication

???Small problem
HL7e-Health

Other structure of quailification

Code Block
### 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

5. Confusion in practitioner quailifications/specializtion/etc

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

...

Location

https://www.hl7.org/fhir/location.html

...

ResultTo change DM
MedicationDispense

[medication_dispenses], 
[medication_dispense_details]



"identifier" : [{ Identifier }], // External identifierid | uuid | not nullOk
"partOf" : [{ Reference(Procedure) }], // Event that dispense is part of

??? процедура лечения

Small problemNothing 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 problemNothing 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 problemNothing todo

"supportingInformation" : [{ Reference(Any) }], // Information that

supports the dispensing of the medication

??? доп.информация

Small problemNothing 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
division_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 problemNothing todo
"quantity" : { Quantity(SimpleQuantity) }, // Amount dispensed

[medication_dispense_details].medication_qty

Ok

"daysSupply" : { Quantity(SimpleQuantity) }, // Amount of medication

expressed as a timing amount

??? хватит на Х дней

Small problemNothing todo
"whenPrepared" : "<dateTime>", // When product was packaged and reviewed???Small problemNothing todo
"whenHandedOver" : "<dateTime>", // When product was given out???Small problemNothing todo
"destination" : { Reference(Location) }, // Where the medication was sent???Small problem
"receiver" : [{ Reference(Patient|Practitioner) }], // Who collected the medication??? получательSmall problemNeed add
"note" : [{ Annotation }], // Information about the dispense

??? примечание отпуска

Small problemNeed 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 problemNothing todo

"wasSubstituted" : <boolean>, // R! Whether a substitution was or was not

performed on the dispense

??? заменителиSmall problemNothing todo

"type" : { CodeableConcept }, // Code signifying whether a different drug

was dispensed from what was prescribed

??? заменителиSmall problemNothing todo
"reason" : [{ CodeableConcept }], // Why was substitution made??? заменителиSmall problemNothing todo
"responsibleParty" : [{ Reference(Practitioner) }] // Who is responsible for the substitution??? заменителиSmall problemNothing todo
"detectedIssue" : [{ Reference(DetectedIssue) }], // Clinical issue with action???Small problemNothing 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 problemNothing todo
"notDoneReasonCodeableConcept" : { CodeableConcept },???Small problemNothing todo
"notDoneReasonReference" : { Reference(DetectedIssue) },???Small problemNothing todo
"eventHistory" : [{ Reference(Provenance) }] // A list of releveant lifecycle events???Small problemNothing todo

Medication

https://www.hl7.org/fhir/medication.html

HL7e-HealthResultTo change DM
Medication
[medications],
[ingredients],
[innms]


"code" : { CodeableConcept }, // Codes that identify this medicationid | uuid | not nullOk
"status" : "<code>", // active | inactive | entered-in-error
status | varchar | not null
Ok
"isBrand" : <boolean>, // True if a brand
[medications]
Ok
"isOverTheCounter" : <boolean>, // True if medication does not require a prescription
Small problemNothing todo
"manufacturer" : { Reference(Organization) }, // Manufacturer of the item
manufacturer_name_country | jsonb | not null
Ok
"form" : { CodeableConcept }, // powder | tablets | capsule +
route | varchar | not null
Ok
"ingredient" : [{ // Active or inactive ingredient[inngredients]Ok
// item[x]: The product contained. One of these 2:


"itemCodeableConcept" : { CodeableConcept },


"itemReference" : { Reference(Substance|Medication)},
[ingredients].innms_id
Ok
"isActive" : <boolean>, // Active ingredient indicator
[ingredients].is_active_substance
Ok
"amount" : { Ratio } // Quantity of ingredient present
[ingredients].dosage
Ok
"package" : { // Details about packaged medications
Ok
"container" : { CodeableConcept }, // E.g. box, vial, blister-pack
[medications].container_dosage
Ok
"content" : [{ // What is in the package


// item[x]: The item in the package. One of these 2:


"itemCodeableConcept" : { CodeableConcept },


"itemReference" : { Reference(Medication) },[medications]Ok
"amount" : { Quantity(SimpleQuantity) } // Quantity present in the package
container_dosage | jsonb | not null
package_qty | number| not null
Ok
"batch" : [{ // Identifies a single production run???Small problemNothing todo
"lotNumber" : "<string>", // Identifier assigned to batch???Small problemNothing todo
"expirationDate" : "<dateTime>" // When batch will expire???Small problemNothing todo
"image" : [{ Attachment }] // Picture of the medication???Small problemNothing todo