Search FHIR

FR Document Core (FHIR)
0.1.0 - ci-build France (la) flag

FR Document Core (FHIR), published by Agence du Numérique en Santé (ANS) - 2-10 Rue d'Oradour-sur-Glane, 75015 Paris. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/ansforge/interop-IG-fhir-document-core/ and changes regularly. See the Directory of published versions

Resource Profile: FR Composition Document - Mappings

Draft as of 2026-08-07

Mappings for the fr-composition-document resource profile.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameWorkflow PatternRIM MappingCDA (R2)FHIR DocumentReferenceFiveWs Pattern Mappingdoco
.. Composition
Event
Document[classCode="DOC" and moodCode="EVN" and isNormalAct()]
ClinicalDocument
when described by DocumentReference
... id
... meta
.... id
n/a
.... extension
n/a
.... versionId
.... lastUpdated
.... source
.... Slices for profile
..... profile:canonical
.... security
.... tag
... implicitRules
... text
Act.text?
... contained
N/A
... Slices for extension
.... extension:R5-Composition-version
.... extension:data-enterer
..... id
n/a
..... Slices for extension
..... Slices for extension
...... extension:type
....... id
n/a
....... extension
....... url
N/A
....... Slices for value[x]
N/A
....... Slices for value[x]
........ value[x]:valueCodeableConcept
N/A
...... extension:function
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:time
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:party
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
..... url
N/A
..... value[x]
N/A
.... extension:informant
..... id
n/a
..... Slices for extension
..... Slices for extension
...... extension:type
....... id
n/a
....... extension
....... url
N/A
....... Slices for value[x]
N/A
....... Slices for value[x]
........ value[x]:valueCodeableConcept
N/A
...... extension:function
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:time
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:party
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
..... url
N/A
..... value[x]
N/A
.... extension:information-recipient
..... id
n/a
..... Slices for extension
..... Slices for extension
...... extension:type
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:function
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:time
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:party
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
..... url
N/A
..... value[x]
N/A
.... extension:participant
..... id
n/a
..... Slices for extension
..... Slices for extension
...... extension:type
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:function
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:time
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
...... extension:party
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
..... url
N/A
..... value[x]
N/A
.... extension:consent
authorization.Consent
.... extension:basedOn
Event.basedOn
.outboundRelationship[typeCode=FLFS].target
..... id
n/a
..... extension
..... url
N/A
..... value[x]
N/A
.... extension:change-made
... modifierExtension
N/A
... identifier
Event.identifier
Document.id / Document.setId
.setId
DocumentReference.masterIdentifier
FiveWs.identifier
... status
Event.status
  • .completionCode="IN" & ./statusCode[isNormalDatatype()]="active"; final: .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and not(./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition"
  • .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition"
  • .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete"
n/a
DocumentReference.status
FiveWs.status
.... id
.... Slices for extension
..... extension:R5-Composition-status
.... value
... type
Event.code
./code
.code
DocumentReference.type
FiveWs.class
... Slices for category
Event.subject
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
n/a
DocumenttReference.category
FiveWs.class
.... category:clinicalnotecategory
Event.subject
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
n/a
DocumenttReference.category
FiveWs.class
... subject
.participation[typeCode="SBJ"].role[typeCode="PAT"]
.recordTarget
DocumentReference.subject
FiveWs.subject
.... id
n/a
.... extension
n/a
.... reference
N/A
.... type
N/A
.... identifier
.identifier
.... display
N/A
... encounter
Event.context
  • unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]
  • priorityNumber)/target[moodCode="EVN" and classCode=("ENC"
  • "PCPR") and isNormalAct])
.componentOf.encompassingEncounter
DocumentReference.context.encounter
FiveWs.context
... date
Event.occurrence[x]
.effectiveTime[type="TS"]
.effectiveTime
  • DocumentReference.content.attachment.date
  • DocumentReference.created
FiveWs.done[x]
... author
Event.performer
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
DocumentReference.agent
FiveWs.author
.... id
n/a
.... Slices for extension
..... extension:time
.... reference
N/A
.... type
N/A
.... identifier
.identifier
.... display
N/A
... title
./title
.title
  • DocumentReference.description
  • DocumentReference.content.attachment.title
... confidentiality
.confidentialityCode
.confidentialityCode
DocumentReference.securityLabel
... Slices for attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
.authenticator/.legalAuthenticator
DocumentReference.authenticator
.... attester:All Slices
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... mode
unique(./modeCode)
implied by .authenticator/.legalAuthenticator
..... time
./time[type="TS" and isNormalDatatype()]
.authenticator.time
..... party
  • ./role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV"
  • "PSN") and isNormalEntity()] or ./role[classCode="ASSIGNED" and isNormalRole and not(player)]/scoper[determinerCode="INST" and classCode="ORG" and isNormalEntity()]
.authenticator.assignedEnttty
FiveWs.witness
.... attester:legal_attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
.authenticator/.legalAuthenticator
DocumentReference.authenticator
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... mode
unique(./modeCode)
implied by .authenticator/.legalAuthenticator
..... time
./time[type="TS" and isNormalDatatype()]
.authenticator.time
..... party
  • ./role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV"
  • "PSN") and isNormalEntity()] or ./role[classCode="ASSIGNED" and isNormalRole and not(player)]/scoper[determinerCode="INST" and classCode="ORG" and isNormalEntity()]
.authenticator.assignedEnttty
FiveWs.witness
.... attester:professional_attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
.authenticator/.legalAuthenticator
DocumentReference.authenticator
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... mode
unique(./modeCode)
implied by .authenticator/.legalAuthenticator
..... time
./time[type="TS" and isNormalDatatype()]
.authenticator.time
..... party
  • ./role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV"
  • "PSN") and isNormalEntity()] or ./role[classCode="ASSIGNED" and isNormalRole and not(player)]/scoper[determinerCode="INST" and classCode="ORG" and isNormalEntity()]
.authenticator.assignedEnttty
FiveWs.witness
... custodian
.participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"]
.custodian.assignedCustodian
DocumentReference.custodian
... Slices for relatesTo
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
.... relatesTo:All Slices
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... code
.outboundRelationship.typeCode
.relatedDocument.typeCode
DocumentReference.relatesTo.code
..... Slices for target[x]
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
...... target[x]:targetIdentifier
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
....... 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
.... relatesTo:replaced_document
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... code
.outboundRelationship.typeCode
.relatedDocument.typeCode
DocumentReference.relatesTo.code
..... Slices for target[x]
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
..... Slices for target[x]
...... target[x]:targetIdentifier
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
....... 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
.... relatesTo:appended_document
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... code
.outboundRelationship.typeCode
.relatedDocument.typeCode
DocumentReference.relatesTo.code
..... Slices for target[x]
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
..... Slices for target[x]
...... target[x]:targetIdentifier
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
....... 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
.... relatesTo:transformed_document
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... code
.outboundRelationship.typeCode
.relatedDocument.typeCode
DocumentReference.relatesTo.code
..... Slices for target[x]
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
..... Slices for target[x]
...... target[x]:targetIdentifier
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
... Slices for event
outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
.documentationOf.serviceEvent
DocumentReference.event
.... event:All Slices
..... id
n/a
..... Slices for extension
...... extension:performer
..... modifierExtension
N/A
..... code
.code
.code
DocumentReference.event.code
..... period
.effectiveTime
.effectiveTime
DocumentReference.event.period
..... detail
.outboundRelationship[typeCode="SUBJ"].target
n/a
.... event:principalEvent
outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
.documentationOf.serviceEvent
DocumentReference.event
..... id
n/a
..... Slices for extension
..... Slices for extension
...... extension:performer
..... modifierExtension
N/A
..... code
.code
.code
DocumentReference.event.code
..... period
.effectiveTime
.effectiveTime
DocumentReference.event.period
..... detail
.outboundRelationship[typeCode="SUBJ"].target
n/a
... section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
.... id
n/a
.... Slices for extension
..... extension:change-made
..... extension:section-note
.... modifierExtension
N/A
.... title
./title
.title
.... code
./code
.code
.... author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
FiveWs.author
.... focus
.subject? (CDA did not differentiate between subject and focus)
.... text
.text
.text
.... mode
.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
n/a
FiveWs.class
.... orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
.... entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
.... emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
.... section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section

doco Documentation for this format