Mappings for the athena-medrequest-profile resource profile.
| AthenaMedicationRequest |
| MedicationRequest | FHIRR4_MEDICATIONREQUESTVIEW |
| id | MakeIdWithPrefix(%RESOURCEID%,%ID_PREFIX%) |
| meta | |
| lastUpdated | %WHENUPDATED% |
| security | |
| security (SENSITIVECHART) | CheckSensitive(%SENSITIVECHART%) |
| security (CONFABBR) | |
| system | getSiteCodeSystem("ConfidentialDocument") |
| code | %ABBR% |
| tag | MakeChangeTagList(%CHANGE%) |
| extension | |
| extension (ndc) | |
| value[x] | MakeConcept(%NDCNUM%,"http://hl7.org/fhir/sid/ndc",null) |
| extension (ddid) | |
| value[x] | MakeConcept(%DDID%,"http://docs.wolterskluwercdi.com/codesystems/ddid",null) |
| extension (rxnorm) | MakeRxnormExtensionList(%RXNORM%,"http://www.nlm.nih.gov/research/umls/rxnorm",null,"https://docs.mydata.athenahealth.com/fhir-r4/StructureDefinition/athena-medicationrequest-extension-rxnorm") |
| extension (dispenser) | |
| value[x] | MakeReference("PRESCRIB",%PHARMBUSID%,"Organization",%PHARMACY%) |
| extension (dispenseInstructions) | |
| value[x] | ComputeFillsForString(%REFILLS%) |
| extension (datewritten) | |
| value[x] | %CLINICALDATE% |
| identifier | |
| system | getSiteIdSystem("PRESCRIB") |
| value | %PRESCRIPTIONORDERNUMBER% |
| status | IsActiveOrMapCode(%STOPDATE%,"active",%STOPREASON%,"PRESCRIBSTATUS") |
| intent | asCodeType(%INTENT%,true) |
| category (us-core) | MakeMedicationRequestCategory("outpatient","http://terminology.hl7.org/CodeSystem/medicationrequest-category", "Outpatient") |
| reported[x] | Equals(%SOURCENAME%,%SOURCENAME%,"MedicationRequest") |
| medication[x] | MakeReference("MEDINFO",%DDID%,"Medication",%DESCRIPTION%) |
| subject | MakeReference("PATIENT",%PID%, "Patient") |
| encounter | MakeReference("DOCUMENT",%SDID%,"Encounter") |
| authoredOn | %WHENCREATED% |
| requester | MakeReference("USR",%PVID%,"Practitioner",true) |
| recorder | MakeReference("PRESCRIB",%CREATOR%,%USRID%,"Practitioner") |
| reasonCode | MakeConcept(%PROBCODE%,"http://snomed.info/sct",%PROBDESC%) |
| reasonReference | MakeReference("MEDDX",%PROBID%,"Condition") |
| note | makeAnnotation(%COMMENTS%) |
| dosageInstruction | |
| text | %INSTRUCTIONS% |
| timing | MakeMedicateTiming(%FREQUENCY%,%PERIOD%,%PERIODUNIT%) |
| doseAndRate | |
| dose[x] | MakeNonZeroQuantity(%DOSE%,%DOSE_UNIT%) |
| dispenseRequest | |
| numberOfRepeatsAllowed | %REFILLS% |
| quantity | %QUANTITY% |
| substitution | |
| allowed[x] | MapConcept(%DAW%,"MEDSUBSTITUTION") |
| AthenaMedicationRequest |
| MedicationRequest | FHIRR4_MEDICATIONREQUESTVIEW |
| id | MakeIdWithPrefix(%RESOURCEID%,%ID_PREFIX%) |
| meta | |
| lastUpdated | %WHENUPDATED% |
| security | |
| security (SENSITIVECHART) | CheckSensitive(%SENSITIVECHART%) |
| security (CONFABBR) | |
| system | getSiteCodeSystem("ConfidentialDocument") |
| code | %ABBR% |
| tag | MakeChangeTagList(%CHANGE%) |
| extension | |
| extension (ndc) | |
| value[x] | MakeConcept(%NDCNUM%,"http://hl7.org/fhir/sid/ndc",null) |
| extension (ddid) | |
| value[x] | MakeConcept(%DDID%,"http://docs.wolterskluwercdi.com/codesystems/ddid",null) |
| extension (rxnorm) | MakeRxnormExtensionList(%RXNORM%,"http://www.nlm.nih.gov/research/umls/rxnorm",null,"https://docs.mydata.athenahealth.com/fhir-r4/StructureDefinition/athena-medicationrequest-extension-rxnorm") |
| extension (dispenser) | |
| value[x] | MakeReference("PRESCRIB",%PHARMBUSID%,"Organization",%PHARMACY%) |
| extension (dispenseInstructions) | |
| value[x] | ComputeFillsForString(%REFILLS%) |
| extension (datewritten) | |
| value[x] | %CLINICALDATE% |
| identifier | |
| system | getSiteIdSystem("PRESCRIB") |
| value | %PRESCRIPTIONORDERNUMBER% |
| status | IsActiveOrMapCode(%STOPDATE%,"active",%STOPREASON%,"PRESCRIBSTATUS") |
| intent | asCodeType(%INTENT%,true) |
| category (us-core) | MakeMedicationRequestCategory("outpatient","http://terminology.hl7.org/CodeSystem/medicationrequest-category", "Outpatient") |
| reported[x] | Equals(%SOURCENAME%,%SOURCENAME%,"MedicationRequest") |
| medication[x] | MakeReference("MEDINFO",%DDID%,"Medication",%DESCRIPTION%) |
| subject | MakeReference("PATIENT",%PID%, "Patient") |
| encounter | MakeReference("DOCUMENT",%SDID%,"Encounter") |
| authoredOn | %WHENCREATED% |
| requester | MakeReference("USR",%PVID%,"Practitioner",true) |
| recorder | MakeReference("PRESCRIB",%CREATOR%,%USRID%,"Practitioner") |
| reasonCode | MakeConcept(%PROBCODE%,"http://snomed.info/sct",%PROBDESC%) |
| reasonReference | MakeReference("MEDDX",%PROBID%,"Condition") |
| note | makeAnnotation(%COMMENTS%) |
| dosageInstruction | |
| text | %INSTRUCTIONS% |
| timing | MakeMedicateTiming(%FREQUENCY%,%PERIOD%,%PERIODUNIT%) |
| doseAndRate | |
| dose[x] | MakeNonZeroQuantity(%DOSE%,%DOSE_UNIT%) |
| dispenseRequest | |
| numberOfRepeatsAllowed | %REFILLS% |
| quantity | %QUANTITY% |
| substitution | |
| allowed[x] | MapConcept(%DAW%,"MEDSUBSTITUTION") |
| AthenaMedicationRequest |
| MedicationRequest | Message/Body/NewRx |
| identifier | Message/Header/PrescriberOrderNumber |
| status | no mapping |
| category (us-core) | Message/Body/NewRx/MedicationPrescribed/Directions
or
Message/Body/NewRx/MedicationPrescribed/StructuredSIG |
| medication[x] | Message/Body/NewRx/MedicationPrescribed
Medication.code.coding.code = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCode
Medication.code.coding.system = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCodeQualifier
Medication.code.coding.display = Message/Body/NewRx/MedicationPrescribed/DrugDescription |
| subject | Message/Body/NewRx/Patient
(need detail to link to specific patient … Patient.Identification in SCRIPT) |
| encounter | no mapping |
| authoredOn | Message/Body/NewRx/MedicationPrescribed/WrittenDate |
| reasonCode | Message/Body/NewRx/MedicationPrescribed/Diagnosis/Primary/Value |
| reasonReference | no mapping |
| note | Message/Body/NewRx/MedicationPrescribed/Note |
| dispenseRequest | Message/Body/NewRx/MedicationPrescribed/ExpirationDate |
| validityPeriod | Message/Body/NewRx/MedicationPrescribed/Refills |
| numberOfRepeatsAllowed | Message/Body/NewRx/MedicationPrescribed/Quantity |
| quantity | Message/Body/NewRx/MedicationPrescribed/DaysSupply |
| expectedSupplyDuration | Message/Body/NewRx/MedicationPrescribed/Substitutions |
| substitution | specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions |
| allowed[x] | specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions |
| reason | not mapped |
| priorPrescription | not mapped |
| AthenaMedicationRequest |
| MedicationRequest | Entity. Role, or Act, CombinedMedicationRequest |
| meta | |
| id | n/a |
| extension | n/a |
| security | |
| security (SENSITIVECHART) | |
| security (CONFABBR) | |
| id | n/a |
| extension | n/a |
| system | ./codeSystem |
| version | ./codeSystemVersion |
| code | ./code |
| display | CV.displayName |
| userSelected | CD.codingRationale |
| text | Act.text? |
| contained | N/A |
| extension | |
| extension (ndc) | |
| id | n/a |
| extension | n/a |
| url | N/A |
| value[x] | N/A |
| extension (ddid) | |
| id | n/a |
| extension | n/a |
| url | N/A |
| value[x] | N/A |
| extension (rxnorm) | |
| extension (dispenser) | |
| id | n/a |
| extension | n/a |
| url | N/A |
| value[x] | N/A |
| extension (dispenseInstructions) | |
| id | n/a |
| extension | n/a |
| url | N/A |
| value[x] | N/A |
| extension (datewritten) | |
| id | n/a |
| extension | n/a |
| url | N/A |
| value[x] | N/A |
| modifierExtension | N/A |
| identifier | .id |
| id | n/a |
| extension | n/a |
| use | Role.code or implied by context |
| type | Role.code or implied by context |
| system | II.root or Role.id.root |
| value | II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root) |
| period | Role.effectiveTime or implied by context |
| assigner | II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper |
| status | .statusCode |
| statusReason | .inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN].reasonCOde |
| intent | .moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere) |
| category (us-core) | .inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="type of medication usage"].value |
| priority | .priorityCode |
| doNotPerform | SubstanceAdministration.actionNegationInd |
| reported[x] | .participation[typeCode=INF].role |
| medication[x] | consumable.administrableMedication |
| subject | .participation[typeCode=AUT].role |
| encounter | .inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN, code="type of encounter or episode"] |
| supportingInformation | .outboundRelationship[typeCode=PERT].target[A_SupportingClinicalStatement CMET minimal with many different choices of classCodes(ORG, ENC, PROC, SPLY, SBADM, OBS) and each of the act class codes draws from one or more of the following moodCodes (EVN, DEF, INT PRMS, RQO, PRP, APT, ARQ, GOL)] |
| authoredOn | author.time |
| requester | .participation[typeCode=AUT].role |
| performer | .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE] |
| performerType | .participation[typeCode=PRF].role[scoper.determinerCode=KIND].code |
| recorder | .participation[typeCode=TRANS].role[classCode=ASSIGNED].code (HealthcareProviderType) |
| reasonCode | reason.observation.reasonCode |
| reasonReference | reason.observation[code=ASSERTION].value |
| instantiatesCanonical | .outboundRelationship[typeCode=DEFN].target |
| instantiatesUri | .outboundRelationship[typeCode=DEFN].target |
| basedOn | .outboundRelationship[typeCode=FLFS].target[classCode=SBADM or PROC or PCPR or OBS, moodCode=RQO orPLAN or PRP] |
| groupIdentifier | .outboundRelationship(typeCode=COMP].target[classCode=SBADM, moodCode=INT].id |
| courseOfTherapyType | Act.code where classCode = LIST and moodCode = EVN |
| insurance | .outboundRelationship[typeCode=COVBY].target |
| note | .inboundRelationship[typeCode=SUBJ]/source[classCode=OBS,moodCode=EVN,code="annotation"].value |
| dosageInstruction | see dosageInstruction mapping |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| sequence | .text |
| text | .text |
| additionalInstruction | .text |
| patientInstruction | .text |
| timing | .effectiveTime |
| asNeeded[x] | .outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code="as needed"].value=boolean or codable concept |
| site | .approachSiteCode |
| route | .routeCode |
| method | .doseQuantity |
| doseAndRate | |
| id | n/a |
| extension | n/a |
| dose[x] | .doseQuantity |
| rate[x] | .rateQuantity |
| maxDosePerPeriod | .maxDoseQuantity |
| maxDosePerAdministration | not supported |
| maxDosePerLifetime | not supported |
| dispenseRequest | component.supplyEvent |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| initialFill | SubstanceAdministration -> ActRelationship[sequenceNumber = '1'] -> Supply |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| quantity | Supply.quantity[moodCode=RQO] |
| duration | Supply.effectivetime[moodCode=RQO] |
| dispenseInterval | Supply.effectivetime[moodCode=RQO] |
| validityPeriod | effectiveTime |
| numberOfRepeatsAllowed | repeatNumber |
| quantity | quantity |
| expectedSupplyDuration | expectedUseTime |
| performer | .outboundRelationship[typeCode=COMP].target[classCode=SPLY, moodCode=RQO] .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE] |
| substitution | subjectOf.substitutionPersmission |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| allowed[x] | code |
| reason | reasonCode |
| priorPrescription | .outboundRelationship[typeCode=?RPLC or ?SUCC]/target[classCode=SBADM,moodCode=RQO] |
| detectedIssue | .inboundRelationship[typeCode=SUBJ]/source[classCode=ALRT,moodCode=EVN].value |
| eventHistory | .inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN] |