MediRecords FHIR Implementation Guide
1.3.0 - release


Resource Profile: MRDiagnosticReport - Mappings

Mappings for the mr-diagnosticreport resource profile.

Mappings for Workflow Pattern (http://hl7.org/fhir/workflow)

MRDiagnosticReport
DiagnosticReportEvent
   contained
   contained (request)Request
      instantiatesCanonicalRequest.instantiatesCanonical
      instantiatesUriRequest.instantiatesUri
      basedOnRequest.basedOn
      replacesRequest.replaces
      requisitionRequest.groupIdentifier
      statusRequest.status
      intentRequest.intent
      priorityRequest.priority
      doNotPerformRequest.doNotPerform
      codeRequest.code
      subjectRequest.subject
      encounterRequest.encounter
      occurrence[x]Request.occurrence[x]
      authoredOnRequest.authoredOn
      requesterRequest.requester
      performerTypeRequest.performerType
      performerRequest.performer
      reasonCodeRequest.reasonCode
      reasonReferenceRequest.reasonReference
      insuranceRequest.insurance
      supportingInfoRequest.supportingInfo
      noteRequest.note
      relevantHistoryRequest.relevantHistory
   basedOnEvent.basedOn
   statusEvent.status
   codeEvent.code
   subjectEvent.subject
   encounterEvent.encounter
   effective[x]Event.occurrence[x]
   effective[x] (effectiveDateTime)Event.occurrence[x]
   performerEvent.performer.actor
   resultsInterpreterEvent.performer.actor

Mappings for HL7 v2 Mapping (http://hl7.org/v2)

MRDiagnosticReport
DiagnosticReportORU -> OBR
   contained
   contained (request)ORC
      identifierCX / EI (occasionally, more often EI maps to a resource id or a URL)
      instantiatesCanonicalVaries by domain
      instantiatesUriVaries by domain
      basedOnORC.8 (plus others)
      replacesHandled by message location of ORC (ORC.1=RO or RU)
      requisitionORC.4
      statusORC.5,RF1-1
      intentN/A
      categoryRF1-5
      priorityTQ1.9, RF1-2
      codePR1-3 / OBR-4 (varies by domain)
         codingC*E.1-8, C*E.10-22
         textC*E.9. But note many systems use C*E.2 for this
      orderDetailNTE
      quantity[x]NTE
      subjectPID
      encounterPV1
      occurrence[x]TQ1/TQ2, OBR-7/OBR-8
      authoredOnORC.9, RF1-7 / RF1-9
      requesterORC.12, PRT
      performerTypePRT, RF!-3
      performerPRT, Practitioner: PRD-2/PRD-7 where PRD-3 = RT; Organization: PRD-10 where PRD-3 = RT
      reasonCodeORC.16, RF1-10
      reasonReferenceORC.16
      insuranceIN1/IN2
      supportingInfoAccompanying segments
      specimenSPM
      bodySiteSPM
      noteNTE
      patientInstructionNTE
      relevantHistoryN/A
   identifierCX / EI (occasionally, more often EI maps to a resource id or a URL)
   basedOnORC? OBR-2/3?
   statusOBR-25 (not 1:1 mapping)
   categoryOBR-24
   codeOBR-4 (HL7 v2 doesn't provide an easy way to indicate both the ordered test and the performed panel)
      codingC*E.1-8, C*E.10-22
      textC*E.9. But note many systems use C*E.2 for this
   subjectPID-3 (no HL7 v2 mapping for Group or Device)
   encounterPV1-19
   effective[x]OBR-7
   effective[x] (effectiveDateTime)OBR-7
   issuedOBR-22
   performerPRT-8 (where this PRT-4-Participation = "PO")
   resultsInterpreterOBR-32, PRT-8 (where this PRT-4-Participation = "PI")
   specimenSPM
   resultOBXs
   mediaOBX?
   conclusionOBX
   conclusionCodeOBX
   presentedFormOBX
      contentTypeED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used
      dataED.5
      urlRP.1+RP.2 - if they refer to a URL (see v2.6)

Mappings for RIM Mapping (http://hl7.org/v3)

MRDiagnosticReport
DiagnosticReportEntity. Role, or Act, Observation[classCode=OBS, moodCode=EVN]
   metan/a, N/A
      idn/a
      extensionn/a
   textAct.text?
   containedN/A
   contained (request)Entity. Role, or Act, Act[moodCode<=INT]
      textAct.text?
      containedN/A
      modifierExtensionN/A
      identifiern/a, II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
      instantiatesCanonical.outboundRelationship[typeCode=DEFN].target
      instantiatesUri.outboundRelationship[typeCode=DEFN].target
      basedOn.outboundRelationship[typeCode=FLFS].target
      replaces.outboundRelationship[typeCode=RPLC].target
      requisition.inboundRelationship(typeCode=COMP].source[moodCode=INT].identifier
      status.status
      intent.moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere)
      category.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="INT"].code
      priority.priorityCode
      doNotPerform.actionNegationInd
      code.code
         idn/a
         extensionn/a
         codingunion(., ./translation)
         text./originalText[mediaType/code="text/plain"]/data
      orderDetail.code
      quantity[x].quantity
      subject.participation[typeCode=SBJ].role
         idn/a
         extensionn/a
         referenceN/A
         typeN/A
         identifier.identifier
         displayN/A
      encounter.inboundRelationship(typeCode=COMP].source[classCode<=PCPR, moodCode=EVN]
      occurrence[x].effectiveTime
      asNeeded[x]boolean: precondition.negationInd (inversed - so negationInd = true means asNeeded=false CodeableConcept: precondition.observationEventCriterion[code="Assertion"].value
      authoredOn.participation[typeCode=AUT].time
      requester.participation[typeCode=AUT].role
         idn/a
         extensionn/a
         referenceN/A
         typeN/A
         identifier.identifier
         displayN/A
      performerType.participation[typeCode=PRF].role[scoper.determinerCode=KIND].code
      performer.participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
      locationCode.participation[typeCode=LOC].role[scoper.determinerCode=KIND].code
      locationReference.participation[typeCode=LOC].role[scoper.determinerCode=INSTANCE]
      reasonCode.reasonCode
      reasonReference.outboundRelationship[typeCode=RSON].target
      insurance.outboundRelationship[typeCode=COVBY].target
      supportingInfo.outboundRelationship[typeCode=PERT].target
      specimen.participation[typeCode=SPC].role
      bodySitetargetSiteCode
      note.inboundRelationship(typeCode=SUBJ].source[classCode=ANNGEN, moodCode=EVN].value[xsi:type=ST]
      patientInstruction.text
      relevantHistory.inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]
   extension
   extension (note)
   extension (checked)
      idn/a
      extensionn/a
      extension (checked-on)
         idn/a
         urlN/A
         value[x]N/A
         value[x] (valueDateTime)N/A
      extension (checked-by)
         idn/a
         urlN/A
         value[x]N/A
         value[x] (valueReference)N/A
            idn/a
            extensionn/a
            referenceN/A
            typeN/A
            identifier.identifier
            displayN/A
      urlN/A
   modifierExtensionN/A
   identifiern/a, II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
   basedOnoutboundRelationship[typeCode=FLFS].target
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
      displayN/A
   statusstatusCode Note: final and amended are distinguished by whether observation is the subject of a ControlAct event of type "revise"
   categoryinboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code
   codecode
      idn/a
      extensionn/a
      codingunion(., ./translation)
      text./originalText[mediaType/code="text/plain"]/data
   subjectparticipation[typeCode=SBJ]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
      displayN/A
   encounterinboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]
   effective[x]effectiveTime
   effective[x] (effectiveDateTime)effectiveTime
   issuedparticipation[typeCode=VRF or AUT].time
   performer.participation[typeCode=PRF]
   resultsInterpreter.participation[typeCode=PRF]
   specimenparticipation[typeCode=SBJ]
   resultoutboundRelationship[typeCode=COMP].target
   imagingStudyoutboundRelationship[typeCode=COMP].target[classsCode=DGIMG, moodCode=EVN]
   mediaoutboundRelationship[typeCode=COMP].target
      idn/a
      extensionn/a
      modifierExtensionN/A
      comment.inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="annotation"].value
      link.value.reference
   conclusioninboundRelationship[typeCode="SPRT"].source[classCode=OBS, moodCode=EVN, code=LOINC:48767-8].value (type=ST)
   conclusionCodeinboundRelationship[typeCode=SPRT].source[classCode=OBS, moodCode=EVN, code=LOINC:54531-9].value (type=CD)
   presentedFormtext (type=ED)
      idn/a
      extensionn/a
      contentType./mediaType, ./charset
      language./language
      data./data
      url./reference/literal
      sizeN/A (needs data type R3 proposal)
      hash.integrityCheck[parent::ED/integrityCheckAlgorithm="SHA-1"]
      title./title/data
      creationN/A (needs data type R3 proposal)

Mappings for FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)

MRDiagnosticReport
DiagnosticReport
   contained
   contained (request)
      statusFiveWs.status
      intentFiveWs.class
      categoryFiveWs.class
      priorityFiveWs.grade
      codeFiveWs.what[x]
      subjectFiveWs.subject[x], FiveWs.subject
      encounterFiveWs.context
      occurrence[x]FiveWs.planned
      authoredOnFiveWs.recorded
      requesterFiveWs.author
      performerTypeFiveWs.actor
      performerFiveWs.actor
      locationCodeFiveWs.actor
      locationReferenceFiveWs.actor
      reasonCodeFiveWs.why[x]
      reasonReferenceFiveWs.why[x]
   statusFiveWs.status
   categoryFiveWs.class
   codeFiveWs.what[x]
   subjectFiveWs.subject[x], FiveWs.subject
   encounterFiveWs.context
   effective[x]FiveWs.done[x]
   effective[x] (effectiveDateTime)FiveWs.done[x]
   issuedFiveWs.recorded
   performerFiveWs.actor
   resultsInterpreterFiveWs.actor