Moderne Patient:innenabrechnung und Datenkommunikation on FHIR (MOPED)
0.1.0 - ci-build

Moderne Patient:innenabrechnung und Datenkommunikation on FHIR (MOPED) - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: MopedPatientBund - Mappings

Draft as of 2025-06-26

Mappings for the MopedPatientBund resource profile.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameAllgemeiner Implementierungsleitfaden v3FiveWs Pattern MappingRIM MappingInterface PatternCDA (R2)HL7 V2 MappingLOINC code for the elementdoco
.. Patient
ClinicalDocument.recordTarget.patientRole
administrative.individual
  • Entity
  • Role
  • or Act
  • Patient[classCode=PAT]
ParticipantLiving
ClinicalDocument.recordTarget.patientRole
... id
... meta
... implicitRules
... text
Act.text?
... contained
N/A
... Slices for extension
.... extension:citizenship
..... id
n/a
..... Slices for extension
n/a
...... extension:code
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:period
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
..... url
N/A
..... value[x]
N/A
.... extension:PatientReligion
.... extension:birthPlace
..... id
n/a
..... extension
..... url
N/A
..... value[x]
N/A
... modifierExtension
N/A
... Slices for identifier
FiveWs.identifier
id
Participant.identifier
.id
PID-3
.... identifier:socialSecurityNumber
FiveWs.identifier
id
Participant.identifier
.id
PID-3
.... identifier:bPK
FiveWs.identifier
id
Participant.identifier
.id
PID-3
.... identifier:localPatientId
FiveWs.identifier
id
Participant.identifier
.id
PID-3
... active
n/a
FiveWs.status
statusCode
Participant.active
n/a
... name
.patient.name
name
Participant.name
.patient.name
  • PID-5
  • PID-9
.... id
n/a
.... Slices for extension
..... extension:data-absent-reason
ANY.nullFlavor
...... id
n/a
...... extension
...... url
N/A
...... value[x]
N/A
.... use
unique(./use)
  • XPN.7
  • but often indicated by which field contains the name
.... text
./formatted
implied by XPN.11
.... family
.patient.name.family.dataString
./part[partType = FAM]
XPN.1/FN.1
.... given
.patient.name.given.dataString
./part[partType = GIV]
XPN.2 + XPN.3
.... prefix
.patient.name.prefix.dataString
./part[partType = PFX]
XPN.5
.... suffix
.patient.name.suffix.dataString
./part[partType = SFX]
XPN/4
.... period
./usablePeriod[type="IVL<TS>"]
XPN.13 + XPN.14
... telecom
telecom
ParticipantContactable.telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
... gender
.patient.administrativeGenderCode.displayName
player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
ParticipantLiving.gender
.patient.administrativeGenderCode
PID-8
.... id
.... Slices for extension
..... extension:AdministrativeGenderAddition
.... value
... birthDate
.patient.birthTime.value
player[classCode=PSN|ANM and determinerCode=INSTANCE]/birthTime
ParticipantLiving.birthDate
.patient.birthTime
PID-7
21112-8
... Slices for deceased[x]
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedTime
n/a
PID-30 (bool) and PID-29 (datetime)
.... deceased[x]:deceasedBoolean
.patient.deceasedInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedTime
n/a
PID-30 (bool) and PID-29 (datetime)
.... deceased[x]:deceasedDateTime
.patient.deceasedTime
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedTime
n/a
PID-30 (bool) and PID-29 (datetime)
... address
addr
ParticipantContactable.address
.addr
PID-11
.... id
n/a
.... Slices for extension
n/a
..... extension:municipalityCode
.... use
.addr.use
unique(./use)
XAD.7
.... type
unique(./use)
XAD.18
.... text
.addr.select(streetAddressLine.dataString + ' ' + postalCode.dataString + ' ' + city.dataString + ' ' + country.dataString)
./formatted
XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6
.... line
.addr.streetAddressLine
AD.part[parttype = AL]
XAD.1 and XAD.2 have different meanings for a company address than for a person address)
.... city
.addr.city.dataString
AD.part[parttype = CTY]
XAD.3
.... district
AD.part[parttype = CNT | CPA]
XAD.9
.... state
.addr.state.dataString
AD.part[parttype = STA]
XAD.4
.... postalCode
.addr.postalCode.dataString
AD.part[parttype = ZIP]
XAD.5
.... country
.addr.country.dataString
AD.part[parttype = CNT]
XAD.6
.... period
./usablePeriod[type="IVL<TS>"]
XAD.12 / XAD.13 + XAD.14
... maritalStatus
player[classCode=PSN]/maritalStatusCode
.patient.maritalStatusCode
PID-16
.... id
n/a
.... extension
n/a
.... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
..... id
n/a
..... extension
n/a
..... system
.patient.maritalStatusCode.codeSystem
./codeSystem
C*E.3
..... version
./codeSystemVersion
C*E.7
..... code
.patient.maritalStatusCode.code
./code
C*E.1
..... display
.patient.maritalStatusCode.displayName
CV.displayName
C*E.2 - but note this is not well followed
..... userSelected
CD.codingRationale
Sometimes implied by being first
.... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... Slices for multipleBirth[x]
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthOrderNumber
n/a
  • PID-24 (bool)
  • PID-25 (integer)
.... multipleBirth[x]:multipleBirthBoolean
n/a
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthOrderNumber
n/a
  • PID-24 (bool)
  • PID-25 (integer)
.... multipleBirth[x]:multipleBirthInteger
n/a
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthOrderNumber
n/a
  • PID-24 (bool)
  • PID-25 (integer)
... photo
n/a
player[classCode=PSN|ANM and determinerCode=INSTANCE]/desc
ParticipantLiving.photo
n/a
OBX-5 - needs a profile
... contact
player[classCode=PSN|ANM and determinerCode=INSTANCE]/scopedRole[classCode=CON]
n/a
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... relationship
code
n/a
  • NK1-7
  • NK1-3
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.code.codeSystem
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.code.code
./code
C*E.1
...... display
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.code.displayName
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
.... name
name
n/a
NK1-2
..... id
n/a
..... extension
n/a
..... use
unique(./use)
  • XPN.7
  • but often indicated by which field contains the name
..... text
./formatted
implied by XPN.11
..... family
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.associatedPerson.name.family
./part[partType = FAM]
XPN.1/FN.1
..... given
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.associatedPerson.name.given
./part[partType = GIV]
XPN.2 + XPN.3
..... prefix
./part[partType = PFX]
XPN.5
..... suffix
./part[partType = SFX]
XPN/4
..... period
./usablePeriod[type="IVL<TS>"]
XPN.13 + XPN.14
.... telecom
telecom
n/a
  • NK1-5
  • NK1-6
  • NK1-40
..... id
n/a
..... extension
n/a
..... system
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.telecom.system
./scheme
XTN.3
..... value
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.telecom.value
./url
XTN.1 (or XTN.12)
..... use
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.telecom.use
unique(./use)
XTN.2 - but often indicated by field
..... rank
n/a
n/a
..... period
./usablePeriod[type="IVL<TS>"]
N/A
.... address
addr
n/a
NK1-4
..... id
n/a
..... Slices for extension
n/a
...... extension:municipalityCode
..... use
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.addr.use
unique(./use)
XAD.7
..... type
unique(./use)
XAD.18
..... text
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.addr.select(streetAddressLine.dataString + ' ' + postalCode.dataString + ' ' + city.dataString + ' ' + country.dataString)
./formatted
XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6
..... line
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.addr.streetAddressLine
AD.part[parttype = AL]
XAD.1 and XAD.2 have different meanings for a company address than for a person address)
...... id
...... Slices for extension
....... extension:street
ADXP[partType=STR]
....... extension:streetNumber
ADXP[partType=BNR]
....... extension:floorDoorNumber
ADXP[partType=ADL]
....... extension:additionalInformation
...... value
..... city
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.addr.city.dataString
AD.part[parttype = CTY]
XAD.3
..... district
AD.part[parttype = CNT | CPA]
XAD.9
..... state
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.addr.state.dataString
AD.part[parttype = STA]
XAD.4
..... postalCode
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.addr.postalCode.dataString
AD.part[parttype = ZIP]
XAD.5
..... country
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.addr.country.dataString
AD.part[parttype = CNT]
XAD.6
..... period
./usablePeriod[type="IVL<TS>"]
XAD.12 / XAD.13 + XAD.14
.... gender
n/a
player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
n/a
NK1-15
..... id
..... Slices for extension
...... extension:AdministrativeGenderAddition
..... value
.... organization
ClinicalDocument.participant.where(associatedEntity.classCode='ECON').associatedEntity.scopingOrganization.id[0]
scoper
n/a
  • NK1-13
  • NK1-30
  • NK1-31
  • NK1-32
  • NK1-41
.... period
n/a
effectiveTime
n/a
... communication
LanguageCommunication
ParticipantLiving.communication
patient.languageCommunication
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... language
.patient.languageCommunication.languageCode.code
player[classCode=PSN|ANM and determinerCode=INSTANCE]/languageCommunication/code
.languageCode
  • PID-15
  • LAN-2
.... preferred
.patient.languageCommunication.preferenceInd.value
preferenceInd
.preferenceInd
PID-15
... generalPractitioner
ClinicalDocument.participant.where(functionCode='PCP').associatedEntity.id
subjectOf.CareEvent.performer.AssignedEntity
n/a
PD1-4
... managingOrganization
ClinicalDocument.custodian.assignedCustodian.representedCustodianOrganization.id
scoper
.providerOrganization
... link
outboundLink
n/a
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... other
n/a
id
n/a
  • PID-3
  • MRG-1
.... type
n/a
typeCode
n/a

doco Documentation for this format