Skip to content

Commit bbc7d01

Browse files
- feat: added holderId Extension to HealthcareServiceDirectory.fsh and PractitionerRoleDirectory.fsh
1 parent 15ebf82 commit bbc7d01

13 files changed

+139
-19
lines changed

changelog.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# Changelog
22

3-
## 2025-03-03 Version 0.13.0
3+
## tbd Version 0.13.0
44
- `change`: removed KBV_CS_SFHIR_BAR2_WBO_OID_URL (urn:oid:1.2.276.0.76.5.114) as these were replaced by IHE codes several years ago.
55
- `change`: removed KBV_CS_SFHIR_BAR2_WBO_OID_URL (urn:oid:1.2.276.0.76.5.114) from PractitionerQualificationVS
6-
- `fix`: set VS binding on correct element for Endpoint.connectionType. Was on code, but should be on connectionType(Coding)
6+
- `fix`: set VS binding on correct element for Endpoint.connectionType. Was on code, but should be on connectionType(Coding)
7+
- `feat`: added holderId Extension to PractitionerRoleDirectory and HealthcareServiceDirectory to represent the holderId.
78

89
## 2025-02-27 Version 0.12.0
910
- `feat`: using SemVer for release versions

src/fhir/fsh-generated/fsh-index.json

+15-7
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@
245245
"fshType": "Instance",
246246
"fshFile": "examples/Examples001.fsh",
247247
"startLine": 67,
248-
"endLine": 109
248+
"endLine": 110
249249
},
250250
{
251251
"outputFile": "HealthcareService-NCPeHHealthcareServiceExample.json",
@@ -477,15 +477,15 @@
477477
"fshType": "Profile",
478478
"fshFile": "profiles/HealthcareServiceDirectory.fsh",
479479
"startLine": 1,
480-
"endLine": 73
480+
"endLine": 74
481481
},
482482
{
483483
"outputFile": "StructureDefinition-HealthcareServiceDirectoryStrict.json",
484484
"fshName": "HealthcareServiceDirectoryStrict",
485485
"fshType": "Profile",
486486
"fshFile": "profiles/HealthcareServiceDirectory.fsh",
487-
"startLine": 75,
488-
"endLine": 111
487+
"startLine": 76,
488+
"endLine": 112
489489
},
490490
{
491491
"outputFile": "StructureDefinition-LocationDirectory.json",
@@ -557,15 +557,15 @@
557557
"fshType": "Profile",
558558
"fshFile": "profiles/PractitionerRoleDirectory.fsh",
559559
"startLine": 1,
560-
"endLine": 18
560+
"endLine": 19
561561
},
562562
{
563563
"outputFile": "StructureDefinition-PractitionerRoleDirectoryStrict.json",
564564
"fshName": "PractitionerRoleDirectoryStrict",
565565
"fshType": "Profile",
566566
"fshFile": "profiles/PractitionerRoleDirectory.fsh",
567-
"startLine": 20,
568-
"endLine": 37
567+
"startLine": 21,
568+
"endLine": 38
569569
},
570570
{
571571
"outputFile": "StructureDefinition-ServiceCoverageArea.json",
@@ -599,6 +599,14 @@
599599
"startLine": 29,
600600
"endLine": 46
601601
},
602+
{
603+
"outputFile": "StructureDefinition-holder-id-ex.json",
604+
"fshName": "HolderIdEx",
605+
"fshType": "Extension",
606+
"fshFile": "profiles/Extension.fsh",
607+
"startLine": 104,
608+
"endLine": 111
609+
},
602610
{
603611
"outputFile": "StructureDefinition-ncpeh-country-ex.json",
604612
"fshName": "NCPeHCountryEx",

src/fhir/fsh-generated/fsh-index.txt

+6-5
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Endpoint-OrganizationExample001-Endpoint-TIM.json OrganizationE
2929
Endpoint-PharmacyEndpointErpReservationExample.json PharmacyEndpointErpReservationExample Instance examples/PharmacyExample.fsh 123 - 132
3030
Endpoint-PharmacyEndpointOnlineAppointmentBookingExample.json PharmacyEndpointOnlineAppointmentBookingExample Instance examples/PharmacyExample.fsh 134 - 143
3131
Endpoint-PharmacyEndpointTIMExample.json PharmacyEndpointTIMExample Instance examples/PharmacyExample.fsh 112 - 121
32-
HealthcareService-HealthcareServiceExample.json HealthcareServiceExample Instance examples/Examples001.fsh 67 - 109
32+
HealthcareService-HealthcareServiceExample.json HealthcareServiceExample Instance examples/Examples001.fsh 67 - 110
3333
HealthcareService-NCPeHHealthcareServiceExample.json NCPeHHealthcareServiceExample Instance examples/NCPeHExamples.fsh 12 - 22
3434
HealthcareService-PharmacyHealthCareServiceExample.json PharmacyHealthCareServiceExample Instance examples/PharmacyExample.fsh 23 - 92
3535
Location-LocationExample.json LocationExample Instance examples/Examples001.fsh 52 - 65
@@ -58,8 +58,8 @@ SearchParameter-PractitionerRole-practitioner.json PractitionerR
5858
StructureDefinition-CodingWithCodeAndSystem.json CodingWithCodeAndSystem Profile profiles/DataType.fsh 1 - 8
5959
StructureDefinition-EndpointDirectory.json EndpointDirectory Profile profiles/EndpointDirectory.fsh 1 - 27
6060
StructureDefinition-EndpointVisibility.json EndpointVisibility Extension profiles/Extension.fsh 35 - 45
61-
StructureDefinition-HealthcareServiceDirectory.json HealthcareServiceDirectory Profile profiles/HealthcareServiceDirectory.fsh 1 - 73
62-
StructureDefinition-HealthcareServiceDirectoryStrict.json HealthcareServiceDirectoryStrict Profile profiles/HealthcareServiceDirectory.fsh 75 - 111
61+
StructureDefinition-HealthcareServiceDirectory.json HealthcareServiceDirectory Profile profiles/HealthcareServiceDirectory.fsh 1 - 74
62+
StructureDefinition-HealthcareServiceDirectoryStrict.json HealthcareServiceDirectoryStrict Profile profiles/HealthcareServiceDirectory.fsh 76 - 112
6363
StructureDefinition-LocationDirectory.json LocationDirectory Profile profiles/LocationDirectory.fsh 1 - 34
6464
StructureDefinition-LocationDirectoryStrict.json LocationDirectoryStrict Profile profiles/LocationDirectory.fsh 36 - 54
6565
StructureDefinition-OrganizationDirectory.json OrganizationDirectory Profile profiles/OrganizationDirectory.fsh 1 - 53
@@ -68,12 +68,13 @@ StructureDefinition-OrganizationVisibility.json OrganizationV
6868
StructureDefinition-PhysicalFeaturesAdditionalNoteEX.json PhysicalFeaturesAdditionalNoteEX Extension profiles/Extension.fsh 65 - 72
6969
StructureDefinition-PractitionerDirectory.json PractitionerDirectory Profile profiles/PractitionerDirectory.fsh 1 - 40
7070
StructureDefinition-PractitionerDirectoryStrict.json PractitionerDirectoryStrict Profile profiles/PractitionerDirectory.fsh 42 - 59
71-
StructureDefinition-PractitionerRoleDirectory.json PractitionerRoleDirectory Profile profiles/PractitionerRoleDirectory.fsh 1 - 18
72-
StructureDefinition-PractitionerRoleDirectoryStrict.json PractitionerRoleDirectoryStrict Profile profiles/PractitionerRoleDirectory.fsh 20 - 37
71+
StructureDefinition-PractitionerRoleDirectory.json PractitionerRoleDirectory Profile profiles/PractitionerRoleDirectory.fsh 1 - 19
72+
StructureDefinition-PractitionerRoleDirectoryStrict.json PractitionerRoleDirectoryStrict Profile profiles/PractitionerRoleDirectory.fsh 21 - 38
7373
StructureDefinition-ServiceCoverageArea.json ServiceCoverageArea Extension profiles/Extension.fsh 1 - 12
7474
StructureDefinition-ServiceCoveragePostalCode.json ServiceCoveragePostalCode Extension profiles/Extension.fsh 14 - 21
7575
StructureDefinition-SpecialOpeningTimesEX.json SpecialOpeningTimesEX Extension profiles/Extension.fsh 47 - 63
7676
StructureDefinition-endpoint-directory-Strict.json EndpointDirectoryStrict Profile profiles/EndpointDirectory.fsh 29 - 46
77+
StructureDefinition-holder-id-ex.json HolderIdEx Extension profiles/Extension.fsh 104 - 111
7778
StructureDefinition-ncpeh-country-ex.json NCPeHCountryEx Extension profiles/Extension.fsh 74 - 86
7879
StructureDefinition-results-filtered-ex.json ResultsFilteredEx Extension profiles/Extension.fsh 88 - 102
7980
ValueSet-AddressStateVS.json AddressStateVS ValueSet valuesets/AddressStateVS.fsh 1 - 4

src/fhir/fsh-generated/resources/HealthcareService-HealthcareServiceExample.json

+6
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
"https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectoryStrict"
1313
]
1414
},
15+
"extension": [
16+
{
17+
"url": "https://gematik.de/fhir/directory/StructureDefinition/holder-id-ex",
18+
"valueCode": "dtrust"
19+
}
20+
],
1521
"identifier": [
1622
{
1723
"system": "https://gematik.de/fhir/sid/telematik-id",

src/fhir/fsh-generated/resources/Location-LocationExample.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
}
1010
],
1111
"profile": [
12-
"https://gematik.de/fhir/directory/StructureDefinition/LocationDirectory"
12+
"https://gematik.de/fhir/directory/StructureDefinition/LocationDirectoryStrict"
1313
]
1414
},
1515
"name": "Praxis am Rathaus",

src/fhir/fsh-generated/resources/PractitionerRole-PractitionerRoleExample.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
}
1010
],
1111
"profile": [
12-
"https://gematik.de/fhir/directory/StructureDefinition/PractitionerRoleDirectory"
12+
"https://gematik.de/fhir/directory/StructureDefinition/PractitionerRoleDirectoryStrict"
1313
]
1414
},
1515
"practitioner": {

src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectory.json

+16
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,22 @@
6565
"min": 1,
6666
"patternUri": "https://gematik.de/fhir/directory/CodeSystem/Origin"
6767
},
68+
{
69+
"id": "HealthcareService.extension:holderId",
70+
"path": "HealthcareService.extension",
71+
"sliceName": "holderId",
72+
"min": 0,
73+
"max": "*",
74+
"type": [
75+
{
76+
"code": "Extension",
77+
"profile": [
78+
"https://gematik.de/fhir/directory/StructureDefinition/holder-id-ex"
79+
]
80+
}
81+
],
82+
"mustSupport": true
83+
},
6884
{
6985
"id": "HealthcareService.identifier",
7086
"path": "HealthcareService.identifier",

src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectory.json

+16
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,22 @@
6464
"min": 1,
6565
"patternUri": "https://gematik.de/fhir/directory/CodeSystem/Origin"
6666
},
67+
{
68+
"id": "PractitionerRole.extension:holderId",
69+
"path": "PractitionerRole.extension",
70+
"sliceName": "holderId",
71+
"min": 0,
72+
"max": "*",
73+
"type": [
74+
{
75+
"code": "Extension",
76+
"profile": [
77+
"https://gematik.de/fhir/directory/StructureDefinition/holder-id-ex"
78+
]
79+
}
80+
],
81+
"mustSupport": true
82+
},
6783
{
6884
"id": "PractitionerRole.practitioner",
6985
"path": "PractitionerRole.practitioner",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"resourceType": "StructureDefinition",
3+
"id": "holder-id-ex",
4+
"url": "https://gematik.de/fhir/directory/StructureDefinition/holder-id-ex",
5+
"version": "0.13.0",
6+
"name": "HolderIdEx",
7+
"title": "Holder ID Extension",
8+
"status": "active",
9+
"experimental": false,
10+
"date": "2024-10-29",
11+
"publisher": "gematik GmbH",
12+
"description": "Extension for the holder ID of a HealthCard",
13+
"fhirVersion": "4.0.1",
14+
"kind": "complex-type",
15+
"abstract": false,
16+
"context": [
17+
{
18+
"expression": "HealthcareService",
19+
"type": "element"
20+
},
21+
{
22+
"expression": "PractitionerRole",
23+
"type": "element"
24+
}
25+
],
26+
"type": "Extension",
27+
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
28+
"derivation": "constraint",
29+
"differential": {
30+
"element": [
31+
{
32+
"id": "Extension",
33+
"path": "Extension",
34+
"short": "Holder ID Extension",
35+
"definition": "Extension for the holder ID of a HealthCard"
36+
},
37+
{
38+
"id": "Extension.extension",
39+
"path": "Extension.extension",
40+
"max": "0"
41+
},
42+
{
43+
"id": "Extension.url",
44+
"path": "Extension.url",
45+
"fixedUri": "https://gematik.de/fhir/directory/StructureDefinition/holder-id-ex"
46+
},
47+
{
48+
"id": "Extension.value[x]",
49+
"path": "Extension.value[x]",
50+
"min": 1,
51+
"type": [
52+
{
53+
"code": "code"
54+
}
55+
],
56+
"mustSupport": true
57+
}
58+
]
59+
}
60+
}

src/fhir/input/fsh/examples/Examples001.fsh

+3-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Description: "Example of a Practitioner (Dentist) as to be found in gematik FHIR
2626
* text = "Dr. Max Manfred Mustermann"
2727

2828
Instance: PractitionerRoleExample
29-
InstanceOf: PractitionerRoleDirectory
29+
InstanceOf: PractitionerRoleDirectoryStrict
3030
Usage: #example
3131
Description: "Example of an PractitionerRole as to be found in gematik FHIR Directory"
3232
* meta.tag[Origin] = Origin#ldap
@@ -50,7 +50,7 @@ Description: "Example of an Organization as to be found in gematik FHIR Director
5050
* contact.telecom[=].value = "030 1234567"
5151

5252
Instance: LocationExample
53-
InstanceOf: LocationDirectory
53+
InstanceOf: LocationDirectoryStrict
5454
Usage: #example
5555
Description: "Example of a Location as to be found in gematik FHIR Directory"
5656
* meta.tag[Origin] = Origin#ldap
@@ -69,6 +69,7 @@ InstanceOf: HealthcareServiceDirectoryStrict
6969
Usage: #example
7070
Description: "Example of an HealthcareService as to be found in gematik FHIR Directory"
7171
* meta.tag[Origin] = Origin#ldap
72+
* extension[holderId].valueCode = #dtrust
7273
* providedBy = Reference(OrganizationExample)
7374
* identifier[TelematikID].value = "2-2.58.00000040"
7475
* category = PatientBezogenenGesundheitsversorgung#PRA "Arztpraxis"

src/fhir/input/fsh/profiles/Extension.fsh

+10-1
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,13 @@ Context: Bundle.total
9999
* valueInteger 1.. MS
100100
* extension[reason]
101101
* value[x] only string
102-
* valueString 1.. MS
102+
* valueString 1.. MS
103+
104+
Extension: HolderIdEx
105+
Id: holder-id-ex
106+
Title: "Holder ID Extension"
107+
Description: "Extension for the holder ID of a HealthCard"
108+
Context: HealthcareService, PractitionerRole
109+
* insert Meta
110+
* value[x] only code
111+
* valueCode 1.. MS

src/fhir/input/fsh/profiles/HealthcareServiceDirectory.fsh

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Description: """Defines the data structure for medical, regulatory and technical
55
organisations specific for german Healthcare and Telematics Infrastructure.
66
"""
77
* insert Meta
8+
* extension contains HolderIdEx named holderId 0..* MS
89
* meta.tag 1.. MS
910
* ^slicing.discriminator.type = #pattern
1011
* ^slicing.discriminator.path = "system"

src/fhir/input/fsh/profiles/PractitionerRoleDirectory.fsh

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ Profile: PractitionerRoleDirectory
22
Parent: PractitionerRole
33
Title: "PractitionerRole in gematik Directory"
44
* insert Meta
5+
* extension contains HolderIdEx named holderId 0..* MS
56
* meta.tag 1.. MS
67
* ^slicing.discriminator.type = #pattern
78
* ^slicing.discriminator.path = "system"

0 commit comments

Comments
 (0)