MetaDataMedicationRequest

MetaDataMedicationRequest profiilia käytetäään Lääkemääräyksen yksilöintitietojen hakuoperaation vastauksessa ja siihen on profiloitu palautettavat Lääkemääräyksen yksilöintitiedot.

Kanta-lääkityslistan siirtymävaiheeseen on MetaDataMedicationRequestista profiloitu versio 1.1.0. Siihen on lisätty lääkkeen lopetuksen tietoja, laajennus medicineDiscontinuation, jossa palautuu Lääkkeen lopetuspäivä ja Lääkkeen lopetuksen syy, jos palautettava lääkemääräys liittyy käytössä olevan lääkkeen lääkejatkumoon ja jatkumossa on lopettamismerkintä, jonka lopettamismerkinnäntila on "voimassa" tai "toteutunut". Sekä rajapinnassa palautuu myös Määrätyn määrän esittämistapa = 9 (ei toimitettavaa määrää) tieto ja muita määrättyyn määrään liittyviä tietoja ei palaudu.

Määrittelyssä on pyritty noudattamaan mahdollisimman paljon FHIR standardia. Lisäksi on jouduttu tekemään laajennuksia. Tarvittavat laajennukset on kuvattu kootusti omassa osiossaan Laajennukset.

idΣ0..1string
id0..1string
extensionI0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ0..*canonical(StructureDefinition)
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
versionNumberI0..*Extension(positiveInt)
neRepI0..*Extension(boolean)
permanentMedicationI0..*Extension(boolean)
doseDispensingI0..*Extension(boolean)
dosageIfNeededI0..*Extension(boolean)
usageI0..*Extension(string)
dispenseStatusI0..*Extension(Complex)
reservedStatusI0..*Extension(Complex)
lockStatusI0..*Extension(Complex)
renewalStatusI0..*Extension(Coding)
prescriptionSavedByPharmacyI0..*Extension(Coding)
medicineIdI0..*Extension(Complex)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
statusΣ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
intentΣ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
reportedBooleanboolean
reportedReferenceReference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)
medicationCodeableConceptCodeableConcept
medicationReferenceReference(Medication | MetaDataMedication)
subjectΣ I1..1Reference(Patient | Group)
encounterI0..1Reference(Encounter)
supportingInformationI0..*Reference(Resource)
authoredOnΣ0..1dateTime
requesterΣ I0..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)
performerI0..1Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam)
performerTypeΣ0..1CodeableConcept
recorderI0..1Reference(Practitioner | PractitionerRole)
reasonCode0..*CodeableConcept
reasonReferenceI0..*Reference(Condition | Observation)
instantiatesCanonicalΣ0..*canonical()
instantiatesUriΣ0..*uri
basedOnΣ I0..*Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation)
groupIdentifierΣ0..1Identifier
courseOfTherapyType0..1CodeableConcept
insuranceI0..*Reference(Coverage | ClaimResponse)
note0..*Annotation
id0..1string
weightPatientUnder12YearsOldI0..*Extension(Quantity)
onlyTextDosageInUseI0..*Extension(boolean)
sicI0..*Extension(boolean)
medicinePauseIntervalI0..*Extension(Period)
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textΣ0..1string
id0..1string
extensionI0..*Extension
codingΣ0..*Coding
textΣ0..1string
patientInstructionΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
eventΣ0..*dateTime
id0..1string
extensionI0..*Extension
boundsDurationTimingBoundsDuration
boundsRangeTimingBoundsRange
boundsPeriodPeriod
countΣ0..1positiveInt
countMaxΣ0..1positiveInt
durationΣ0..1decimal
durationMaxΣ0..1decimal
durationUnitΣ0..1codeBinding
frequencyΣ0..1positiveInt
frequencyMaxΣ0..1positiveInt
periodΣ0..1decimal
periodMaxΣ0..1decimal
periodUnitΣ0..1codeBinding
dayOfWeekΣ0..*codeBinding
timeOfDayΣ0..*time
whenΣ0..*codeBinding
offsetΣ0..1unsignedInt
codeΣ0..1CodeableConceptBinding
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
methodΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ I0..1Ratio
maxDosePerAdministrationΣ I0..1SimpleQuantity
maxDosePerLifetimeΣ I0..1SimpleQuantity
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valuePositiveIntpositiveInt
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valuePositiveIntpositiveInt
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueStringstring
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
valueΣ0..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ I0..1uri
codeΣ0..1code
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
valueΣ0..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ I0..1uriFixed Value
codeΣ0..1code
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
drugPrescribedQuantityTextI0..*Extension(string)
drugRemainingQuantityTextI0..*Extension(string)
dispenseEffectiveTimeI0..*Extension(dateTime)
previousDispenseI0..*Extension(string)
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
quantityI0..1SimpleQuantity
durationI0..1Duration
id0..1string
extensionI0..*Extension
valueΣ0..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ I0..1uri
codeΣ0..1code
id0..1string
extensionI0..*Extension
startΣ I0..1dateTime
endΣ I0..1dateTime
numberOfRepeatsAllowed0..1unsignedInt
quantityI0..1SimpleQuantity
expectedSupplyDurationI0..1Duration
performerI0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
allowedBooleanboolean
reason0..1CodeableConcept
priorPrescriptionI0..1Reference(MedicationRequest)
detectedIssueI0..*Reference(DetectedIssue)
eventHistoryI0..*Reference(Provenance)

Linkki Simplifierista löytyvään profiilimäärittelyyn: MetaDataMedicationRequest

MedicationRequest.status (Required) ja MedicationRequest.statusReason (Example) tiedot

  • MedicationRequest.status tieto on pakollinen tieto MedicationRequest resurssissa. Se on koodattu tieto ja tieto on annettava pakollisella FHIR koodistolla http://hl7.org/fhir/valueset-medicationrequest-status.html.
    • Lääkemääräyksen yksilöintitiedoissa palautettava Voimassolotila -tieto on mapattu tähän tietoon.
    • Voimassaolotila ilmaistaan Kansallisen koodistopalvelun Sähköinen lääkemääräys - Lääkemääräyksen voimassaolontila -koodiston koodeilla.
    • Lääkemääräyksen yksilöintitietojen hakuoperaation vastauksessa on käytettävä FHIR koodiston arvoja ja nämä koodiston arvot on mapattu Voimassaolotila-koodeihin alla olevan taulukon mukaisesti.
Valueset-medicationrequest-status Voimassaolotilan koodi arvo ja selite
active 1=voimassa
cancelled 2=mitätöity
stopped 3=vanhentunut
  • MedicationRequest.statusReason tieto on optionaalinen MedicationRequest resurssissa ja se on koodattu tieto. Koodattuun tietoon on sallittua sitoa oma koodisto.
    • Lääkemääräyksen yksilöintitieodoissa palautettava Reseptisanoman tyyppi on mapattu tähän tietoon.
    • Reseptisanoman tyyppi ilmaistaan Kansallisen koodistopalvelun Sähköinen lääkemääräys - Reseptisanoman tyyppi -koodiston koodeilla.
    • Tämän koodiston käyttö on kuvattu alla olevan taulukon mukaisesti.
MedicationRequest.statusReason (code) Reseptisanoman tyypin selite
1 lääkemääräys
2 lääkemääräyksen mitätöinti
3 lääkemääräyksen korjaus

Esimerkki: voimassaolontila 1=voimassa ja reseptisanoman tyyppi 1=lääkemääräys:

"status": "active",
"statusReason": {
    "coding": {
       "system": "urn:oid:1.2.246.537.5.40105.2006",
       "code": "1"
    }

MedicationRequest.dosageInstruction.doseAndRate.dose (doseRange/doseQuantity)

  • Yksilöintitietojen palautuksen FHIR-rapapinnassa Dosage.doseAndRate.dose (doseRange/doseQuantity) -elementin tietoa doseRange käytetään kun palautetaan annos, jossa annokseen sisältyvä lääkkeen määrä on annettu lukuvälinä (esim. 1-2 tablettia) ja doseQuantity tietoa käytetään kun palautetaan annos, jossa annokseen sisältyvä lääkkeen määrä on annettu tarkkana lukuna (esim. 1 tabletti).

  • Potilasystävällisen ja fysikaalisen annoksen annos ja annosyksikkö palautuvat molemmat yllä mainituissa elementeissä. Ne ovat keskenään vaihtoehtoisia tietoja lääkemääräyksellä, jos potilasystävällinen annos ja annosyksikkö on annettu, silloin fysikaalista annos ja annosyksikköä ei ole voitu antaa.

FHIRssa rakenteisen annostuksen tiedot esitetään toistuvassa MedicationRequest.dosageInstruction rakenteessa.

Vaihtuvat annokset esim. ”2 tablettia aamulla ja 1 tabletti illalla 6 päivän ajan” annetaan toistamalla koko dosageInstruction rakennetta (sequence-toistuma), tätä on käytetty mm. MedicationRequest esimerkissä 2.

FHIR .dosageInstruction toistuman seurauksena osa THL tietosisältömäärittelyn rakenteisen annostuksen tiedoista toistuu per vaihtuva annos. Näitä toistuvia tietoja ovat mm. THL tietosisällön Annostelukausi-rakenteen tiedot toistuvat (paitsi annostus tarvittaessa –tieto) ja myös ylemmän tason rakenteiset tiedot Annostusohje (lääkkeenantoreitti ja –tapa, käyttöohjeen lisätieto) ja Annostustiedot (annostusohje vain tekstinä, tekstimuotoinen annostusohje, sic-merkintä) toistuvat.

Vastaavasti FHIR toistuman seurauksena Annostelukausi tiedot (annostelukauden kesto, annostelukauden alkuaika ja päättymisaika, annosjakson pituus) ja Annoksen tiedot (annosajankohta, annosaika ja annosjakson päivä) toistuvat per vaihtuva annos. Tämä johtuu siitä, että nämä THL tietosisällön tiedot menevät dosageInstruction rakenteen timing elementtiin (joka on tietotyyppiä Timing) ja se ei ole toistuva tieto.

THL:n tietosisällön ja FHIR tietomallin rakenteisen annostuksen erot:

FHIRssa annoksen toistumissa hyödynnetään MedicationRequest.dosageInstruction.timing.frequency ja MedicationRequest.dosageInstruction.timing.frequencyMax elementtejä. FHIRssa esim. ” 1 tabletti 3 kertaa päivässä” ei vaadi saman sisältöisen Annokset rakenteen toistamista kolmea kertaa, vaan toistuma voidaan ilmoittaa yhdellä erillisellä tiedolla. Esimerkissä 1 on käytetty frequency tietoa (”1 tabletti 2 kertaa päivässä) ja esimerkissä 4 on käytetty frequency ja frequencyMax –tietoa (”1-2 tablettia 1 – 3 kertaa päivässä”). Rakenteita frequency ja frequencyMax käytettäessä, ei ole tarvetta toistaa Annokset rakennetta. Mutta tällöin myöskään Annos tarvittaessa tieto ei toistu ja ei siis mene kuten S1 Kirjaa ja muodosta rakenteinen annostusohje –määrittelyssä, jossa ensimmäisessä toistumassa Annos tarvittaessa = false ja muissa toistumissa Annos tarvittaessa = true. Itse asiassa kyseessä S1-määrittelyssä ei ole Annos tarvittaessa tiedosta, että se tulisi annostusohjeelle, vaan tällä ratkaisulla saadaan S1-määrittelyssä tuotettua annostusohjeelle 1-3 kertaa (sama tieto ”Annos tarvittaessa” on siis kahdessa merkityksessä). Jos tarvittaessa tieto on annettava FHIR-rakenteessa per annos, pitäisi se FHIRssa antaa toistamalla MedicationRequest.dosageInstruction rakennetta.

Tämän oppaan osiossa Esimerkit - MedicationRequest on kuvattu erilaiset MetaDataMedicationRequest profiiliin liittyvät esimerkit.

Dosage tietotyyppiin liittyvä Timing ja sen yleiset käyttötarkoitukset on kuvattu Timing yhteenvetotaulukossa.

MedicationRequest resurssin palautumista Bundle-resurssin sisällä sekä viitattujen resurssien palautumista on kuvattu tämän oppaan osiossa Vastauksen HTTP body