PACIO Advance Directive Interoperability Implementation Guide
0.1.0 - STU 1 Ballot

Publication Build: This will be filled in by the publication tooling

## Resource Profile: PADIPACPComposition - Mappings

Mappings for the PADI-PACPComposition resource profile.

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

PADIPACPComposition
Composition | Event
identifier | Event.identifier
status | Event.status
type | Event.code
category | Event.subject
encounter | Event.context
date | Event.occurrence[x]
author | Event.performer

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

PADIPACPComposition
Composition | Entity. Role, or Act, Document[classCode="DOC" and moodCode="EVN" and isNormalAct()]
text | Act.text?
contained | N/A
modifierExtension | N/A
identifier | Document.id / Document.setId
status | interim: .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", code) and isNormalAct()]); amended: .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition", code) and isNormalAct() and statusCode="completed"]; withdrawn : .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete"
type | ./code
category | .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
subject | .participation[typeCode="SBJ"].role[typeCode="PAT"]
encounter | unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and classCode=("ENC", "PCPR") and isNormalAct])
date | .effectiveTime[type="TS"]
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
title | ./title
attester | .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
id | n/a
modifierExtension | N/A
mode | unique(./modeCode)
time | ./time[type="TS" and isNormalDatatype()]
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()]
attester (legal_attester) | .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
id | n/a
extension | n/a
modifierExtension | N/A
mode | unique(./modeCode)
time | ./time[type="TS" and isNormalDatatype()]
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()]
attester (notary_attester) | .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
id | n/a
extension | n/a
modifierExtension | N/A
mode | unique(./modeCode)
time | ./time[type="TS" and isNormalDatatype()]
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()]
attester (witness_attester) | .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
id | n/a
extension | n/a
modifierExtension | N/A
mode | unique(./modeCode)
time | ./time[type="TS" and isNormalDatatype()]
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()]
custodian | .participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"]
relatesTo | .outboundRelationship
id | n/a
extension | n/a
modifierExtension | N/A
code | .outboundRelationship.typeCode
target[x] | .target[classCode="DOC", moodCode="EVN"].id
event | outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
id | n/a
extension | n/a
modifierExtension | N/A
code | .code
period | .effectiveTime
detail | .outboundRelationship[typeCode="SUBJ"].target
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
id | n/a
modifierExtension | N/A
title | ./title
code | ./code
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
text | .text
mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1
entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
section (healthcare_agent_appointment) | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
id | n/a
modifierExtension | N/A
title | ./title
code | ./code
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
text | .text
mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1
entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
section (gpp_personal_care_experience) | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
id | n/a
modifierExtension | N/A
title | ./title
code | ./code
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
text | .text
mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1
entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
section (gpp_for_certain_health_condition) | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
id | n/a
modifierExtension | N/A
title | ./title
code | ./code
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
text | .text
mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1
entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
section (gpp_upon_death) | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
id | n/a
modifierExtension | N/A
title | ./title
code | ./code
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
text | .text
mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1
entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
section (additional_documentation) | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
id | n/a
modifierExtension | N/A
title | ./title
code | ./code
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
text | .text
mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1
entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
section (witness_and_notary) | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
id | n/a
modifierExtension | N/A
title | ./title
code | ./code
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
text | .text
mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1
entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
section (administrative_information) | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
id | n/a
modifierExtension | N/A
title | ./title
code | ./code
author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"]
text | .text
mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1
entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]

### Mappings for CDA (R2) (http://hl7.org/v3/cda)

PADIPACPComposition
Composition | ClinicalDocument
identifier | .setId
status | n/a
type | .code
category | n/a
subject | .recordTarget
encounter | .componentOf.encompassingEncounter
date | .effectiveTime
author | .author.assignedAuthor
title | .title
attester | .authenticator/.legalAuthenticator
mode | implied by .authenticator/.legalAuthenticator
time | .authenticator.time
party | .authenticator.assignedEnttty
attester (legal_attester) | .authenticator/.legalAuthenticator
mode | implied by .authenticator/.legalAuthenticator
time | .authenticator.time
party | .authenticator.assignedEnttty
attester (notary_attester) | .authenticator/.legalAuthenticator
mode | implied by .authenticator/.legalAuthenticator
time | .authenticator.time
party | .authenticator.assignedEnttty
attester (witness_attester) | .authenticator/.legalAuthenticator
mode | implied by .authenticator/.legalAuthenticator
time | .authenticator.time
party | .authenticator.assignedEnttty
custodian | .custodian.assignedCustodian
relatesTo | .relatedDocument
code | .relatedDocument.typeCode
target[x] | .relatedDocument.id
event | .documentationOf.serviceEvent
code | .code
period | .effectiveTime
detail | n/a
section | .component.structuredBody.component.section
title | .title
code | .code
author | .author.assignedAuthor
focus | .subject? (CDA did not differentiate between subject and focus)
text | .text
mode | n/a
orderedBy | n/a
entry | .entry
emptyReason | n/a
section | .component.section
section (healthcare_agent_appointment) | .component.structuredBody.component.section
title | .title
code | .code
author | .author.assignedAuthor
focus | .subject? (CDA did not differentiate between subject and focus)
text | .text
mode | n/a
orderedBy | n/a
entry | .entry
emptyReason | n/a
section | .component.section
section (gpp_personal_care_experience) | .component.structuredBody.component.section
title | .title
code | .code
author | .author.assignedAuthor
focus | .subject? (CDA did not differentiate between subject and focus)
text | .text
mode | n/a
orderedBy | n/a
entry | .entry
emptyReason | n/a
section | .component.section
section (gpp_for_certain_health_condition) | .component.structuredBody.component.section
title | .title
code | .code
author | .author.assignedAuthor
focus | .subject? (CDA did not differentiate between subject and focus)
text | .text
mode | n/a
orderedBy | n/a
entry | .entry
emptyReason | n/a
section | .component.section
section (gpp_upon_death) | .component.structuredBody.component.section
title | .title
code | .code
author | .author.assignedAuthor
focus | .subject? (CDA did not differentiate between subject and focus)
text | .text
mode | n/a
orderedBy | n/a
entry | .entry
emptyReason | n/a
section | .component.section
section (additional_documentation) | .component.structuredBody.component.section
title | .title
code | .code
author | .author.assignedAuthor
focus | .subject? (CDA did not differentiate between subject and focus)
text | .text
mode | n/a
orderedBy | n/a
entry | .entry
emptyReason | n/a
section | .component.section
section (witness_and_notary) | .component.structuredBody.component.section
title | .title
code | .code
author | .author.assignedAuthor
focus | .subject? (CDA did not differentiate between subject and focus)
text | .text
mode | n/a
orderedBy | n/a
entry | .entry
emptyReason | n/a
section | .component.section
section (administrative_information) | .component.structuredBody.component.section
title | .title
code | .code
author | .author.assignedAuthor
focus | .subject? (CDA did not differentiate between subject and focus)
text | .text
mode | n/a
orderedBy | n/a
entry | .entry
emptyReason | n/a
section | .component.section

### Mappings for FHIR DocumentReference (http://hl7.org/fhir/documentreference)

PADIPACPComposition
Composition | when described by DocumentReference
identifier | DocumentReference.masterIdentifier
status | DocumentReference.status
type | DocumentReference.type
category | DocumenttReference.category
subject | DocumentReference.subject
encounter | DocumentReference.context.encounter
date | DocumentReference.content.attachment.date, DocumentReference.created
author | DocumentReference.agent
title | DocumentReference.description, DocumentReference.content.attachment.title
attester | DocumentReference.authenticator
attester (legal_attester) | DocumentReference.authenticator
attester (notary_attester) | DocumentReference.authenticator
attester (witness_attester) | DocumentReference.authenticator
custodian | DocumentReference.custodian
relatesTo | DocumentReference.relatesTo
code | DocumentReference.relatesTo.code
target[x] | DocumentReference.relatesTo.target
event | DocumentReference.event
code | DocumentReference.event.code
period | DocumentReference.event.period

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

PADIPACPComposition
Composition |
identifier | FiveWs.identifier
status | FiveWs.status
type | FiveWs.class
category | FiveWs.class
subject | FiveWs.subject[x], FiveWs.subject
encounter | FiveWs.context
date | FiveWs.done[x]
author | FiveWs.author
attester |
party | FiveWs.witness
attester (legal_attester) |
party | FiveWs.witness
attester (notary_attester) |
party | FiveWs.witness
attester (witness_attester) |
party | FiveWs.witness
section |
author | FiveWs.author
mode | FiveWs.class
section (healthcare_agent_appointment) |
author | FiveWs.author
mode | FiveWs.class
section (gpp_personal_care_experience) |
author | FiveWs.author
mode | FiveWs.class
section (gpp_for_certain_health_condition) |
author | FiveWs.author
mode | FiveWs.class
section (gpp_upon_death) |
author | FiveWs.author
mode | FiveWs.class
section (additional_documentation) |
author | FiveWs.author
mode | FiveWs.class
section (witness_and_notary) |
author | FiveWs.author
mode | FiveWs.class
section (administrative_information) |
author | FiveWs.author
mode | FiveWs.class