From 7fea74224c2ec6a332b9c2915bc1532cf47bc293 Mon Sep 17 00:00:00 2001 From: oliverduenielsen Date: Mon, 26 Oct 2026 10:32:44 +0100 Subject: [PATCH 1/5] uniqueness check on parauth related person --- .../CapabilityStatement-patient.json | 18 ++++++++++ ...-cpridentifier-patient-parauth-unique.json | 36 +++++++++++++++++++ ...th-relatedperson-search-cpridentifier.json | 16 +++++++++ ...tedperson-search-relationship-parauth.json | 16 +++++++++ 4 files changed, 86 insertions(+) create mode 100644 input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier-patient-parauth-unique.json create mode 100644 input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier.json create mode 100644 input/resources/SearchParameter-ehealth-relatedperson-search-relationship-parauth.json diff --git a/input/resources/CapabilityStatement-patient.json b/input/resources/CapabilityStatement-patient.json index e00dd2f1..4f2fe653 100644 --- a/input/resources/CapabilityStatement-patient.json +++ b/input/resources/CapabilityStatement-patient.json @@ -2471,6 +2471,24 @@ "type": "token", "documentation": "The relationship between the patient and the relatedperson" }, + { + "name": "relatedPersonCPRIdentifier", + "definition": "http://ehealth.sundhed.dk/fhir/SearchParameter/RelatedPerson/cprIdentifier", + "type": "token", + "documentation": "Search parameter for RelatedPerson DK-Core CPR identifier" + }, + { + "name": "relatedPersonRelationshipParauth", + "definition": "http://ehealth.sundhed.dk/fhir/SearchParameter/RelatedPerson/relationshipParauth", + "type": "token", + "documentation": "Search parameter for the relationship code PARAUTH (parental authority) on a RelatedPerson" + }, + { + "name": "relatedPersonCPRIdentifierPatientParauthUnique", + "definition": "http://ehealth.sundhed.dk/fhir/SearchParameter/RelatedPerson/cprIdentifierPatientParauthUnique", + "type": "composite", + "documentation": "Uniqueness constraint: a patient can have at most one RelatedPerson with a given CPR identifier and the relationship code PARAUTH" + }, { "name": "email", "definition": "http://hl7.org/fhir/SearchParameter/individual-email", diff --git a/input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier-patient-parauth-unique.json b/input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier-patient-parauth-unique.json new file mode 100644 index 00000000..7aca1824 --- /dev/null +++ b/input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier-patient-parauth-unique.json @@ -0,0 +1,36 @@ +{ + "resourceType": "SearchParameter", + "id": "ehealth-relatedperson-search-cpridentifier-patient-parauth-unique", + "extension" : [ + { + "url" : "http://hapifhir.io/fhir/StructureDefinition/sp-unique", + "valueBoolean" : true + } + ], + "url": "http://ehealth.sundhed.dk/fhir/SearchParameter/RelatedPerson/cprIdentifierPatientParauthUnique", + "name": "relatedPersonCPRIdentifierPatientParauthUnique", + "status": "active", + "date": "2026-10-26T00:00:00+00:00", + "code": "relatedPersonCPRIdentifierPatientParauthUnique", + "base": [ + "RelatedPerson" + ], + "type": "composite", + "description": "Uniqueness constraint: a patient can have at most one RelatedPerson with a given CPR identifier and the relationship code PARAUTH.", + "expression": "RelatedPerson", + "xpathUsage": "normal", + "component" : [ + { + "definition" : "http://ehealth.sundhed.dk/fhir/SearchParameter/RelatedPerson/cprIdentifier", + "expression" : "RelatedPerson" + }, + { + "definition" : "http://hl7.org/fhir/SearchParameter/RelatedPerson-patient", + "expression" : "RelatedPerson" + }, + { + "definition" : "http://ehealth.sundhed.dk/fhir/SearchParameter/RelatedPerson/relationshipParauth", + "expression" : "RelatedPerson" + } + ] +} diff --git a/input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier.json b/input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier.json new file mode 100644 index 00000000..9d5e2be0 --- /dev/null +++ b/input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier.json @@ -0,0 +1,16 @@ +{ + "resourceType": "SearchParameter", + "id": "ehealth-relatedperson-search-cpridentifier", + "url": "http://ehealth.sundhed.dk/fhir/SearchParameter/RelatedPerson/cprIdentifier", + "name": "relatedPersonCPRIdentifier", + "status": "active", + "date": "2026-10-26T00:00:00+00:00", + "code": "relatedPersonCPRIdentifier", + "base": [ + "RelatedPerson" + ], + "type": "token", + "description": "Search parameter for RelatedPerson DK-Core CPR identifier", + "expression": "RelatedPerson.identifier.where(system = 'urn:oid:1.2.208.176.1.2').value", + "xpathUsage": "normal" +} diff --git a/input/resources/SearchParameter-ehealth-relatedperson-search-relationship-parauth.json b/input/resources/SearchParameter-ehealth-relatedperson-search-relationship-parauth.json new file mode 100644 index 00000000..4de48dba --- /dev/null +++ b/input/resources/SearchParameter-ehealth-relatedperson-search-relationship-parauth.json @@ -0,0 +1,16 @@ +{ + "resourceType": "SearchParameter", + "id": "ehealth-relatedperson-search-relationship-parauth", + "url": "http://ehealth.sundhed.dk/fhir/SearchParameter/RelatedPerson/relationshipParauth", + "name": "relatedPersonRelationshipParauth", + "status": "active", + "date": "2026-10-26T00:00:00+00:00", + "code": "relatedPersonRelationshipParauth", + "base": [ + "RelatedPerson" + ], + "type": "token", + "description": "Search parameter for the relationship code PARAUTH (parental authority) on a RelatedPerson. Component of the uniqueness constraint relatedPersonCPRIdentifierPatientParauthUnique.", + "expression": "RelatedPerson.relationship.coding.where(system = 'http://hl7.dk/fhir/core/CodeSystem/dk-relatedperson-relationshipcodes' and code = 'PARAUTH').code", + "xpathUsage": "normal" +} From 93a0ea0b7de80b9e3194afc20afdb0806a43288b Mon Sep 17 00:00:00 2001 From: oliverduenielsen Date: Mon, 26 Oct 2026 10:41:25 +0100 Subject: [PATCH 2/5] changelog --- input/pagecontent/changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/input/pagecontent/changelog.md b/input/pagecontent/changelog.md index 5088cbd6..40453847 100644 --- a/input/pagecontent/changelog.md +++ b/input/pagecontent/changelog.md @@ -53,6 +53,7 @@ This is the log of changes made to the eHealth Implementation Guide. - Added search parameter `title` on `ehealth-questionnairelinkage` to query by title (string, startsWith matching). As the parameter is defined on Basic, it also applies to `ehealth-view` and `ehealth-actionguidance`. - Added search parameters `occurrenceDateTime` (`occurrenceDateTime`), `occurrencePeriod` (`occurrencePeriod`) and `occurrencePeriodEnd` (`occurrencePeriod.end`) on `ehealth-servicerequest`, and support for the standard search parameters `instantiates-canonical` and `_tag` and the chained search `episodeOfCare.team` on ServiceRequest (CCR0345). ServiceRequest search now also supports `_count` to limit the number of ServiceRequests per page; the remaining ServiceRequests are retrieved by following the Bundle's `next` link. `_summary=count` returns only the total number of matching ServiceRequests. See the [CarePlan service CapabilityStatement](CapabilityStatement-careplan.html) and the [ehealth-servicerequest](StructureDefinition-ehealth-servicerequest.html) introduction. - Added a `date` search parameter on RelatedPerson that searches `RelatedPerson.period`. +- Added search parameters `relatedPersonCPRIdentifier` (CPR identifier) and `relatedPersonRelationshipParauth` (relationship code `PARAUTH`) on RelatedPerson, and the uniqueness constraint `relatedPersonCPRIdentifierPatientParauthUnique`: a patient can have at most one RelatedPerson with a given CPR identifier and the relationship code `PARAUTH`. ### Profiles - Documented the update rules for ehealth-relatedperson, covering the managed variant and its locked master-data fields. From 2c3d58c4f0e94c8fbb5f8e699f8592a386f0ed75 Mon Sep 17 00:00:00 2001 From: oliverduenielsen Date: Mon, 26 Oct 2026 14:32:50 +0100 Subject: [PATCH 3/5] new version --- sushi-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sushi-config.yaml b/sushi-config.yaml index 8edb2cda..58dce82a 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -7,7 +7,7 @@ canonical: http://ehealth.sundhed.dk/fhir name: eHealth Infrastructure title: eHealth Infrastructure status: active # draft | active | retired | unknown -version: 11.0.1 +version: 11.0.2 fhirVersion: 4.0.1 copyrightYear: 2021+ From e3e3b13abb46556ba8e5f9423ec2702df3d61f4c Mon Sep 17 00:00:00 2001 From: oliverduenielsen Date: Mon, 26 Oct 2026 15:24:02 +0100 Subject: [PATCH 4/5] shorter name for sp --- ...lth-relatedperson-cpridentifier-patient-parauth-unique.json} | 2 +- sushi-config.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename input/resources/{SearchParameter-ehealth-relatedperson-search-cpridentifier-patient-parauth-unique.json => SearchParameter-ehealth-relatedperson-cpridentifier-patient-parauth-unique.json} (94%) diff --git a/input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier-patient-parauth-unique.json b/input/resources/SearchParameter-ehealth-relatedperson-cpridentifier-patient-parauth-unique.json similarity index 94% rename from input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier-patient-parauth-unique.json rename to input/resources/SearchParameter-ehealth-relatedperson-cpridentifier-patient-parauth-unique.json index 7aca1824..7823d9c5 100644 --- a/input/resources/SearchParameter-ehealth-relatedperson-search-cpridentifier-patient-parauth-unique.json +++ b/input/resources/SearchParameter-ehealth-relatedperson-cpridentifier-patient-parauth-unique.json @@ -1,6 +1,6 @@ { "resourceType": "SearchParameter", - "id": "ehealth-relatedperson-search-cpridentifier-patient-parauth-unique", + "id": "ehealth-relatedperson-cpridentifier-patient-parauth-unique", "extension" : [ { "url" : "http://hapifhir.io/fhir/StructureDefinition/sp-unique", diff --git a/sushi-config.yaml b/sushi-config.yaml index 58dce82a..c419bf60 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -7,7 +7,7 @@ canonical: http://ehealth.sundhed.dk/fhir name: eHealth Infrastructure title: eHealth Infrastructure status: active # draft | active | retired | unknown -version: 11.0.2 +version: 11.0.3-SNAPSHOT fhirVersion: 4.0.1 copyrightYear: 2021+ From 7ce4dd029ee57968d7bd83ebf56f2906b01b8acb Mon Sep 17 00:00:00 2001 From: oliverduenielsen Date: Mon, 26 Oct 2026 16:49:55 +0100 Subject: [PATCH 5/5] correct version and changelog --- input/pagecontent/changelog.md | 5 ++++- sushi-config.yaml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/input/pagecontent/changelog.md b/input/pagecontent/changelog.md index 40453847..9447b8cc 100644 --- a/input/pagecontent/changelog.md +++ b/input/pagecontent/changelog.md @@ -1,5 +1,9 @@ This is the log of changes made to the eHealth Implementation Guide. +## 11.0.2 (2026-11-04) +### Search parameters +- Added search parameters `relatedPersonCPRIdentifier` (CPR identifier) and `relatedPersonRelationshipParauth` (relationship code `PARAUTH`) on RelatedPerson, and the uniqueness constraint `relatedPersonCPRIdentifierPatientParauthUnique`: a patient can have at most one RelatedPerson with a given CPR identifier and the relationship code `PARAUTH`. **Note for vendors:** creating a second such RelatedPerson is rejected with HTTP 409 (Conflict). + ## 11.0.1 (2026-11-04) ### General changes - Fixed drop down menus in page render @@ -53,7 +57,6 @@ This is the log of changes made to the eHealth Implementation Guide. - Added search parameter `title` on `ehealth-questionnairelinkage` to query by title (string, startsWith matching). As the parameter is defined on Basic, it also applies to `ehealth-view` and `ehealth-actionguidance`. - Added search parameters `occurrenceDateTime` (`occurrenceDateTime`), `occurrencePeriod` (`occurrencePeriod`) and `occurrencePeriodEnd` (`occurrencePeriod.end`) on `ehealth-servicerequest`, and support for the standard search parameters `instantiates-canonical` and `_tag` and the chained search `episodeOfCare.team` on ServiceRequest (CCR0345). ServiceRequest search now also supports `_count` to limit the number of ServiceRequests per page; the remaining ServiceRequests are retrieved by following the Bundle's `next` link. `_summary=count` returns only the total number of matching ServiceRequests. See the [CarePlan service CapabilityStatement](CapabilityStatement-careplan.html) and the [ehealth-servicerequest](StructureDefinition-ehealth-servicerequest.html) introduction. - Added a `date` search parameter on RelatedPerson that searches `RelatedPerson.period`. -- Added search parameters `relatedPersonCPRIdentifier` (CPR identifier) and `relatedPersonRelationshipParauth` (relationship code `PARAUTH`) on RelatedPerson, and the uniqueness constraint `relatedPersonCPRIdentifierPatientParauthUnique`: a patient can have at most one RelatedPerson with a given CPR identifier and the relationship code `PARAUTH`. ### Profiles - Documented the update rules for ehealth-relatedperson, covering the managed variant and its locked master-data fields. diff --git a/sushi-config.yaml b/sushi-config.yaml index c419bf60..58dce82a 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -7,7 +7,7 @@ canonical: http://ehealth.sundhed.dk/fhir name: eHealth Infrastructure title: eHealth Infrastructure status: active # draft | active | retired | unknown -version: 11.0.3-SNAPSHOT +version: 11.0.2 fhirVersion: 4.0.1 copyrightYear: 2021+