From fe2b1d52018ca4a0f0d69b3aab83f174959c445e Mon Sep 17 00:00:00 2001 From: MariekeMassa Date: Fri, 31 Jul 2026 16:13:39 +0200 Subject: [PATCH 1/5] #144 Add must support to obligations Added it to the ruleset for ObligationRules, this is the easiest way. If we do think we need differences between must support elements and obligation elements, we should add must support per element. --- input/fsh/RuleSet.fsh | 1 + 1 file changed, 1 insertion(+) diff --git a/input/fsh/RuleSet.fsh b/input/fsh/RuleSet.fsh index ecdbb5b..24f1231 100644 --- a/input/fsh/RuleSet.fsh +++ b/input/fsh/RuleSet.fsh @@ -48,6 +48,7 @@ RuleSet: CapabilityStatementSearchParmeterClinicalPatientExpectation * type = #reference RuleSet: ObligationRules(path) +* {path} MS * {path} ^extension[$obligation][+].extension[code].valueCode = #SHALL:populate-if-known * {path} ^extension[$obligation][=].extension[actor].valueCanonical = Canonical(ACPActorProvider) * {path} ^extension[$obligation][+].extension[code].valueCode = #SHALL:no-error From 878b5df5483ad7d58e79e94d589c69224b07ad9a Mon Sep 17 00:00:00 2001 From: MariekeMassa Date: Fri, 31 Jul 2026 16:15:04 +0200 Subject: [PATCH 2/5] Remove obligation from recipient in communicationrequest We don't expect systems to fill this element as it's not part of the dataset. --- input/fsh/CommunicationRequest.fsh | 1 - 1 file changed, 1 deletion(-) diff --git a/input/fsh/CommunicationRequest.fsh b/input/fsh/CommunicationRequest.fsh index 4b7d5ae..a3fb2cf 100644 --- a/input/fsh/CommunicationRequest.fsh +++ b/input/fsh/CommunicationRequest.fsh @@ -25,7 +25,6 @@ Description: "A CommunicationRequest representing the advice or instruction give * insert ObligationRules(authoredOn) // not explicitly required/defined in dataset but important for context * insert ObligationRules(requester) * insert ObligationRules(sender) -* insert ObligationRules(recipient) * insert ObligationRules(reasonCode) // already 1..1 so may not be needed place under obligation but added for consistency From c35261fb05e2d6aa27b05967af35d51626c27955 Mon Sep 17 00:00:00 2001 From: MariekeMassa Date: Sun, 2 Aug 2026 14:30:42 +0200 Subject: [PATCH 3/5] Create example for preferred place of death - other --- input/fsh/Observation.fsh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/input/fsh/Observation.fsh b/input/fsh/Observation.fsh index 49abac6..6d3870f 100644 --- a/input/fsh/Observation.fsh +++ b/input/fsh/Observation.fsh @@ -130,7 +130,7 @@ Usage: #example Instance: ACP-PreferredPlaceOfDeath-Pat2 InstanceOf: ACPPreferredPlaceOfDeath -Title: "ACP Preferred Place Of Death - Pat 2" +Title: "ACP Preferred Place of Death - Pat 2" Usage: #example * identifier.type = $v2-0203#RI "Resource identifier" * identifier.system = "https://acme.com/fhir/NamingSystem/resource-business-identifier" @@ -141,8 +141,9 @@ Usage: #example * status = #final * code = $snomed#395091006 "gewenste plek van overlijden" * effectiveDateTime = "2025-08-07" -* valueCodeableConcept = $snomed#264362003 "thuis" -* note.text = "Het liefst rustig thuis" +* valueCodeableConcept = $v3-NullFlavor#OTH "Anders" +* valueCodeableConcept.text = "bijna-thuis-huis" +* note.text = "Het liefst in een bijna-thuis-huis in de buurt van haar kinderen" Profile: ACPPositionRegardingEuthanasia @@ -270,7 +271,7 @@ Usage: #example Instance: ACP-OrganDonationChoiceRegistrationInDonorRegister-Pat2 InstanceOf: ACPOrganDonationChoiceRegistration -Title: "ACP Organ Donation Choice Registration In Donor Register - Pat 2" +Title: "ACP Organ Donation Choice Registration in Donor Register - Pat 2" Usage: #example * identifier.type = $v2-0203#RI "Resource identifier" * identifier.system = "https://acme.com/fhir/NamingSystem/resource-business-identifier" From f0bab4b1aeecbd6aa0a5c57dd4ae8c4a8ccb4c8f Mon Sep 17 00:00:00 2001 From: MariekeMassa Date: Sun, 2 Aug 2026 15:13:02 +0200 Subject: [PATCH 4/5] Add mustSupport to obligation explanation on data model page --- input/pagecontent/data-model.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/input/pagecontent/data-model.md b/input/pagecontent/data-model.md index fa16889..728335b 100644 --- a/input/pagecontent/data-model.md +++ b/input/pagecontent/data-model.md @@ -23,14 +23,14 @@ The FHIR profiles in this guide are directly linked to the ACP dataset elements Each StructureDefinition includes a `StructureDefinition.mapping.uri` that points to the specific version of the ACP dataset used. Additionally, every element within a profile is individually mapped to its corresponding dataset element using the `ElementDefinition.mapping` property. The mapping table below shows all mappings in one view, while the "Mappings" tab of each profile page displays the mappings consolidated per profile. These mappings provide a straightforward way to highlight the elements that are especially relevant for the ACP use case. -#### Obligation flags -To indicate which elements are essential for the ACP use case, Obligation flags have been added to all elements mapped to the ACP dataset. These flags are visible in the formal profile views. +#### MustSupport and Obligations +To indicate which elements are essential for the ACP use case and for which implementations must thus provide support, `mustSupport` flags are placed on all elements mapped to the ACP dataset. For clarification of the expectations associated with these `mustSupport` labels, the `obligation` element is used. -In this version of the IG, Obligation flags are applied to all mapped elements, regardless of whether the dataset element is mandatory or optional. The obligations are defined for the following actors: +In this version of the IG, `mustSupport` and `obligation` flags are applied to all mapped elements, regardless of whether the dataset element is mandatory or optional. The `obligations` are defined for the following actors: * ACP Actor Provider: `SHALL:populate-if-known` * ACP Actor Consulter: `SHALL:no-error` -In future versions of the IG, these obligations may be refined on a per-element basis. +In future versions of the IG, these `obligations` may be refined on a per-element basis. #### Note on referenced zibs From f7cc4b2ba27b8f6b6be5ecbc062498cfbc71f7c3 Mon Sep 17 00:00:00 2001 From: MariekeMassa Date: Tue, 4 Aug 2026 10:15:49 +0200 Subject: [PATCH 5/5] Small update in data model description and restoring old example --- input/fsh/Observation.fsh | 5 ++--- input/pagecontent/data-model.md | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/input/fsh/Observation.fsh b/input/fsh/Observation.fsh index 6d3870f..7aa078f 100644 --- a/input/fsh/Observation.fsh +++ b/input/fsh/Observation.fsh @@ -141,9 +141,8 @@ Usage: #example * status = #final * code = $snomed#395091006 "gewenste plek van overlijden" * effectiveDateTime = "2025-08-07" -* valueCodeableConcept = $v3-NullFlavor#OTH "Anders" -* valueCodeableConcept.text = "bijna-thuis-huis" -* note.text = "Het liefst in een bijna-thuis-huis in de buurt van haar kinderen" +* valueCodeableConcept = $snomed#264362003 "thuis" +* note.text = "Het liefst rustig thuis" Profile: ACPPositionRegardingEuthanasia diff --git a/input/pagecontent/data-model.md b/input/pagecontent/data-model.md index 728335b..e84c036 100644 --- a/input/pagecontent/data-model.md +++ b/input/pagecontent/data-model.md @@ -23,7 +23,7 @@ The FHIR profiles in this guide are directly linked to the ACP dataset elements Each StructureDefinition includes a `StructureDefinition.mapping.uri` that points to the specific version of the ACP dataset used. Additionally, every element within a profile is individually mapped to its corresponding dataset element using the `ElementDefinition.mapping` property. The mapping table below shows all mappings in one view, while the "Mappings" tab of each profile page displays the mappings consolidated per profile. These mappings provide a straightforward way to highlight the elements that are especially relevant for the ACP use case. -#### MustSupport and Obligations +#### MustSupport and Obligation flags To indicate which elements are essential for the ACP use case and for which implementations must thus provide support, `mustSupport` flags are placed on all elements mapped to the ACP dataset. For clarification of the expectations associated with these `mustSupport` labels, the `obligation` element is used. In this version of the IG, `mustSupport` and `obligation` flags are applied to all mapped elements, regardless of whether the dataset element is mandatory or optional. The `obligations` are defined for the following actors: