Skip to content

Commit 692dfd1

Browse files
committed
Merge branch 'htr-Mapping-CDA-FHIR'
2 parents d99a06b + 48c659a commit 692dfd1

28 files changed

Lines changed: 1756 additions & 15 deletions
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
Instance: mappingAuteurCDAFHIR
2+
InstanceOf: ConceptMap
3+
Usage: #definition
4+
Title: "Mapping Métier/CDA/FHIR : \"Auteur\""
5+
Description: """Ce ConceptMap présente deux groupes de mapping :
6+
- Mapping 1 : entre le modèle métier \"auteur\" et l'élément CDA \"author\"
7+
- Mapping 2 : entre l'élément CDA \"author\" et l'élément FHIR \"Composition.author\" """
8+
9+
* name = "Mapping Métier/CDA/FHIR : \"Auteur\""
10+
* status = #draft
11+
* experimental = false
12+
13+
// Groupe Mapping 1 : modèle métier to CDA
14+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/Auteur"
15+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-author"
16+
* group[=].element[+].code = #Auteur
17+
* group[=].element[=].target.code = #author
18+
* group[=].element[=].target.equivalence = #equivalent
19+
* group[=].element[+].code = #Auteur.roleFonctionnel
20+
* group[=].element[=].target.code = #author.functionCode
21+
* group[=].element[=].target.equivalence = #equivalent
22+
* group[=].element[+].code = #Auteur.horodatageParticipation
23+
* group[=].element[=].target.code = #author.time
24+
* group[=].element[=].target.equivalence = #equivalent
25+
* group[=].element[+].code = #Auteur.PersonneStructure
26+
* group[=].element[=].target.code = #author.assignedAuthor
27+
* group[=].element[=].target.equivalence = #equivalent
28+
* group[=].element[=].target.comment = "L'élément PersonneStructure est de type PersonneStructure."
29+
* group[=].element[+].code = #Auteur.SystemeStructureAuteur
30+
* group[=].element[=].target.code = #author.assignedAuthor
31+
* group[=].element[=].target.equivalence = #equivalent
32+
* group[=].element[=].target.comment = "L'élément SystemeStructureAuteur est de type Systeme"
33+
34+
// Groupe Mapping 2 : CDA to FHIR
35+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-author"
36+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document"
37+
* group[=].element[+].code = #author
38+
* group[=].element[=].target.code = #Composition.author
39+
* group[=].element[=].target.equivalence = #equivalent
40+
* group[=].element[+].code = #author.time
41+
* group[=].element[=].target.code = #Composition.author.extension:time
42+
* group[=].element[=].target.equivalence = #equivalent
43+
* group[=].element[+].code = #author.functionCode
44+
* group[=].element[=].target.code = #Composition.author.PractitionerRole.code
45+
* group[=].element[=].target.equivalence = #equivalent
46+
* group[=].element[=].target.comment = "Auteur du document est un professionnel et author.ofType(PractitionerRole)"
47+
// Auteur : Professionnel ou Patient
48+
* group[=].element[+].code = #author.assignedAuthor
49+
* group[=].element[=].target.code = #Composition.author.Practitioner
50+
* group[=].element[=].target.equivalence = #equivalent
51+
* group[=].element[=].target.comment = "Composition.author.resolve().ofType(Practitioner)"
52+
* group[=].element[+].code = #author.assignedAuthor
53+
* group[=].element[=].target.code = #Composition.author.Patient
54+
* group[=].element[=].target.equivalence = #equivalent
55+
* group[=].element[=].target.comment = "Composition.author.resolve().ofType(Patient)"
56+
// Auteur : Systeme
57+
* group[=].element[+].code = #author.assignedAuthor
58+
* group[=].element[=].target.code = #Composition.author.Device
59+
* group[=].element[=].target.equivalence = #equivalent
60+
* group[=].element[=].target.comment = "Composition.author.resolve().ofType(Device)"
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
Instance: mappingConsentementCDAFHIR
2+
InstanceOf: ConceptMap
3+
Usage: #definition
4+
Title: "Mapping Métier/CDA/FHIR : \"Consentement\""
5+
Description: """Ce ConceptMap présente deux groupes de mapping :
6+
- Mapping 1 : entre le modèle métier \"ConsentementAssocie\" et l'élément CDA \"authorization\"
7+
- Mapping 2 : entre l'élément CDA \"authorization\" et l'extension FHIR \"ConsentExtension\" """
8+
9+
* name = "Mapping Métier/CDA/FHIR : \"Consentement\""
10+
* status = #draft
11+
* experimental = false
12+
13+
// Groupe Mapping 1 : modèle métier to CDA
14+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/Consentement"
15+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-authorization"
16+
* group[=].element[+].code = #Consentement
17+
* group[=].element[=].target.code = #authorization
18+
* group[=].element[=].target.equivalence = #equivalent
19+
* group[=].element[+].code = #Consentement.identifiantConsentement
20+
* group[=].element[=].target.code = #authorization.consent.id
21+
* group[=].element[=].target.equivalence = #equivalent
22+
* group[=].element[+].code = #Consentement.typeConsentement
23+
* group[=].element[=].target.code = #authorization.consent.code
24+
* group[=].element[=].target.equivalence = #equivalent
25+
* group[=].element[+].code = #Consentement.statutConsentement
26+
* group[=].element[=].target.code = #authorization.consent.statusCode="completed"
27+
* group[=].element[=].target.equivalence = #equivalent
28+
29+
// Groupe Mapping 2 : CDA to FHIR
30+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-authorization"
31+
* group[=].target = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/consent-extension"
32+
* group[=].element[+].code = #authorization
33+
* group[=].element[=].target.code = #extension:ConsentExtension.ValueReference.Consent
34+
* group[=].element[=].target.equivalence = #equivalent
35+
* group[=].element[=].target.comment = "ValueReference.resolve().ofType(Consent)"
36+
* group[=].element[+].code = #authorization.consent.id
37+
* group[=].element[=].target.code = #extension:ConsentExtension.ValueReference.Consent.identifier
38+
* group[=].element[=].target.equivalence = #equivalent
39+
* group[=].element[+].code = #authorization.consent.code
40+
* group[=].element[=].target.code = #extension:ConsentExtension.ValueReference.Consent.category
41+
* group[=].element[=].target.equivalence = #equivalent
42+
* group[=].element[+].code = #authorization.consent.statusCode="completed"
43+
* group[=].element[=].target.code = #extension:ConsentExtension.ValueReference.Consent.status:active
44+
* group[=].element[=].target.equivalence = #equivalent
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
Instance: mappingDestinatairePrevuCDAFHIR
2+
InstanceOf: ConceptMap
3+
Usage: #definition
4+
Title: "Mapping Métier/CDA/FHIR : \"Destinataire prévu\""
5+
Description: """Ce ConceptMap présente deux groupes de mapping :
6+
- Mapping 1 : entre le modèle métier \"destinataire\" et l'élément CDA \"informationRecipient\"
7+
- Mapping 2 : entre l'élément CDA \"informationRecipient\" et l'extension FHIR \"InformationRecipientExtension\" """
8+
9+
* name = "Mapping Métier/CDA/FHIR : \"Destinataire prévu\""
10+
* status = #draft
11+
* experimental = false
12+
13+
// Groupe Mapping 1 : modèle métier to CDA
14+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/DestinatairePrevu"
15+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-information-recipient"
16+
* group[=].element[+].code = #DestinatairePrevu
17+
* group[=].element[=].target.code = #informationRecipient
18+
* group[=].element[=].target.equivalence = #equivalent
19+
* group[=].element[+].code = #DestinatairePrevu.destinataire
20+
* group[=].element[=].target.code = #informationRecipient.intendedRecipient
21+
* group[=].element[=].target.equivalence = #equivalent
22+
* group[=].element[=].target.comment = "L'élément destinataire est de type PersonneStructure."
23+
24+
// Groupe Mapping 2 : CDA to FHIR
25+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-information-recipient"
26+
* group[=].target = "http://hl7.org/fhir/uv/fhir-clinical-document/StructureDefinition/information-recipient-extension"
27+
* group[=].element[+].code = #informationRecipient
28+
* group[=].element[=].target.code = #extension:InformationRecipientExtension
29+
* group[=].element[=].target.equivalence = #equivalent
30+
* group[=].element[+].code = #informationRecipient.intendedRecipient
31+
* group[=].element[=].target.code = #extension:InformationRecipientExtension.extension:party.PractitionerRole
32+
* group[=].element[=].target.equivalence = #equivalent
33+
* group[=].element[+].code = #informationRecipient.intendedRecipient.id
34+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.identifier
35+
* group[=].element[=].target.equivalence = #equivalent
36+
* group[=].element[+].code = #informationRecipient.intendedRecipient.addr
37+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.address
38+
* group[=].element[=].target.equivalence = #equivalent
39+
* group[=].element[+].code = #informationRecipient.intendedRecipient.telecom
40+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.telecom
41+
* group[=].element[=].target.equivalence = #equivalent
42+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name
43+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name
44+
* group[=].element[=].target.equivalence = #equivalent
45+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name.family
46+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name.family
47+
* group[=].element[=].target.equivalence = #equivalent
48+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name.given
49+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name.given
50+
* group[=].element[=].target.equivalence = #equivalent
51+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name.prefix
52+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name.prefix
53+
* group[=].element[=].target.equivalence = #equivalent
54+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.name.suffix
55+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Practitioner.name.suffix
56+
* group[=].element[=].target.equivalence = #equivalent
57+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization
58+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization
59+
* group[=].element[=].target.equivalence = #equivalent
60+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization.id
61+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization.identifier
62+
* group[=].element[=].target.equivalence = #equivalent
63+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization.name
64+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization.name
65+
* group[=].element[=].target.equivalence = #equivalent
66+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization.telecom
67+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization.telecom
68+
* group[=].element[=].target.equivalence = #equivalent
69+
* group[=].element[+].code = #informationRecipient.intendedRecipient.informationRecipient.receivedOrganization.addr
70+
* group[=].element[=].target.code = #extension:party.PractitionerRole.Organization.address
71+
* group[=].element[=].target.equivalence = #equivalent
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
Instance: mappingDocumentDeReferenceCDAFHIR
2+
InstanceOf: ConceptMap
3+
Usage: #definition
4+
Title: "Mapping Métier/CDA/FHIR : \"DocumentDeReference\""
5+
Description: """Ce ConceptMap présente deux groupes de mapping :
6+
- Mapping 1 : entre le modèle métier \"documentDeReference\" et l'élément CDA \"relatedDocument\"
7+
- Mapping 2 : entre l'élément CDA \"relatedDocument\" et l'élément FHIR \"Composition.relatesTo\" """
8+
9+
* name = "Mapping Métier/CDA/FHIR : \"DocumentDeReference\""
10+
* status = #draft
11+
* experimental = false
12+
13+
// Groupe Mapping 1 : modèle métier to CDA
14+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/DocumentDeReference"
15+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-related-document"
16+
* group[=].element[+].code = #DocumentDeReference
17+
* group[=].element[=].target.code = #relatedDocument
18+
* group[=].element[=].target.equivalence = #equivalent
19+
* group[=].element[+].code = #DocumentDeReference.typeReference
20+
* group[=].element[=].target.code = #relatedDocument@typeCode
21+
* group[=].element[=].target.equivalence = #equivalent
22+
* group[=].element[+].code = #DocumentDeReference.identifiantUniqueDocument
23+
* group[=].element[=].target.code = #relatedDocument.parentDocument.id
24+
* group[=].element[=].target.equivalence = #equivalent
25+
26+
// Groupe Mapping 2 : CDA to FHIR
27+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-related-document"
28+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document"
29+
* group[=].element[+].code = #relatedDocument
30+
* group[=].element[=].target.code = #Composition.relatesTo
31+
* group[=].element[=].target.equivalence = #equivalent
32+
* group[=].element[+].code = #relatedDocument@typeCode
33+
* group[=].element[=].target.code = #Composition.relatesTo.code
34+
* group[=].element[=].target.equivalence = #equivalent
35+
* group[=].element[+].code = #relatedDocument.parentDocument.id
36+
* group[=].element[=].target.code = #Composition.relatesTo.targetIdentifier
37+
* group[=].element[=].target.equivalence = #equivalent
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
Instance: mappingEvenementCDAFHIR
2+
InstanceOf: ConceptMap
3+
Usage: #definition
4+
Title: "Mapping Métier/CDA/FHIR : \"Evènement documenté\""
5+
Description: """Ce ConceptMap présente deux groupes de mapping :
6+
- Mapping 1 :entre le modèle métier \"evenement\" et l'élément CDA \"documentationOf\"
7+
- Mapping 2 : entre l'élément CDA \"documentationOf\" et l'élément FHIR \"Composition.event\" """
8+
9+
* name = "Mapping Métier/CDA/FHIR : \"Evènement documenté\""
10+
* status = #draft
11+
* experimental = false
12+
13+
// Groupe Mapping 1 : modèle métier to CDA
14+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/Evenement"
15+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-documentation-of"
16+
* group[=].element[+].code = #Evenement
17+
* group[=].element[=].target.code = #documentationOf
18+
* group[=].element[=].target.equivalence = #equivalent
19+
* group[=].element[+].code = #Evenement.identifiantEvenement
20+
* group[=].element[=].target.code = #documentationOf.serviceEvent.id
21+
* group[=].element[=].target.equivalence = #equivalent
22+
* group[=].element[+].code = #Evenement.codeEvenement
23+
* group[=].element[=].target.code = #documentationOf.serviceEvent.code
24+
* group[=].element[=].target.equivalence = #equivalent
25+
* group[=].element[+].code = #Evenement.dateHeureEvenement
26+
* group[=].element[=].target.code = #documentationOf.serviceEvent.effectiveTime
27+
* group[=].element[=].target.equivalence = #equivalent
28+
* group[=].element[+].code = #Evenement.executantEvenement
29+
* group[=].element[=].target.code = #documentationOf.serviceEvent.performer@typeCode="PRF"
30+
* group[=].element[=].target.equivalence = #equivalent
31+
* group[=].element[+].code = #Evenement.executantEvenement.roleFonctionnel
32+
* group[=].element[=].target.code = #documentationOf.serviceEvent.performer.functionCode
33+
* group[=].element[=].target.equivalence = #equivalent
34+
* group[=].element[+].code = #Evenement.executantEvenement.dateHeureParticipation
35+
* group[=].element[=].target.code = #documentationOf.serviceEvent.performer.time
36+
* group[=].element[=].target.equivalence = #equivalent
37+
* group[=].element[+].code = #Evenement.executantEvenement.executant
38+
* group[=].element[=].target.code = #documentationOf.serviceEvent.performer.assignedEntity
39+
* group[=].element[=].target.equivalence = #equivalent
40+
41+
// Groupe Mapping 2 : CDA to FHIR
42+
* group[+].source = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-core-documentation-of"
43+
* group[=].target = "https://interop.esante.gouv.fr/ig/document/core/StructureDefinition/fr-composition-document"
44+
* group[=].element[+].code = #documentationOf
45+
* group[=].element[=].target.code = #Composition.event
46+
* group[=].element[=].target.equivalence = #equivalent
47+
* group[=].element[+].code = #documentationOf.serviceEvent.id
48+
* group[=].element[=].target.equivalence = #unmatched
49+
* group[=].element[=].target.comment = "Cette donnée est fournie dans un autre élément : Composition.relatesTo"
50+
* group[=].element[+].code = #documentationOf.serviceEvent.code
51+
* group[=].element[=].target.code = #Composition.event.code
52+
* group[=].element[=].target.equivalence = #equivalent
53+
* group[=].element[+].code = #documentationOf.serviceEvent.effectiveTime
54+
* group[=].element[=].target.code = #Composition.event.period
55+
* group[=].element[=].target.equivalence = #equivalent
56+
* group[=].element[+].code = #documentationOf.serviceEvent.performer@typeCode="PRF"
57+
* group[=].element[=].target.code = #Composition.event.extension:perfomer.PractitionerRole
58+
* group[=].element[=].target.equivalence = #equivalent
59+
* group[=].element[=].target.comment = "Composition.event.extension:perfomer.ValueReference.resolve().ofType(FrPractitionerRoleDocument)"
60+
* group[=].element[+].code = #documentationOf.serviceEvent.performer.functionCode
61+
* group[=].element[=].target.code = #Composition.event.extension:perfomer.PractitionerRole.code
62+
* group[=].element[=].target.equivalence = #equivalent
63+
* group[=].element[+].code = #documentationOf.serviceEvent.performer.time
64+
* group[=].element[=].target.equivalence = #unmatched
65+
* group[=].element[=].target.comment = "Mapped in Composition.event.period "
66+
* group[=].element[+].code = #documentationOf.serviceEvent.performer.assignedEntity
67+
* group[=].element[=].target.code = #Composition.event.extension:perfomer.PractitionerRole.Practitioner
68+
* group[=].element[=].target.equivalence = #equivalent
69+
* group[=].element[=].target.comment = "Composition.event.extension:perfomer.ValueReference.resolve().ofType(FrPractitionerRoleDocument).Practitioner.resolve()"

0 commit comments

Comments
 (0)