From c2e820031485793f249e3f564d7f9456339e768a Mon Sep 17 00:00:00 2001 From: Volker Wegert Date: Thu, 5 Jun 2025 14:10:16 +0200 Subject: [PATCH] alternate suggestion to implement organization --- .../fsh-generated/{ => data}/fsh-index.json | 24 +- src/fhir/fsh-generated/fsh-index.txt | 10 +- ...-9b6ac30d-246d-4eab-af83-544564792089.json | 81 +- ...-2d4da53a-413a-48fe-b908-2e67b5761523.json | 16 +- ...age-VALID-413a-48fe-b908-2e67b5761523.json | 16 +- ...-2a6924bf-6e6a-4ef3-b79f-c2138c10712f.json | 45 + .../StructureDefinition-vsdm-bundle.json | 2539 ++++++++++++++-- .../StructureDefinition-vsdm-composition.json | 1150 ++++--- .../StructureDefinition-vsdm-coverage.json | 699 ++--- ...tructureDefinition-vsdm-kostentraeger.json | 2680 +++++++++++++++++ src/fhir/input/fsh/aliases.fsh | 1 + .../input/fsh/examples/ExampleVSDMBundle.fsh | 2 + .../fsh/examples/ExampleVSDMComposition.fsh | 5 +- .../fsh/examples/ExampleVSDMCoverage.fsh | 3 +- .../fsh/examples/ExampleVSDMKostentraeger.fsh | 24 + src/fhir/input/fsh/profiles/VSDMBundle.fsh | 3 + .../input/fsh/profiles/VSDMComposition.fsh | 3 +- src/fhir/input/fsh/profiles/VSDMCoverage.fsh | 6 +- .../input/fsh/profiles/VSDMKostentraeger.fsh | 26 + 19 files changed, 6355 insertions(+), 978 deletions(-) rename src/fhir/fsh-generated/{ => data}/fsh-index.json (91%) create mode 100644 src/fhir/fsh-generated/resources/Organization-2a6924bf-6e6a-4ef3-b79f-c2138c10712f.json create mode 100644 src/fhir/fsh-generated/resources/StructureDefinition-vsdm-kostentraeger.json create mode 100644 src/fhir/input/fsh/examples/ExampleVSDMKostentraeger.fsh create mode 100644 src/fhir/input/fsh/profiles/VSDMKostentraeger.fsh diff --git a/src/fhir/fsh-generated/fsh-index.json b/src/fhir/fsh-generated/data/fsh-index.json similarity index 91% rename from src/fhir/fsh-generated/fsh-index.json rename to src/fhir/fsh-generated/data/fsh-index.json index 4a16384..f408e92 100644 --- a/src/fhir/fsh-generated/fsh-index.json +++ b/src/fhir/fsh-generated/data/fsh-index.json @@ -5,7 +5,7 @@ "fshType": "Instance", "fshFile": "examples/ExampleVSDMBundle.fsh", "startLine": 1, - "endLine": 21 + "endLine": 23 }, { "outputFile": "CodeSystem-vsdm-errorcode-cs.json", @@ -63,6 +63,14 @@ "startLine": 1, "endLine": 15 }, + { + "outputFile": "Organization-2a6924bf-6e6a-4ef3-b79f-c2138c10712f.json", + "fshName": "VSDMKostentraegerSample", + "fshType": "Instance", + "fshFile": "examples/ExampleVSDMKostentraeger.fsh", + "startLine": 1, + "endLine": 24 + }, { "outputFile": "Patient-437f2555-2396-4c64-a656-e9553161ca3c.json", "fshName": "VSDMPatientSample", @@ -93,7 +101,7 @@ "fshType": "Profile", "fshFile": "profiles/VSDMBundle.fsh", "startLine": 1, - "endLine": 39 + "endLine": 42 }, { "outputFile": "StructureDefinition-vsdm-composition.json", @@ -101,7 +109,7 @@ "fshType": "Profile", "fshFile": "profiles/VSDMComposition.fsh", "startLine": 1, - "endLine": 20 + "endLine": 19 }, { "outputFile": "StructureDefinition-vsdm-contactpoint-timessenger.json", @@ -117,7 +125,7 @@ "fshType": "Profile", "fshFile": "profiles/VSDMCoverage.fsh", "startLine": 1, - "endLine": 50 + "endLine": 46 }, { "outputFile": "StructureDefinition-vsdm-dmp-kennzeichen-basis-ex.json", @@ -143,6 +151,14 @@ "startLine": 1, "endLine": 14 }, + { + "outputFile": "StructureDefinition-vsdm-kostentraeger.json", + "fshName": "VSDMKostentraeger", + "fshType": "Profile", + "fshFile": "profiles/VSDMKostentraeger.fsh", + "startLine": 1, + "endLine": 18 + }, { "outputFile": "StructureDefinition-vsdm-operationoutcome.json", "fshName": "VSDMOperationOutcome", diff --git a/src/fhir/fsh-generated/fsh-index.txt b/src/fhir/fsh-generated/fsh-index.txt index 506f304..f3df29b 100644 --- a/src/fhir/fsh-generated/fsh-index.txt +++ b/src/fhir/fsh-generated/fsh-index.txt @@ -1,5 +1,5 @@ Output File Name Type FSH File Lines -Bundle-9b6ac30d-246d-4eab-af83-544564792089.json Vsdm2BundleSample Instance examples/ExampleVSDMBundle.fsh 1 - 21 +Bundle-9b6ac30d-246d-4eab-af83-544564792089.json Vsdm2BundleSample Instance examples/ExampleVSDMBundle.fsh 1 - 23 CodeSystem-vsdm-errorcode-cs.json VSDMErrorcodeCS CodeSystem codesystems/VSDMErrorcodeCS.fsh 1 - 23 CodeSystem-vsdm-versicherungsart-cs.json VSDMVersicherungsartCS CodeSystem codesystems/VSDMVersicherungsartCS.fsh 1 - 12 CodeSystem-vsdm-wahltarife-cs.json VSDMWahltarifeCS CodeSystem codesystems/VSDMWahltarifeCS.fsh 1 - 13 @@ -7,16 +7,18 @@ CodeSystem-vsdmkostentraeger-angabestatus-cs.json VSDMKostentraegerAng Coverage-2d4da53a-413a-48fe-b908-2e67b5761523.json VSDMCoverageSample Instance examples/ExampleVSDMCoverage.fsh 2 - 9 Coverage-VALID-413a-48fe-b908-2e67b5761523.json VALID-VSDMCoverageSample Instance examples/ExampleVSDMCoverage.fsh 13 - 19 OperationOutcome-example-vsdm-operationoutcome.json ExampleOperationOutcome Instance examples/ExampleOperationOutcome.fsh 1 - 15 +Organization-2a6924bf-6e6a-4ef3-b79f-c2138c10712f.json VSDMKostentraegerSample Instance examples/ExampleVSDMKostentraeger.fsh 1 - 24 Patient-437f2555-2396-4c64-a656-e9553161ca3c.json VSDMPatientSample Instance profiles/VSDMPatient.fsh 36 - 59 Patient-Valid-437f2555-2396-4c64-a656-e9553161ca3c.json ValidExampleVSDMPatient Instance examples/ExampleVSDMPatient.fsh 1 - 30 StructureDefinition-gem-vsdm2-log-vsd-confirmation.json GEM_VSDM2_LOG_VSD_Confirmation Logical logicalmodel/logical_VSD_Datensatz.fsh 1 - 65 -StructureDefinition-vsdm-bundle.json VSDMBundle Profile profiles/VSDMBundle.fsh 1 - 39 -StructureDefinition-vsdm-composition.json VSDMComposition Profile profiles/VSDMComposition.fsh 1 - 20 +StructureDefinition-vsdm-bundle.json VSDMBundle Profile profiles/VSDMBundle.fsh 1 - 42 +StructureDefinition-vsdm-composition.json VSDMComposition Profile profiles/VSDMComposition.fsh 1 - 19 StructureDefinition-vsdm-contactpoint-timessenger.json VSDMContactPointTIMessenger Profile profiles/VSDMContactPointTIMessenger.fsh 1 - 7 -StructureDefinition-vsdm-coverage.json VSDMCoverage Profile profiles/VSDMCoverage.fsh 1 - 50 +StructureDefinition-vsdm-coverage.json VSDMCoverage Profile profiles/VSDMCoverage.fsh 1 - 46 StructureDefinition-vsdm-dmp-kennzeichen-basis-ex.json VSDMDMPKennzeichenBasisEX Extension extensions/VSDMDMPKennzeichenBasis.fsh 1 - 11 StructureDefinition-vsdm-dmpKennzeichen-ex.json VSDMDMPKennzeichenEX Extension extensions/VSDMDMPKennzeichen.fsh 1 - 25 StructureDefinition-vsdm-kostentraeger-laendercode-ex.json VSDMKostentraegerLaendercodeEX Extension extensions/VSDMKostentraegerLaendercodeEX.fsh 1 - 14 +StructureDefinition-vsdm-kostentraeger.json VSDMKostentraeger Profile profiles/VSDMKostentraeger.fsh 1 - 18 StructureDefinition-vsdm-operationoutcome.json VSDMOperationOutcome Profile profiles/VSDMOperationOutcome.fsh 1 - 34 StructureDefinition-vsdm-patient.json VSDMPatient Profile profiles/VSDMPatient.fsh 1 - 26 StructureDefinition-vsdm-wahltarife-ex.json VSDMWahltarifeEX Extension extensions/VSDMWahltarifeEX.fsh 1 - 35 diff --git a/src/fhir/fsh-generated/resources/Bundle-9b6ac30d-246d-4eab-af83-544564792089.json b/src/fhir/fsh-generated/resources/Bundle-9b6ac30d-246d-4eab-af83-544564792089.json index 9d9f264..99b6825 100644 --- a/src/fhir/fsh-generated/resources/Bundle-9b6ac30d-246d-4eab-af83-544564792089.json +++ b/src/fhir/fsh-generated/resources/Bundle-9b6ac30d-246d-4eab-af83-544564792089.json @@ -51,17 +51,22 @@ } ] }, + "date": "2023-11-03T12:02:23.157+01:00", + "title": "VSDM 2 data", "author": [ { - "identifier": { - "system": "http://fhir.de/sid/arge-ik/iknr", - "value": "12345678" - } + "type": "Organization", + "reference": "Organization/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" } ], - "date": "2023-11-03T12:02:23.157+01:00", - "title": "VSDM 2 data", "section": [ + { + "entry": [ + { + "reference": "Organization/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" + } + ] + }, { "entry": [ { @@ -79,6 +84,54 @@ ] } }, + { + "fullUrl": "https://gematik.de/fhir/Kostentraeger/2a6924bf-6e6a-4ef3-b79f-c2138c10712f", + "resource": { + "resourceType": "Organization", + "id": "2a6924bf-6e6a-4ef3-b79f-c2138c10712f", + "meta": { + "profile": [ + "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" + ] + }, + "identifier": [ + { + "use": "official", + "system": "http://fhir.de/sid/arge-ik/iknr", + "value": "12345678" + }, + { + "use": "secondary", + "system": "http://fhir.de/sid/arge-ik/iknr", + "value": "18765432" + } + ], + "name": "Beispiel-Kostenträger", + "contact": [ + { + "purpose": { + "coding": [ + { + "code": "BILL", + "system": "http://terminology.hl7.org/CodeSystem/contactentity-type" + } + ], + "text": "Kontakt für Abrechnungsfragen" + }, + "telecom": [ + { + "system": "phone", + "value": "+490123456789" + }, + { + "system": "email", + "value": "contact@invalid.de" + } + ] + } + ] + } + }, { "fullUrl": "https://gematik.de/fhir/Patient/437f2555-2396-4c64-a656-e9553161ca3c", "resource": { @@ -281,15 +334,6 @@ "url": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMWahltarifeEX" } ], - "payor": [ - { - "identifier": { - "system": "http://fhir.de/sid/arge-ik/iknr", - "value": "12345678" - }, - "display": "Test GKV Krankenkasse" - } - ], "type": { "coding": [ { @@ -304,7 +348,12 @@ }, "beneficiary": { "reference": "Patient/437f2555-2396-4c64-a656-e9553161ca3c" - } + }, + "payor": [ + { + "reference": "Organization/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" + } + ] } } ] diff --git a/src/fhir/fsh-generated/resources/Coverage-2d4da53a-413a-48fe-b908-2e67b5761523.json b/src/fhir/fsh-generated/resources/Coverage-2d4da53a-413a-48fe-b908-2e67b5761523.json index c176fe9..94cec5f 100644 --- a/src/fhir/fsh-generated/resources/Coverage-2d4da53a-413a-48fe-b908-2e67b5761523.json +++ b/src/fhir/fsh-generated/resources/Coverage-2d4da53a-413a-48fe-b908-2e67b5761523.json @@ -131,15 +131,6 @@ "url": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMWahltarifeEX" } ], - "payor": [ - { - "identifier": { - "system": "http://fhir.de/sid/arge-ik/iknr", - "value": "12345678" - }, - "display": "Test GKV Krankenkasse" - } - ], "type": { "coding": [ { @@ -154,5 +145,10 @@ }, "beneficiary": { "reference": "Patient/437f2555-2396-4c64-a656-e9553161ca3c" - } + }, + "payor": [ + { + "reference": "Organization/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" + } + ] } diff --git a/src/fhir/fsh-generated/resources/Coverage-VALID-413a-48fe-b908-2e67b5761523.json b/src/fhir/fsh-generated/resources/Coverage-VALID-413a-48fe-b908-2e67b5761523.json index fa56eff..e9c0f66 100644 --- a/src/fhir/fsh-generated/resources/Coverage-VALID-413a-48fe-b908-2e67b5761523.json +++ b/src/fhir/fsh-generated/resources/Coverage-VALID-413a-48fe-b908-2e67b5761523.json @@ -127,15 +127,6 @@ "url": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMWahltarifeEX" } ], - "payor": [ - { - "identifier": { - "system": "http://fhir.de/sid/arge-ik/iknr", - "value": "12345678" - }, - "display": "Test GKV Krankenkasse" - } - ], "type": { "coding": [ { @@ -150,5 +141,10 @@ }, "beneficiary": { "reference": "Patient/437f2555-2396-4c64-a656-e9553161ca3c" - } + }, + "payor": [ + { + "reference": "Organization/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" + } + ] } diff --git a/src/fhir/fsh-generated/resources/Organization-2a6924bf-6e6a-4ef3-b79f-c2138c10712f.json b/src/fhir/fsh-generated/resources/Organization-2a6924bf-6e6a-4ef3-b79f-c2138c10712f.json new file mode 100644 index 0000000..b408fcc --- /dev/null +++ b/src/fhir/fsh-generated/resources/Organization-2a6924bf-6e6a-4ef3-b79f-c2138c10712f.json @@ -0,0 +1,45 @@ +{ + "resourceType": "Organization", + "id": "2a6924bf-6e6a-4ef3-b79f-c2138c10712f", + "meta": { + "profile": [ + "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" + ] + }, + "identifier": [ + { + "use": "official", + "system": "http://fhir.de/sid/arge-ik/iknr", + "value": "12345678" + }, + { + "use": "secondary", + "system": "http://fhir.de/sid/arge-ik/iknr", + "value": "18765432" + } + ], + "name": "Beispiel-Kostenträger", + "contact": [ + { + "purpose": { + "coding": [ + { + "code": "BILL", + "system": "http://terminology.hl7.org/CodeSystem/contactentity-type" + } + ], + "text": "Kontakt für Abrechnungsfragen" + }, + "telecom": [ + { + "system": "phone", + "value": "+490123456789" + }, + { + "system": "email", + "value": "contact@invalid.de" + } + ] + } + ] +} diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-bundle.json b/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-bundle.json index 7512901..2de6e16 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-bundle.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-bundle.json @@ -51,67 +51,76 @@ }, "constraint": [ { - "key": "bdl-1", + "key": "bdl-7", "severity": "error", - "human": "total only when a search or history", - "expression": "total.empty() or (type = 'searchset') or (type = 'history')", - "xpath": "not(f:total) or (f:type/@value = 'searchset') or (f:type/@value = 'history')" + "human": "FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)", + "expression": "(type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&resource.meta.versionId).isDistinct()", + "xpath": "(f:type/@value = 'history') or (count(for $entry in f:entry[f:resource] return $entry[count(parent::f:Bundle/f:entry[f:fullUrl/@value=$entry/f:fullUrl/@value and ((not(f:resource/*/f:meta/f:versionId/@value) and not($entry/f:resource/*/f:meta/f:versionId/@value)) or f:resource/*/f:meta/f:versionId/@value=$entry/f:resource/*/f:meta/f:versionId/@value)])!=1])=0)", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "bdl-2", + "key": "bdl-9", "severity": "error", - "human": "entry.search only when a search", - "expression": "entry.search.empty() or (type = 'searchset')", - "xpath": "not(f:entry/f:search) or (f:type/@value = 'searchset')" + "human": "A document must have an identifier with a system and a value", + "expression": "type = 'document' implies (identifier.system.exists() and identifier.value.exists())", + "xpath": "not(f:type/@value = 'document') or exists(f:identifier/f:system) or exists(f:identifier/f:value)", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { "key": "bdl-3", "severity": "error", "human": "entry.request mandatory for batch/transaction/history, otherwise prohibited", "expression": "entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))", - "xpath": "not(f:entry/f:request) or (f:type/@value = 'batch') or (f:type/@value = 'transaction') or (f:type/@value = 'history')" + "xpath": "not(f:entry/f:request) or (f:type/@value = 'batch') or (f:type/@value = 'transaction') or (f:type/@value = 'history')", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { "key": "bdl-4", "severity": "error", "human": "entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited", "expression": "entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))", - "xpath": "not(f:entry/f:response) or (f:type/@value = 'batch-response') or (f:type/@value = 'transaction-response') or (f:type/@value = 'history')" + "xpath": "not(f:entry/f:response) or (f:type/@value = 'batch-response') or (f:type/@value = 'transaction-response') or (f:type/@value = 'history')", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "bdl-7", + "key": "bdl-12", "severity": "error", - "human": "FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)", - "expression": "(type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&resource.meta.versionId).isDistinct()", - "xpath": "(f:type/@value = 'history') or (count(for $entry in f:entry[f:resource] return $entry[count(parent::f:Bundle/f:entry[f:fullUrl/@value=$entry/f:fullUrl/@value and ((not(f:resource/*/f:meta/f:versionId/@value) and not($entry/f:resource/*/f:meta/f:versionId/@value)) or f:resource/*/f:meta/f:versionId/@value=$entry/f:resource/*/f:meta/f:versionId/@value)])!=1])=0)" + "human": "A message must have a MessageHeader as the first resource", + "expression": "type = 'message' implies entry.first().resource.is(MessageHeader)", + "xpath": "not(f:type/@value='message') or f:entry[1]/f:resource/f:MessageHeader", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "bdl-9", + "key": "bdl-1", "severity": "error", - "human": "A document must have an identifier with a system and a value", - "expression": "type = 'document' implies (identifier.system.exists() and identifier.value.exists())", - "xpath": "not(f:type/@value = 'document') or exists(f:identifier/f:system) or exists(f:identifier/f:value)" + "human": "total only when a search or history", + "expression": "total.empty() or (type = 'searchset') or (type = 'history')", + "xpath": "not(f:total) or (f:type/@value = 'searchset') or (f:type/@value = 'history')", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "bdl-10", + "key": "bdl-2", "severity": "error", - "human": "A document must have a date", - "expression": "type = 'document' implies (timestamp.hasValue())", - "xpath": "not(f:type/@value = 'document') or exists(f:timestamp/@value)" + "human": "entry.search only when a search", + "expression": "entry.search.empty() or (type = 'searchset')", + "xpath": "not(f:entry/f:search) or (f:type/@value = 'searchset')", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { "key": "bdl-11", "severity": "error", "human": "A document must have a Composition as the first resource", "expression": "type = 'document' implies entry.first().resource.is(Composition)", - "xpath": "not(f:type/@value='document') or f:entry[1]/f:resource/f:Composition" + "xpath": "not(f:type/@value='document') or f:entry[1]/f:resource/f:Composition", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "bdl-12", + "key": "bdl-10", "severity": "error", - "human": "A message must have a MessageHeader as the first resource", - "expression": "type = 'message' implies entry.first().resource.is(MessageHeader)", - "xpath": "not(f:type/@value='message') or f:entry[1]/f:resource/f:MessageHeader" + "human": "A document must have a date", + "expression": "type = 'document' implies (timestamp.hasValue())", + "xpath": "not(f:type/@value = 'document') or exists(f:timestamp/@value)", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" } ], "isModifier": false, @@ -416,6 +425,16 @@ }, { "id": "Bundle.meta.security", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.meta.security", "short": "Security Labels applied to this resource", "definition": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.", @@ -432,6 +451,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -458,10 +480,38 @@ "strength": "extensible", "description": "Security Labels from the Healthcare Privacy and Security Classification System.", "valueSet": "http://hl7.org/fhir/ValueSet/security-labels" - } + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" + }, + { + "identity": "rim", + "map": "CV" + }, + { + "identity": "orim", + "map": "fhir:Coding rdfs:subClassOf dt:CDCoding" + } + ] }, { "id": "Bundle.meta.tag", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.meta.tag", "short": "Tags applied to this resource", "definition": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.", @@ -478,6 +528,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -500,7 +553,25 @@ "strength": "example", "description": "Codes that represent various types of tags, commonly workflow-related; e.g. \"Needs review by Dr. Jones\".", "valueSet": "http://hl7.org/fhir/ValueSet/common-tags" - } + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" + }, + { + "identity": "rim", + "map": "CV" + }, + { + "identity": "orim", + "map": "fhir:Coding rdfs:subClassOf dt:CDCoding" + } + ] }, { "id": "Bundle.implicitRules", @@ -586,6 +657,16 @@ }, { "id": "Bundle.identifier", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.identifier", "short": "Persistent identifier for the bundle", "definition": "A persistent identifier for the bundle that won't change as a bundle is copied from server to server.", @@ -602,6 +683,9 @@ "code": "Identifier" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -615,6 +699,22 @@ "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)" + }, + { + "identity": "rim", + "map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" + }, + { + "identity": "servd", + "map": "Identifier" + }, { "identity": "w5", "map": "FiveWs.identifier" @@ -775,6 +875,16 @@ }, { "id": "Bundle.identifier.type", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.identifier.type", "short": "Description of identifier", "definition": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.", @@ -792,6 +902,9 @@ "code": "CodeableConcept" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -820,6 +933,22 @@ "valueSet": "http://hl7.org/fhir/ValueSet/identifier-type" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, { "identity": "v2", "map": "CX.5" @@ -936,9 +1065,20 @@ }, { "id": "Bundle.identifier.period", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.identifier.period", "short": "Time period when id is/was valid for use", "definition": "Time period during which identifier is/was valid for use.", + "comment": "A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration).", "min": 0, "max": "1", "base": { @@ -951,6 +1091,9 @@ "code": "Period" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -959,11 +1102,31 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "per-1", + "severity": "error", + "human": "If present, start SHALL have a lower value than end", + "expression": "start.hasValue().not() or end.hasValue().not() or (start <= end)", + "xpath": "not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))", + "source": "http://hl7.org/fhir/StructureDefinition/Period" } ], "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "DR" + }, + { + "identity": "rim", + "map": "IVL[lowClosed=\"true\" and highClosed=\"true\"] or URG[lowClosed=\"true\" and highClosed=\"true\"]" + }, { "identity": "v2", "map": "CX.7 + CX.8" @@ -980,6 +1143,16 @@ }, { "id": "Bundle.identifier.assigner", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.identifier.assigner", "short": "Organization that issued id (may be just text)", "definition": "Organization that issued/manages the identifier.", @@ -999,6 +1172,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1007,11 +1183,27 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "v2", "map": "CX.4 / (CX.4,CX.9,CX.10)" @@ -1152,6 +1344,16 @@ }, { "id": "Bundle.link", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.link", "short": "Links related to this Bundle", "definition": "A series of links that provide context to this bundle.", @@ -1168,6 +1370,9 @@ "code": "BackboneElement" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1179,7 +1384,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.link.id", @@ -1219,6 +1430,16 @@ { "id": "Bundle.link.extension", "path": "Bundle.link.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -1322,6 +1543,7 @@ "path": "Bundle.link.relation", "short": "See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1", "definition": "A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 1, "max": "1", "base": { @@ -1352,6 +1574,7 @@ "path": "Bundle.link.url", "short": "Reference details for the link", "definition": "The reference details for the link.", + "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier", "min": 1, "max": "1", "base": { @@ -1379,6 +1602,16 @@ }, { "id": "Bundle.entry", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry", "slicing": { "discriminator": [ @@ -1391,7 +1624,7 @@ }, "short": "Entry in the bundle - will have a resource or information", "definition": "An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).", - "min": 3, + "min": 4, "max": "*", "base": { "path": "Bundle.entry", @@ -1404,32 +1637,43 @@ } ], "orderMeaning": "For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type", + "condition": [ + "ele-1" + ], "constraint": [ { - "key": "bdl-5", + "key": "ele-1", "severity": "error", - "human": "must be a resource unless there's a request or response", - "expression": "resource.exists() or request.exists() or response.exists()", - "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)" + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" }, { "key": "bdl-8", "severity": "error", "human": "fullUrl cannot be a version specific reference", "expression": "fullUrl.contains('/_history/').not()", - "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))" + "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "ele-1", + "key": "bdl-5", "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" + "human": "must be a resource unless there's a request or response", + "expression": "resource.exists() or request.exists() or response.exists()", + "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry.id", @@ -1469,6 +1713,16 @@ { "id": "Bundle.entry.extension", "path": "Bundle.entry.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -1580,17 +1834,6 @@ "max": "*" }, "contentReference": "#Bundle.link", - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, "isSummary": true }, { @@ -1642,11 +1885,27 @@ } ], "isModifier": false, - "isSummary": true - }, - { - "id": "Bundle.entry.search", - "path": "Bundle.entry.search", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] + }, + { + "id": "Bundle.entry.search", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Bundle.entry.search", "short": "Search related information", "definition": "Information about the search process that lead to the creation of this entry.", "min": 0, @@ -1662,6 +1921,7 @@ } ], "condition": [ + "ele-1", "bdl-2" ], "constraint": [ @@ -1675,7 +1935,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry.search.id", @@ -1715,6 +1981,16 @@ { "id": "Bundle.entry.search.extension", "path": "Bundle.entry.search.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -1873,6 +2149,9 @@ "code": "decimal" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1884,10 +2163,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry.request", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.request", "short": "Additional execution information (transaction/batch/history)", "definition": "Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.", @@ -1904,6 +2199,7 @@ } ], "condition": [ + "ele-1", "bdl-3" ], "constraint": [ @@ -1917,7 +2213,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry.request.id", @@ -1957,6 +2259,16 @@ { "id": "Bundle.entry.request.extension", "path": "Bundle.entry.request.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -2132,6 +2444,7 @@ "path": "Bundle.entry.request.ifNoneMatch", "short": "For managing cache currency", "definition": "If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -2162,6 +2475,7 @@ "path": "Bundle.entry.request.ifModifiedSince", "short": "For managing cache currency", "definition": "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required", "min": 0, "max": "1", "base": { @@ -2192,6 +2506,7 @@ "path": "Bundle.entry.request.ifMatch", "short": "For managing update contention", "definition": "Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -2222,6 +2537,7 @@ "path": "Bundle.entry.request.ifNoneExist", "short": "For conditional creates", "definition": "Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\").", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -2249,6 +2565,16 @@ }, { "id": "Bundle.entry.response", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.response", "short": "Results of execution (transaction/batch/history)", "definition": "Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.", @@ -2265,6 +2591,7 @@ } ], "condition": [ + "ele-1", "bdl-4" ], "constraint": [ @@ -2278,7 +2605,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry.response.id", @@ -2318,6 +2651,16 @@ { "id": "Bundle.entry.response.extension", "path": "Bundle.entry.response.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -2421,6 +2764,7 @@ "path": "Bundle.entry.response.status", "short": "Status response code (text optional)", "definition": "The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 1, "max": "1", "base": { @@ -2451,6 +2795,7 @@ "path": "Bundle.entry.response.location", "short": "The location (if the operation returns a location)", "definition": "The location header created by processing this operation, populated if the operation returns a location.", + "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier", "min": 0, "max": "1", "base": { @@ -2557,10 +2902,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] }, { "id": "Bundle.entry:DocumentInformation", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry", "sliceName": "DocumentInformation", "short": "Entry in the bundle - will have a resource or information", @@ -2578,32 +2939,43 @@ } ], "orderMeaning": "For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type", + "condition": [ + "ele-1" + ], "constraint": [ { - "key": "bdl-5", + "key": "ele-1", "severity": "error", - "human": "must be a resource unless there's a request or response", - "expression": "resource.exists() or request.exists() or response.exists()", - "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)" + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" }, { "key": "bdl-8", "severity": "error", "human": "fullUrl cannot be a version specific reference", "expression": "fullUrl.contains('/_history/').not()", - "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))" + "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "ele-1", + "key": "bdl-5", "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" + "human": "must be a resource unless there's a request or response", + "expression": "resource.exists() or request.exists() or response.exists()", + "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:DocumentInformation.id", @@ -2643,6 +3015,16 @@ { "id": "Bundle.entry:DocumentInformation.extension", "path": "Bundle.entry.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -2754,17 +3136,6 @@ "max": "*" }, "contentReference": "#Bundle.link", - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, "isSummary": true }, { @@ -2819,10 +3190,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] }, { "id": "Bundle.entry:DocumentInformation.search", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.search", "short": "Search related information", "definition": "Information about the search process that lead to the creation of this entry.", @@ -2839,6 +3226,7 @@ } ], "condition": [ + "ele-1", "bdl-2" ], "constraint": [ @@ -2852,7 +3240,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:DocumentInformation.search.id", @@ -2892,6 +3286,16 @@ { "id": "Bundle.entry:DocumentInformation.search.extension", "path": "Bundle.entry.search.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -3050,6 +3454,59 @@ "code": "decimal" } ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.request", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Bundle.entry.request", + "short": "Additional execution information (transaction/batch/history)", + "definition": "Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.request", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "BackboneElement" + } + ], + "condition": [ + "ele-1", + "bdl-3" + ], "constraint": [ { "key": "ele-1", @@ -3061,10 +3518,1281 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.request.id", + "path": "Bundle.entry.request.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "http://hl7.org/fhirpath/System.String", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", + "valueUrl": "string" + } + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.request.extension", + "path": "Bundle.entry.request.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.request.modifierExtension", + "path": "Bundle.entry.request.modifierExtension", + "short": "Extensions that cannot be ignored even if unrecognized", + "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content", + "modifiers" + ], + "min": 0, + "max": "*", + "base": { + "path": "BackboneElement.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.request.method", + "path": "Bundle.entry.request.method", + "short": "GET | HEAD | POST | PUT | DELETE | PATCH", + "definition": "In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred.", + "min": 1, + "max": "1", + "base": { + "path": "Bundle.entry.request.method", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "HTTPVerb" + } + ], + "strength": "required", + "description": "HTTP verbs (in the HTTP command line). See [HTTP rfc](https://tools.ietf.org/html/rfc7231) for details.", + "valueSet": "http://hl7.org/fhir/ValueSet/http-verb|4.0.1" + } + }, + { + "id": "Bundle.entry:DocumentInformation.request.url", + "path": "Bundle.entry.request.url", + "short": "URL for HTTP equivalent of this entry", + "definition": "The URL for this entry, relative to the root (the address to which the request is posted).", + "comment": "E.g. for a Patient Create, the method would be \"POST\" and the URL would be \"Patient\". For a Patient Update, the method would be PUT and the URL would be \"Patient/[id]\".", + "min": 1, + "max": "1", + "base": { + "path": "Bundle.entry.request.url", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "uri" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.request.ifNoneMatch", + "path": "Bundle.entry.request.ifNoneMatch", + "short": "For managing cache currency", + "definition": "If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.request.ifNoneMatch", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.request.ifModifiedSince", + "path": "Bundle.entry.request.ifModifiedSince", + "short": "For managing cache currency", + "definition": "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.request.ifModifiedSince", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "instant" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.request.ifMatch", + "path": "Bundle.entry.request.ifMatch", + "short": "For managing update contention", + "definition": "Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.request.ifMatch", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.request.ifNoneExist", + "path": "Bundle.entry.request.ifNoneExist", + "short": "For conditional creates", + "definition": "Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\").", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.request.ifNoneExist", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.response", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Bundle.entry.response", + "short": "Results of execution (transaction/batch/history)", + "definition": "Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.response", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "BackboneElement" + } + ], + "condition": [ + "ele-1", + "bdl-4" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.response.id", + "path": "Bundle.entry.response.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "http://hl7.org/fhirpath/System.String", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", + "valueUrl": "string" + } + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.response.extension", + "path": "Bundle.entry.response.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.response.modifierExtension", + "path": "Bundle.entry.response.modifierExtension", + "short": "Extensions that cannot be ignored even if unrecognized", + "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content", + "modifiers" + ], + "min": 0, + "max": "*", + "base": { + "path": "BackboneElement.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Bundle.entry:DocumentInformation.response.status", + "path": "Bundle.entry.response.status", + "short": "Status response code (text optional)", + "definition": "The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", + "min": 1, + "max": "1", + "base": { + "path": "Bundle.entry.response.status", + "min": 1, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.response.location", + "path": "Bundle.entry.response.location", + "short": "The location (if the operation returns a location)", + "definition": "The location header created by processing this operation, populated if the operation returns a location.", + "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.response.location", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "uri" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.response.etag", + "path": "Bundle.entry.response.etag", + "short": "The Etag for the resource (if relevant)", + "definition": "The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency)).", + "comment": "Etags match the Resource.meta.versionId. The ETag has to match the version id in the header if a resource is included.", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.response.etag", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.response.lastModified", + "path": "Bundle.entry.response.lastModified", + "short": "Server's date time modified", + "definition": "The date/time that the resource was modified on the server.", + "comment": "This has to match the same time in the meta header (meta.lastUpdated) if a resource is included.", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.response.lastModified", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "instant" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:DocumentInformation.response.outcome", + "path": "Bundle.entry.response.outcome", + "short": "OperationOutcome with hints and warnings (for batch/transaction)", + "definition": "An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction.", + "comment": "For a POST/PUT operation, this is the equivalent outcome that would be returned for prefer = operationoutcome - except that the resource is always returned whether or not the outcome is returned.\n\nThis outcome is not used for error responses in batch/transaction, only for hints and warnings. In a batch operation, the error will be in Bundle.entry.response, and for transaction, there will be a single OperationOutcome instead of a bundle in the case of an error.", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.response.outcome", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Resource" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Bundle.entry", + "sliceName": "VSDMKostentraeger", + "short": "Entry in the bundle - will have a resource or information", + "definition": "An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).", + "min": 1, + "max": "1", + "base": { + "path": "Bundle.entry", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "BackboneElement" + } + ], + "orderMeaning": "For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type", + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "bdl-8", + "severity": "error", + "human": "fullUrl cannot be a version specific reference", + "expression": "fullUrl.contains('/_history/').not()", + "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" + }, + { + "key": "bdl-5", + "severity": "error", + "human": "must be a resource unless there's a request or response", + "expression": "resource.exists() or request.exists() or response.exists()", + "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.id", + "path": "Bundle.entry.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "http://hl7.org/fhirpath/System.String", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", + "valueUrl": "string" + } + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.extension", + "path": "Bundle.entry.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.modifierExtension", + "path": "Bundle.entry.modifierExtension", + "short": "Extensions that cannot be ignored even if unrecognized", + "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content", + "modifiers" + ], + "min": 0, + "max": "*", + "base": { + "path": "BackboneElement.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.link", + "path": "Bundle.entry.link", + "short": "Links related to this entry", + "definition": "A series of links that provide context to this entry.", + "min": 0, + "max": "*", + "base": { + "path": "Bundle.entry.link", + "min": 0, + "max": "*" + }, + "contentReference": "#Bundle.link", + "isSummary": true + }, + { + "id": "Bundle.entry:VSDMKostentraeger.fullUrl", + "path": "Bundle.entry.fullUrl", + "short": "URI for resource (Absolute URL server address or URI for UUID/OID)", + "definition": "The Absolute URL for the resource. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: \n* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)\n* Results from operations might involve resources that are not identified.", + "comment": "fullUrl might not be [unique in the context of a resource](bundle.html#bundle-unique). Note that since [FHIR resources do not need to be served through the FHIR API](references.html), the fullURL might be a URN or an absolute URL that does not end with the logical id of the resource (Resource.id). However, but if the fullUrl does look like a RESTful server URL (e.g. meets the [regex](references.html#regex), then the 'id' portion of the fullUrl SHALL end with the Resource.id.\n\nNote that the fullUrl is not the same as the canonical URL - it's an absolute url for an endpoint serving the resource (these will happen to have the same value on the canonical server for the resource with the canonical URL).", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.fullUrl", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "uri" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Bundle.entry:VSDMKostentraeger.resource", + "path": "Bundle.entry.resource", + "short": "A resource in the bundle", + "definition": "The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.", + "min": 1, + "max": "1", + "base": { + "path": "Bundle.entry.resource", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Organization", + "profile": [ + "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" + ] + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.search", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Bundle.entry.search", + "short": "Search related information", + "definition": "Information about the search process that lead to the creation of this entry.", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.search", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "BackboneElement" + } + ], + "condition": [ + "ele-1", + "bdl-2" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.search.id", + "path": "Bundle.entry.search.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "http://hl7.org/fhirpath/System.String", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", + "valueUrl": "string" + } + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.search.extension", + "path": "Bundle.entry.search.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.search.modifierExtension", + "path": "Bundle.entry.search.modifierExtension", + "short": "Extensions that cannot be ignored even if unrecognized", + "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content", + "modifiers" + ], + "min": 0, + "max": "*", + "base": { + "path": "BackboneElement.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Bundle.entry:VSDMKostentraeger.search.mode", + "path": "Bundle.entry.search.mode", + "short": "match | include | outcome - why this is in the result set", + "definition": "Why this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.", + "comment": "There is only one mode. In some corner cases, a resource may be included because it is both a match and an include. In these circumstances, 'match' takes precedence.", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.search.mode", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "SearchEntryMode" + } + ], + "strength": "required", + "description": "Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.", + "valueSet": "http://hl7.org/fhir/ValueSet/search-entry-mode|4.0.1" + } + }, + { + "id": "Bundle.entry:VSDMKostentraeger.search.score", + "path": "Bundle.entry.search.score", + "short": "Search ranking (between 0 and 1)", + "definition": "When searching, the server's search ranking score for the entry.", + "comment": "Servers are not required to return a ranking score. 1 is most relevant, and 0 is least relevant. Often, search results are sorted by score, but the client may specify a different sort order.\n\nSee [Patient Match](patient-operation-match.html) for the EMPI search which relates to this element.", + "min": 0, + "max": "1", + "base": { + "path": "Bundle.entry.search.score", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "decimal" + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { - "id": "Bundle.entry:DocumentInformation.request", + "id": "Bundle.entry:VSDMKostentraeger.request", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.request", "short": "Additional execution information (transaction/batch/history)", "definition": "Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.", @@ -3081,6 +4809,7 @@ } ], "condition": [ + "ele-1", "bdl-3" ], "constraint": [ @@ -3094,10 +4823,16 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { - "id": "Bundle.entry:DocumentInformation.request.id", + "id": "Bundle.entry:VSDMKostentraeger.request.id", "path": "Bundle.entry.request.id", "representation": [ "xmlAttr" @@ -3132,8 +4867,18 @@ ] }, { - "id": "Bundle.entry:DocumentInformation.request.extension", + "id": "Bundle.entry:VSDMKostentraeger.request.extension", "path": "Bundle.entry.request.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -3181,7 +4926,7 @@ ] }, { - "id": "Bundle.entry:DocumentInformation.request.modifierExtension", + "id": "Bundle.entry:VSDMKostentraeger.request.modifierExtension", "path": "Bundle.entry.request.modifierExtension", "short": "Extensions that cannot be ignored even if unrecognized", "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", @@ -3233,7 +4978,7 @@ ] }, { - "id": "Bundle.entry:DocumentInformation.request.method", + "id": "Bundle.entry:VSDMKostentraeger.request.method", "path": "Bundle.entry.request.method", "short": "GET | HEAD | POST | PUT | DELETE | PATCH", "definition": "In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred.", @@ -3274,7 +5019,7 @@ } }, { - "id": "Bundle.entry:DocumentInformation.request.url", + "id": "Bundle.entry:VSDMKostentraeger.request.url", "path": "Bundle.entry.request.url", "short": "URL for HTTP equivalent of this entry", "definition": "The URL for this entry, relative to the root (the address to which the request is posted).", @@ -3305,10 +5050,11 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.request.ifNoneMatch", + "id": "Bundle.entry:VSDMKostentraeger.request.ifNoneMatch", "path": "Bundle.entry.request.ifNoneMatch", "short": "For managing cache currency", "definition": "If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -3335,10 +5081,11 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.request.ifModifiedSince", + "id": "Bundle.entry:VSDMKostentraeger.request.ifModifiedSince", "path": "Bundle.entry.request.ifModifiedSince", "short": "For managing cache currency", "definition": "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required", "min": 0, "max": "1", "base": { @@ -3365,10 +5112,11 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.request.ifMatch", + "id": "Bundle.entry:VSDMKostentraeger.request.ifMatch", "path": "Bundle.entry.request.ifMatch", "short": "For managing update contention", "definition": "Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -3395,10 +5143,11 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.request.ifNoneExist", + "id": "Bundle.entry:VSDMKostentraeger.request.ifNoneExist", "path": "Bundle.entry.request.ifNoneExist", "short": "For conditional creates", "definition": "Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\").", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -3425,7 +5174,17 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.response", + "id": "Bundle.entry:VSDMKostentraeger.response", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.response", "short": "Results of execution (transaction/batch/history)", "definition": "Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.", @@ -3442,6 +5201,7 @@ } ], "condition": [ + "ele-1", "bdl-4" ], "constraint": [ @@ -3455,10 +5215,16 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { - "id": "Bundle.entry:DocumentInformation.response.id", + "id": "Bundle.entry:VSDMKostentraeger.response.id", "path": "Bundle.entry.response.id", "representation": [ "xmlAttr" @@ -3493,8 +5259,18 @@ ] }, { - "id": "Bundle.entry:DocumentInformation.response.extension", + "id": "Bundle.entry:VSDMKostentraeger.response.extension", "path": "Bundle.entry.response.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -3542,7 +5318,7 @@ ] }, { - "id": "Bundle.entry:DocumentInformation.response.modifierExtension", + "id": "Bundle.entry:VSDMKostentraeger.response.modifierExtension", "path": "Bundle.entry.response.modifierExtension", "short": "Extensions that cannot be ignored even if unrecognized", "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", @@ -3594,10 +5370,11 @@ ] }, { - "id": "Bundle.entry:DocumentInformation.response.status", + "id": "Bundle.entry:VSDMKostentraeger.response.status", "path": "Bundle.entry.response.status", "short": "Status response code (text optional)", "definition": "The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 1, "max": "1", "base": { @@ -3624,10 +5401,11 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.response.location", + "id": "Bundle.entry:VSDMKostentraeger.response.location", "path": "Bundle.entry.response.location", "short": "The location (if the operation returns a location)", "definition": "The location header created by processing this operation, populated if the operation returns a location.", + "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier", "min": 0, "max": "1", "base": { @@ -3654,7 +5432,7 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.response.etag", + "id": "Bundle.entry:VSDMKostentraeger.response.etag", "path": "Bundle.entry.response.etag", "short": "The Etag for the resource (if relevant)", "definition": "The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency)).", @@ -3685,7 +5463,7 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.response.lastModified", + "id": "Bundle.entry:VSDMKostentraeger.response.lastModified", "path": "Bundle.entry.response.lastModified", "short": "Server's date time modified", "definition": "The date/time that the resource was modified on the server.", @@ -3716,7 +5494,7 @@ "isSummary": true }, { - "id": "Bundle.entry:DocumentInformation.response.outcome", + "id": "Bundle.entry:VSDMKostentraeger.response.outcome", "path": "Bundle.entry.response.outcome", "short": "OperationOutcome with hints and warnings (for batch/transaction)", "definition": "An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction.", @@ -3734,10 +5512,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] }, { "id": "Bundle.entry:VSDMPatient", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry", "sliceName": "VSDMPatient", "short": "Entry in the bundle - will have a resource or information", @@ -3755,32 +5549,43 @@ } ], "orderMeaning": "For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type", + "condition": [ + "ele-1" + ], "constraint": [ { - "key": "bdl-5", + "key": "ele-1", "severity": "error", - "human": "must be a resource unless there's a request or response", - "expression": "resource.exists() or request.exists() or response.exists()", - "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)" + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" }, { "key": "bdl-8", "severity": "error", "human": "fullUrl cannot be a version specific reference", "expression": "fullUrl.contains('/_history/').not()", - "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))" + "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "ele-1", + "key": "bdl-5", "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" + "human": "must be a resource unless there's a request or response", + "expression": "resource.exists() or request.exists() or response.exists()", + "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMPatient.id", @@ -3820,6 +5625,16 @@ { "id": "Bundle.entry:VSDMPatient.extension", "path": "Bundle.entry.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -3931,17 +5746,6 @@ "max": "*" }, "contentReference": "#Bundle.link", - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, "isSummary": true }, { @@ -3996,10 +5800,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] }, { "id": "Bundle.entry:VSDMPatient.search", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.search", "short": "Search related information", "definition": "Information about the search process that lead to the creation of this entry.", @@ -4016,6 +5836,7 @@ } ], "condition": [ + "ele-1", "bdl-2" ], "constraint": [ @@ -4029,7 +5850,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMPatient.search.id", @@ -4069,6 +5896,16 @@ { "id": "Bundle.entry:VSDMPatient.search.extension", "path": "Bundle.entry.search.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -4227,6 +6064,9 @@ "code": "decimal" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -4238,10 +6078,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMPatient.request", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.request", "short": "Additional execution information (transaction/batch/history)", "definition": "Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.", @@ -4258,6 +6114,7 @@ } ], "condition": [ + "ele-1", "bdl-3" ], "constraint": [ @@ -4271,7 +6128,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMPatient.request.id", @@ -4311,6 +6174,16 @@ { "id": "Bundle.entry:VSDMPatient.request.extension", "path": "Bundle.entry.request.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -4486,6 +6359,7 @@ "path": "Bundle.entry.request.ifNoneMatch", "short": "For managing cache currency", "definition": "If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -4516,6 +6390,7 @@ "path": "Bundle.entry.request.ifModifiedSince", "short": "For managing cache currency", "definition": "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required", "min": 0, "max": "1", "base": { @@ -4546,6 +6421,7 @@ "path": "Bundle.entry.request.ifMatch", "short": "For managing update contention", "definition": "Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -4576,6 +6452,7 @@ "path": "Bundle.entry.request.ifNoneExist", "short": "For conditional creates", "definition": "Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\").", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -4603,6 +6480,16 @@ }, { "id": "Bundle.entry:VSDMPatient.response", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.response", "short": "Results of execution (transaction/batch/history)", "definition": "Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.", @@ -4619,6 +6506,7 @@ } ], "condition": [ + "ele-1", "bdl-4" ], "constraint": [ @@ -4632,7 +6520,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMPatient.response.id", @@ -4672,6 +6566,16 @@ { "id": "Bundle.entry:VSDMPatient.response.extension", "path": "Bundle.entry.response.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -4775,6 +6679,7 @@ "path": "Bundle.entry.response.status", "short": "Status response code (text optional)", "definition": "The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 1, "max": "1", "base": { @@ -4805,6 +6710,7 @@ "path": "Bundle.entry.response.location", "short": "The location (if the operation returns a location)", "definition": "The location header created by processing this operation, populated if the operation returns a location.", + "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier", "min": 0, "max": "1", "base": { @@ -4911,10 +6817,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] }, { "id": "Bundle.entry:VSDMCoverage", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry", "sliceName": "VSDMCoverage", "short": "Entry in the bundle - will have a resource or information", @@ -4932,32 +6854,43 @@ } ], "orderMeaning": "For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type", + "condition": [ + "ele-1" + ], "constraint": [ { - "key": "bdl-5", + "key": "ele-1", "severity": "error", - "human": "must be a resource unless there's a request or response", - "expression": "resource.exists() or request.exists() or response.exists()", - "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)" + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" }, { "key": "bdl-8", "severity": "error", "human": "fullUrl cannot be a version specific reference", "expression": "fullUrl.contains('/_history/').not()", - "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))" + "xpath": "not(exists(f:fullUrl[contains(string(@value), '/_history/')]))", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" }, { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" + "key": "bdl-5", + "severity": "error", + "human": "must be a resource unless there's a request or response", + "expression": "resource.exists() or request.exists() or response.exists()", + "xpath": "exists(f:resource) or exists(f:request) or exists(f:response)", + "source": "http://hl7.org/fhir/StructureDefinition/Bundle" } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMCoverage.id", @@ -4997,6 +6930,16 @@ { "id": "Bundle.entry:VSDMCoverage.extension", "path": "Bundle.entry.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -5108,17 +7051,6 @@ "max": "*" }, "contentReference": "#Bundle.link", - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, "isSummary": true }, { @@ -5173,10 +7105,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] }, { "id": "Bundle.entry:VSDMCoverage.search", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.search", "short": "Search related information", "definition": "Information about the search process that lead to the creation of this entry.", @@ -5193,6 +7141,7 @@ } ], "condition": [ + "ele-1", "bdl-2" ], "constraint": [ @@ -5206,7 +7155,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMCoverage.search.id", @@ -5246,6 +7201,16 @@ { "id": "Bundle.entry:VSDMCoverage.search.extension", "path": "Bundle.entry.search.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -5404,6 +7369,9 @@ "code": "decimal" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -5415,10 +7383,26 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMCoverage.request", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.request", "short": "Additional execution information (transaction/batch/history)", "definition": "Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.", @@ -5435,6 +7419,7 @@ } ], "condition": [ + "ele-1", "bdl-3" ], "constraint": [ @@ -5448,7 +7433,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMCoverage.request.id", @@ -5488,6 +7479,16 @@ { "id": "Bundle.entry:VSDMCoverage.request.extension", "path": "Bundle.entry.request.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -5663,6 +7664,7 @@ "path": "Bundle.entry.request.ifNoneMatch", "short": "For managing cache currency", "definition": "If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -5693,6 +7695,7 @@ "path": "Bundle.entry.request.ifModifiedSince", "short": "For managing cache currency", "definition": "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread).", + "comment": "Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required", "min": 0, "max": "1", "base": { @@ -5723,6 +7726,7 @@ "path": "Bundle.entry.request.ifMatch", "short": "For managing update contention", "definition": "Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency).", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -5753,6 +7757,7 @@ "path": "Bundle.entry.request.ifNoneExist", "short": "For conditional creates", "definition": "Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\").", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 0, "max": "1", "base": { @@ -5780,6 +7785,16 @@ }, { "id": "Bundle.entry:VSDMCoverage.response", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.entry.response", "short": "Results of execution (transaction/batch/history)", "definition": "Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.", @@ -5796,6 +7811,7 @@ } ], "condition": [ + "ele-1", "bdl-4" ], "constraint": [ @@ -5809,7 +7825,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] }, { "id": "Bundle.entry:VSDMCoverage.response.id", @@ -5849,6 +7871,16 @@ { "id": "Bundle.entry:VSDMCoverage.response.extension", "path": "Bundle.entry.response.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -5952,6 +7984,7 @@ "path": "Bundle.entry.response.status", "short": "Status response code (text optional)", "definition": "The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "min": 1, "max": "1", "base": { @@ -5982,6 +8015,7 @@ "path": "Bundle.entry.response.location", "short": "The location (if the operation returns a location)", "definition": "The location header created by processing this operation, populated if the operation returns a location.", + "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier", "min": 0, "max": "1", "base": { @@ -6088,7 +8122,13 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + } + ] }, { "id": "Bundle.signature", @@ -6115,6 +8155,9 @@ "code": "Signature" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -6126,7 +8169,17 @@ } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "N/A" + } + ] }, { "id": "Bundle.signature.id", @@ -6224,6 +8277,16 @@ }, { "id": "Bundle.signature.type", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.signature.type", "short": "Indication of the reason the entity signed the object(s)", "definition": "An indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document.", @@ -6240,6 +8303,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -6262,7 +8328,25 @@ "strength": "preferred", "description": "An indication of the reason that an entity signed the object.", "valueSet": "http://hl7.org/fhir/ValueSet/signature-type" - } + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" + }, + { + "identity": "rim", + "map": "CV" + }, + { + "identity": "orim", + "map": "fhir:Coding rdfs:subClassOf dt:CDCoding" + } + ] }, { "id": "Bundle.signature.when", @@ -6297,6 +8381,16 @@ }, { "id": "Bundle.signature.who", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.signature.who", "short": "Who signed", "definition": "A reference to an application-usable description of the identity that signed (e.g. the signature used their private key).", @@ -6321,6 +8415,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -6329,10 +8426,28 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + } + ] }, { "id": "Bundle.signature.who.id", @@ -6518,6 +8633,16 @@ }, { "id": "Bundle.signature.who.identifier", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.signature.who.identifier", "short": "Logical reference, when literal reference is not known", "definition": "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.", @@ -6537,6 +8662,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -6550,6 +8678,22 @@ "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)" + }, + { + "identity": "rim", + "map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" + }, + { + "identity": "servd", + "map": "Identifier" + }, { "identity": "rim", "map": ".identifier" @@ -6601,6 +8745,16 @@ }, { "id": "Bundle.signature.onBehalfOf", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Bundle.signature.onBehalfOf", "short": "The party represented", "definition": "A reference to an application-usable description of the identity that is represented by the signature.", @@ -6626,6 +8780,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -6634,10 +8791,28 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, - "isSummary": true + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + } + ] }, { "id": "Bundle.signature.targetFormat", @@ -6822,7 +8997,7 @@ ], "rules": "closed" }, - "min": 3 + "min": 4 }, { "id": "Bundle.entry:DocumentInformation", @@ -6844,6 +9019,26 @@ } ] }, + { + "id": "Bundle.entry:VSDMKostentraeger", + "path": "Bundle.entry", + "sliceName": "VSDMKostentraeger", + "min": 1, + "max": "1" + }, + { + "id": "Bundle.entry:VSDMKostentraeger.resource", + "path": "Bundle.entry.resource", + "min": 1, + "type": [ + { + "code": "Organization", + "profile": [ + "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" + ] + } + ] + }, { "id": "Bundle.entry:VSDMPatient", "path": "Bundle.entry", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-composition.json b/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-composition.json index 23dd572..ea02482 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-composition.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-composition.json @@ -62,32 +62,28 @@ "severity": "error", "human": "If the resource is contained in another resource, it SHALL NOT contain nested Resources", "expression": "contained.contained.empty()", - "xpath": "not(parent::f:contained and f:contained)", - "source": "http://hl7.org/fhir/StructureDefinition/DomainResource" + "xpath": "not(parent::f:contained and f:contained)" }, { "key": "dom-3", "severity": "error", "human": "If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource", "expression": "contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()", - "xpath": "not(exists(for $id in f:contained/*/f:id/@value return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))", - "source": "http://hl7.org/fhir/StructureDefinition/DomainResource" + "xpath": "not(exists(for $id in f:contained/*/f:id/@value return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))" }, { "key": "dom-4", "severity": "error", "human": "If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated", "expression": "contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()", - "xpath": "not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))", - "source": "http://hl7.org/fhir/StructureDefinition/DomainResource" + "xpath": "not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))" }, { "key": "dom-5", "severity": "error", "human": "If a resource is contained in another resource, it SHALL NOT have a security label", "expression": "contained.meta.security.empty()", - "xpath": "not(exists(f:contained/*/f:meta/f:security))", - "source": "http://hl7.org/fhir/StructureDefinition/DomainResource" + "xpath": "not(exists(f:contained/*/f:meta/f:security))" }, { "extension": [ @@ -104,8 +100,7 @@ "severity": "warning", "human": "A resource should have narrative for robust management", "expression": "text.`div`.exists()", - "xpath": "exists(f:text/h:div)", - "source": "http://hl7.org/fhir/StructureDefinition/DomainResource" + "xpath": "exists(f:text/h:div)" } ], "isModifier": false, @@ -414,6 +409,16 @@ }, { "id": "Composition.meta.security", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.meta.security", "short": "Security Labels applied to this resource", "definition": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.", @@ -430,6 +435,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -456,10 +464,38 @@ "strength": "extensible", "description": "Security Labels from the Healthcare Privacy and Security Classification System.", "valueSet": "http://hl7.org/fhir/ValueSet/security-labels" - } + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" + }, + { + "identity": "rim", + "map": "CV" + }, + { + "identity": "orim", + "map": "fhir:Coding rdfs:subClassOf dt:CDCoding" + } + ] }, { "id": "Composition.meta.tag", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.meta.tag", "short": "Tags applied to this resource", "definition": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.", @@ -476,6 +512,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -498,7 +537,25 @@ "strength": "example", "description": "Codes that represent various types of tags, commonly workflow-related; e.g. \"Needs review by Dr. Jones\".", "valueSet": "http://hl7.org/fhir/ValueSet/common-tags" - } + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" + }, + { + "identity": "rim", + "map": "CV" + }, + { + "identity": "orim", + "map": "fhir:Coding rdfs:subClassOf dt:CDCoding" + } + ] }, { "id": "Composition.implicitRules", @@ -667,6 +724,7 @@ "path": "url" } ], + "description": "Extensions are always sliced by (at least) url", "rules": "closed" }, "short": "Additional content defined by implementations", @@ -718,6 +776,16 @@ { "id": "Composition.modifierExtension", "path": "Composition.modifierExtension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Extensions that cannot be ignored", "definition": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -768,6 +836,16 @@ }, { "id": "Composition.identifier", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.identifier", "short": "Version-independent identifier for the Composition", "definition": "A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.", @@ -784,6 +862,9 @@ "code": "Identifier" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -797,6 +878,22 @@ "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)" + }, + { + "identity": "rim", + "map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" + }, + { + "identity": "servd", + "map": "Identifier" + }, { "identity": "workflow", "map": "Event.identifier" @@ -889,6 +986,16 @@ }, { "id": "Composition.type", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.type", "short": "Kind of composition (LOINC if possible)", "definition": "Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.", @@ -906,6 +1013,9 @@ "code": "CodeableConcept" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -931,6 +1041,22 @@ "valueSet": "http://hl7.org/fhir/ValueSet/doc-typecodes" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, { "identity": "workflow", "map": "Event.code" @@ -1049,6 +1175,16 @@ }, { "id": "Composition.type.coding", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.type.coding", "short": "Code defined by a terminology system", "definition": "A reference to a code defined by a terminology system.", @@ -1071,6 +1207,9 @@ "system": "http://loinc.org", "display": "Patient data Document" }, + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1084,6 +1223,22 @@ "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" + }, + { + "identity": "rim", + "map": "CV" + }, + { + "identity": "orim", + "map": "fhir:Coding rdfs:subClassOf dt:CDCoding" + }, { "identity": "v2", "map": "C*E.1-8, C*E.10-22" @@ -1152,6 +1307,16 @@ }, { "id": "Composition.category", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.category", "short": "Categorization of Composition", "definition": "A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.", @@ -1169,6 +1334,9 @@ "code": "CodeableConcept" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1193,6 +1361,22 @@ "valueSet": "http://hl7.org/fhir/ValueSet/document-classcodes" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, { "identity": "workflow", "map": "Event.subject" @@ -1217,6 +1401,16 @@ }, { "id": "Composition.subject", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.subject", "short": "Who and/or what the composition is about", "definition": "Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).", @@ -1237,6 +1431,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1245,11 +1442,27 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "w5", "map": "FiveWs.subject[x]" @@ -1274,9 +1487,20 @@ }, { "id": "Composition.encounter", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.encounter", "short": "Context of the Composition", "definition": "Describes the clinical encounter or type of care this documentation is associated with.", + "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", "requirements": "Provides context for the composition and supports searching.", "min": 0, "max": "1", @@ -1293,6 +1517,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1301,11 +1528,27 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "workflow", "map": "Event.context" @@ -1385,9 +1628,20 @@ }, { "id": "Composition.author", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.author", "short": "Who and/or what authored the composition", "definition": "Identifies who is responsible for the information in the composition, not necessarily who typed it in.", + "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", "requirements": "Identifies who is responsible for the content.", "min": 1, "max": "*", @@ -1400,15 +1654,13 @@ { "code": "Reference", "targetProfile": [ - "http://hl7.org/fhir/StructureDefinition/Practitioner", - "http://hl7.org/fhir/StructureDefinition/PractitionerRole", - "http://hl7.org/fhir/StructureDefinition/Device", - "http://hl7.org/fhir/StructureDefinition/Patient", - "http://hl7.org/fhir/StructureDefinition/RelatedPerson", - "http://hl7.org/fhir/StructureDefinition/Organization" + "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1417,11 +1669,27 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "workflow", "map": "Event.performer" @@ -1445,312 +1713,47 @@ ] }, { - "id": "Composition.author.id", - "path": "Composition.author.id", - "representation": [ - "xmlAttr" - ], - "short": "Unique id for inter-element referencing", - "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", - "min": 0, + "id": "Composition.title", + "path": "Composition.title", + "short": "Human Readable name/title", + "definition": "Official human-readable label for the composition.", + "comment": "For many compositions, the title is the same as the text or a display name of Composition.type (e.g. a \"consultation\" or \"progress note\"). Note that CDA does not make title mandatory, but there are no known cases where it is useful for title to be omitted, so it is mandatory here. Feedback on this requirement is welcome during the trial use period.", + "min": 1, "max": "1", "base": { - "path": "Element.id", - "min": 0, + "path": "Composition.title", + "min": 1, "max": "1" }, "type": [ { - "code": "http://hl7.org/fhirpath/System.String", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", - "valueUrl": "string" - } - ] + "code": "string" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" } ], "isModifier": false, - "isSummary": false, + "isSummary": true, "mapping": [ { "identity": "rim", - "map": "n/a" - } - ] - }, - { - "id": "Composition.author.extension", - "path": "Composition.author.extension", - "slicing": { - "discriminator": [ - { - "type": "value", - "path": "url" - } - ], - "description": "Extensions are always sliced by (at least) url", - "rules": "open" - }, - "short": "Additional content defined by implementations", - "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", - "alias": [ - "extensions", - "user content" - ], - "min": 0, - "max": "*", - "base": { - "path": "Element.extension", - "min": 0, - "max": "*" - }, - "type": [ - { - "code": "Extension" - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - }, - { - "key": "ext-1", - "severity": "error", - "human": "Must have either extensions or value[x], not both", - "expression": "extension.exists() != value.exists()", - "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", - "source": "http://hl7.org/fhir/StructureDefinition/Extension" - } - ], - "isModifier": false, - "isSummary": false, - "mapping": [ - { - "identity": "rim", - "map": "n/a" - } - ] - }, - { - "id": "Composition.author.reference", - "path": "Composition.author.reference", - "short": "Literal reference, Relative, internal or absolute URL", - "definition": "A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.", - "comment": "Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure \"/[type]/[id]\" then it should be assumed that the reference is to a FHIR RESTful server.", - "min": 0, - "max": "1", - "base": { - "path": "Reference.reference", - "min": 0, - "max": "1" - }, - "type": [ - { - "code": "string" - } - ], - "condition": [ - "ref-1" - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "mapping": [ - { - "identity": "rim", - "map": "N/A" - } - ] - }, - { - "id": "Composition.author.type", - "path": "Composition.author.type", - "short": "Type the reference refers to (e.g. \"Patient\")", - "definition": "The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).", - "comment": "This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.", - "min": 0, - "max": "1", - "base": { - "path": "Reference.type", - "min": 0, - "max": "1" - }, - "type": [ - { - "code": "uri" - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "binding": { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", - "valueString": "FHIRResourceTypeExt" - } - ], - "strength": "extensible", - "description": "Aa resource (or, for logical models, the URI of the logical model).", - "valueSet": "http://hl7.org/fhir/ValueSet/resource-types" - }, - "mapping": [ - { - "identity": "rim", - "map": "N/A" - } - ] - }, - { - "id": "Composition.author.identifier", - "path": "Composition.author.identifier", - "short": "Logical reference, when literal reference is not known", - "definition": "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.", - "comment": "When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.\n\nReference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).", - "min": 1, - "max": "1", - "base": { - "path": "Reference.identifier", - "min": 0, - "max": "1" - }, - "type": [ - { - "code": "Identifier", - "profile": [ - "http://fhir.de/StructureDefinition/identifier-iknr" - ] - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "mapping": [ - { - "identity": "rim", - "map": ".identifier" - } - ] - }, - { - "id": "Composition.author.display", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", - "valueBoolean": true - } - ], - "path": "Composition.author.display", - "short": "Text alternative for the resource", - "definition": "Plain text narrative that identifies the resource in addition to the resource reference.", - "comment": "This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.", - "min": 0, - "max": "1", - "base": { - "path": "Reference.display", - "min": 0, - "max": "1" - }, - "type": [ - { - "code": "string" - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "mapping": [ - { - "identity": "rim", - "map": "N/A" - } - ] - }, - { - "id": "Composition.title", - "path": "Composition.title", - "short": "Human Readable name/title", - "definition": "Official human-readable label for the composition.", - "comment": "For many compositions, the title is the same as the text or a display name of Composition.type (e.g. a \"consultation\" or \"progress note\"). Note that CDA does not make title mandatory, but there are no known cases where it is useful for title to be omitted, so it is mandatory here. Feedback on this requirement is welcome during the trial use period.", - "min": 1, - "max": "1", - "base": { - "path": "Composition.title", - "min": 1, - "max": "1" - }, - "type": [ - { - "code": "string" - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "mapping": [ - { - "identity": "rim", - "map": "./title" - }, - { - "identity": "cda", - "map": ".title" - }, - { - "identity": "fhirdocumentreference", - "map": "DocumentReference.description, DocumentReference.content.attachment.title" + "map": "./title" + }, + { + "identity": "cda", + "map": ".title" + }, + { + "identity": "fhirdocumentreference", + "map": "DocumentReference.description, DocumentReference.content.attachment.title" } ] }, @@ -1812,6 +1815,16 @@ }, { "id": "Composition.attester", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.attester", "short": "Attests to accuracy of composition", "definition": "A participant who has attested to the accuracy of the composition/document.", @@ -1829,6 +1842,9 @@ "code": "BackboneElement" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -1840,8 +1856,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": ".participation[typeCode=\"AUTHEN\"].role[classCode=\"ASSIGNED\"]" @@ -1894,6 +1913,16 @@ { "id": "Composition.attester.extension", "path": "Composition.attester.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -2087,9 +2116,20 @@ }, { "id": "Composition.attester.party", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.attester.party", "short": "Who attested the composition", "definition": "Who attested the composition in the specified way.", + "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", "requirements": "Identifies who has taken on the responsibility for accuracy of the composition content.", "min": 0, "max": "1", @@ -2110,6 +2150,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -2118,11 +2161,26 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "w5", "map": "FiveWs.witness" @@ -2139,6 +2197,16 @@ }, { "id": "Composition.custodian", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.custodian", "short": "Organization which maintains the composition", "definition": "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.", @@ -2159,6 +2227,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -2167,11 +2238,27 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "rim", "map": ".participation[typeCode=\"RCV\"].role[classCode=\"CUST\"].scoper[classCode=\"ORG\" and determinerCode=\"INST\"]" @@ -2188,6 +2275,16 @@ }, { "id": "Composition.relatesTo", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.relatesTo", "short": "Relationships to other compositions/documents", "definition": "Relationships that this composition has with other compositions or documents that already exist.", @@ -2204,6 +2301,9 @@ "code": "BackboneElement" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -2215,8 +2315,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": ".outboundRelationship" @@ -2269,6 +2372,16 @@ { "id": "Composition.relatesTo.extension", "path": "Composition.relatesTo.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -2425,6 +2538,16 @@ }, { "id": "Composition.relatesTo.target[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.relatesTo.target[x]", "short": "Target of the relationship", "definition": "The target composition/document of this relationship.", @@ -2446,6 +2569,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -2457,8 +2583,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": ".target[classCode=\"DOC\", moodCode=\"EVN\"].id" @@ -2475,6 +2604,16 @@ }, { "id": "Composition.event", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.event", "short": "The clinical service(s) being documented", "definition": "The clinical service, such as a colonoscopy or an appendectomy, being documented.", @@ -2492,6 +2631,9 @@ "code": "BackboneElement" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -2505,6 +2647,10 @@ "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "outboundRelationship[typeCode=\"SUBJ\"].target[classCode<'ACT']" @@ -2557,6 +2703,16 @@ { "id": "Composition.event.extension", "path": "Composition.event.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -2657,6 +2813,16 @@ }, { "id": "Composition.event.code", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.event.code", "short": "Code(s) that apply to the event being documented", "definition": "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a \"History and Physical Report\" in which the procedure being documented is necessarily a \"History and Physical\" act.", @@ -2673,6 +2839,9 @@ "code": "CodeableConcept" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -2697,6 +2866,22 @@ "valueSet": "http://terminology.hl7.org/ValueSet/v3-ActCode" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, { "identity": "rim", "map": ".code" @@ -2713,9 +2898,20 @@ }, { "id": "Composition.event.period", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.event.period", "short": "The period covered by the documentation", "definition": "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.", + "comment": "A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration).", "min": 0, "max": "1", "base": { @@ -2728,6 +2924,9 @@ "code": "Period" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -2736,11 +2935,31 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "per-1", + "severity": "error", + "human": "If present, start SHALL have a lower value than end", + "expression": "start.hasValue().not() or end.hasValue().not() or (start <= end)", + "xpath": "not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))", + "source": "http://hl7.org/fhir/StructureDefinition/Period" } ], "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "DR" + }, + { + "identity": "rim", + "map": "IVL[lowClosed=\"true\" and highClosed=\"true\"] or URG[lowClosed=\"true\" and highClosed=\"true\"]" + }, { "identity": "rim", "map": ".effectiveTime" @@ -2757,9 +2976,20 @@ }, { "id": "Composition.event.detail", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.event.detail", "short": "The event(s) being documented", "definition": "The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.", + "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", "min": 0, "max": "*", "base": { @@ -2775,6 +3005,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -2783,11 +3016,27 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "rim", "map": ".outboundRelationship[typeCode=\"SUBJ\"].target" @@ -2801,6 +3050,14 @@ { "id": "Composition.section", "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", "valueString": "Section" @@ -2821,33 +3078,41 @@ "code": "BackboneElement" } ], + "condition": [ + "ele-1" + ], "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, { "key": "cmp-1", "severity": "error", "human": "A section must contain at least one of text, entries, or sub-sections", "expression": "text.exists() or entry.exists() or section.exists()", - "xpath": "exists(f:text) or exists(f:entry) or exists(f:section)" + "xpath": "exists(f:text) or exists(f:entry) or exists(f:section)", + "source": "http://hl7.org/fhir/StructureDefinition/Composition" }, { "key": "cmp-2", "severity": "error", "human": "A section can only have an emptyReason if it is empty", "expression": "emptyReason.empty() or entry.empty()", - "xpath": "not(exists(f:emptyReason) and exists(f:entry))" - }, - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" + "xpath": "not(exists(f:emptyReason) and exists(f:entry))", + "source": "http://hl7.org/fhir/StructureDefinition/Composition" } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "./outboundRelationship[typeCode=\"COMP\" and isNormalActRelationship()]/target[moodCode=\"EVN\" and classCode=\"DOCSECT\" and isNormalAct]" @@ -2896,6 +3161,16 @@ { "id": "Composition.section.extension", "path": "Composition.section.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, "short": "Additional content defined by implementations", "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", @@ -3043,6 +3318,16 @@ }, { "id": "Composition.section.code", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.section.code", "short": "Classification of section (recommended)", "definition": "A code identifying the kind of content contained within the section. This must be consistent with the section title.", @@ -3060,6 +3345,9 @@ "code": "CodeableConcept" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -3071,7 +3359,6 @@ } ], "isModifier": false, - "isSummary": false, "binding": { "extension": [ { @@ -3084,6 +3371,22 @@ "valueSet": "http://hl7.org/fhir/ValueSet/doc-section-codes" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, { "identity": "rim", "map": "./code" @@ -3096,9 +3399,20 @@ }, { "id": "Composition.section.author", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.section.author", "short": "Who and/or what authored the section", "definition": "Identifies who is responsible for the information in this section, not necessarily who typed it in.", + "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", "requirements": "Identifies who is responsible for the content.", "min": 0, "max": "*", @@ -3120,6 +3434,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -3128,11 +3445,26 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "w5", "map": "FiveWs.author" @@ -3149,6 +3481,16 @@ }, { "id": "Composition.section.focus", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.section.focus", "short": "Who/what the section is about, when it is not about the subject of composition", "definition": "The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).", @@ -3168,6 +3510,9 @@ ] } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -3176,11 +3521,26 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "cda", "map": ".subject? (CDA did not differentiate between subject and focus)" @@ -3189,6 +3549,16 @@ }, { "id": "Composition.section.text", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.section.text", "short": "Text summary of the section, for human interpretation", "definition": "A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative.", @@ -3206,6 +3576,7 @@ } ], "condition": [ + "ele-1", "cmp-1" ], "constraint": [ @@ -3219,8 +3590,15 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "N/A" + }, { "identity": "rim", "map": ".text" @@ -3290,6 +3668,16 @@ }, { "id": "Composition.section.orderedBy", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.section.orderedBy", "short": "Order of section entries", "definition": "Specifies the order applied to the items in the section entries.", @@ -3307,6 +3695,9 @@ "code": "CodeableConcept" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -3318,7 +3709,6 @@ } ], "isModifier": false, - "isSummary": false, "binding": { "extension": [ { @@ -3331,6 +3721,22 @@ "valueSet": "http://hl7.org/fhir/ValueSet/list-order" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, { "identity": "rim", "map": ".outboundRelationship[typeCode=COMP].sequenceNumber > 1" @@ -3343,6 +3749,16 @@ }, { "id": "Composition.section.entry", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.section.entry", "short": "A reference to data that supports this section", "definition": "A reference to the actual resource from which the narrative in the section is derived.", @@ -3363,6 +3779,7 @@ } ], "condition": [ + "ele-1", "cmp-2" ], "constraint": [ @@ -3373,11 +3790,26 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, { "identity": "rim", "map": ".outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]" @@ -3390,6 +3822,16 @@ }, { "id": "Composition.section.emptyReason", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Composition.section.emptyReason", "short": "Why the section is empty", "definition": "If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.", @@ -3408,6 +3850,7 @@ } ], "condition": [ + "ele-1", "cmp-2" ], "constraint": [ @@ -3421,7 +3864,6 @@ } ], "isModifier": false, - "isSummary": false, "binding": { "extension": [ { @@ -3434,6 +3876,22 @@ "valueSet": "http://hl7.org/fhir/ValueSet/list-empty-reason" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, { "identity": "rim", "map": ".inboundRelationship[typeCode=SUBJ,code id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -3510,6 +3956,7 @@ "path": "url" } ], + "description": "Extensions are always sliced by (at least) url", "rules": "closed" } }, @@ -3541,14 +3988,13 @@ "mustSupport": true }, { - "id": "Composition.author.identifier", - "path": "Composition.author.identifier", - "min": 1, + "id": "Composition.author", + "path": "Composition.author", "type": [ { - "code": "Identifier", - "profile": [ - "http://fhir.de/StructureDefinition/identifier-iknr" + "code": "Reference", + "targetProfile": [ + "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" ] } ] diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-coverage.json b/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-coverage.json index da7ed29..dad38d1 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-coverage.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-coverage.json @@ -378,6 +378,16 @@ }, { "id": "Coverage.meta.security", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.meta.security", "short": "Security Labels applied to this resource", "definition": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.", @@ -394,6 +404,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -420,10 +433,38 @@ "strength": "extensible", "description": "Security Labels from the Healthcare Privacy and Security Classification System.", "valueSet": "http://hl7.org/fhir/ValueSet/security-labels" - } + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" + }, + { + "identity": "rim", + "map": "CV" + }, + { + "identity": "orim", + "map": "fhir:Coding rdfs:subClassOf dt:CDCoding" + } + ] }, { "id": "Coverage.meta.tag", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.meta.tag", "short": "Tags applied to this resource", "definition": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.", @@ -440,6 +481,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -462,7 +506,25 @@ "strength": "example", "description": "Codes that represent various types of tags, commonly workflow-related; e.g. \"Needs review by Dr. Jones\".", "valueSet": "http://hl7.org/fhir/ValueSet/common-tags" - } + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE subset one of the sets of component 1-3 or 4-6" + }, + { + "identity": "rim", + "map": "CV" + }, + { + "identity": "orim", + "map": "fhir:Coding rdfs:subClassOf dt:CDCoding" + } + ] }, { "id": "Coverage.implicitRules", @@ -6074,8 +6136,6 @@ } ], "fixedUri": "dmp-zeitraum", - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -6085,6 +6145,16 @@ }, { "id": "Coverage.extension:vsdm-dmpKennzeichen.extension:dmp-zeitraum.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.extension.value[x]", "short": "Zeitraum der Teilnahme am DMP", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -6100,6 +6170,9 @@ "code": "Period" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -6111,8 +6184,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -6218,7 +6294,7 @@ "path": "Coverage.extension.extension.value[x].start", "short": "Startdatum des DMP-Zeitraums", "definition": "The start of the period. The boundary is inclusive.", - "comment": "Datumsformat in ISO8601 (YYYY-MM-DD)", + "comment": "If the low element is missing, the meaning is that the low boundary is not known.", "min": 1, "max": "1", "base": { @@ -6242,6 +6318,13 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "date-precision-1", + "human": "date consists exactly of year, month and day", + "source": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMDMPKennzeichenEX", + "severity": "error", + "expression": "toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$')" } ], "isModifier": false, @@ -6262,7 +6345,7 @@ "path": "Coverage.extension.extension.value[x].end", "short": "Enddatum des DMP-Zeitraums", "definition": "The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.", - "comment": "Datumsformat in ISO8601 (YYYY-MM-DD)", + "comment": "The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has an end value of 2012-02-03.", "min": 0, "max": "1", "base": { @@ -6287,6 +6370,13 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "date-precision-1", + "human": "date consists exactly of year, month and day", + "source": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMDMPKennzeichenEX", + "severity": "error", + "expression": "toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$')" } ], "isModifier": false, @@ -6475,8 +6565,6 @@ } ], "fixedUri": "digitales-dmp", - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -6486,6 +6574,16 @@ }, { "id": "Coverage.extension:vsdm-dmpKennzeichen.extension:digitales-dmp.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.extension.value[x]", "short": "Information, ob ein digitales DMP vorhanden ist", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -6501,6 +6599,9 @@ "code": "boolean" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -6512,8 +6613,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -6549,8 +6653,6 @@ ], "fixedUri": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMDMPKennzeichenEX", "mustSupport": true, - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -6560,6 +6662,16 @@ }, { "id": "Coverage.extension:vsdm-dmpKennzeichen.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.value[x]", "short": "Value of extension", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -6722,6 +6834,9 @@ "code": "Meta" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -6733,8 +6848,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -7062,8 +7180,6 @@ } ], "fixedUri": "wahltarif", - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -7073,6 +7189,16 @@ }, { "id": "Coverage.extension:vsdm-wahltarife.extension:wahltarif.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.extension.value[x]", "short": "Value of extension", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -7088,6 +7214,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -7099,12 +7228,15 @@ } ], "isModifier": false, - "isSummary": false, "binding": { "strength": "required", "valueSet": "https://gematik.de/fhir/vsdm2/ValueSet/VSDMWahltarifeVS" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -7352,6 +7484,7 @@ "path": "Coverage.extension.extension.value[x].display", "short": "Representation defined by the system", "definition": "A representation of the meaning of the code in the system, following the rules of the system.", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "requirements": "Need to be able to carry a human-readable meaning of the code for readers that do not know the system.", "min": 0, "max": "1", @@ -7611,8 +7744,6 @@ } ], "fixedUri": "wahltarif-zeitraum", - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -7622,6 +7753,16 @@ }, { "id": "Coverage.extension:vsdm-wahltarife.extension:wahltarif-zeitraum.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.extension.value[x]", "short": "Zeitraum der Gültigkeit des Wahltarifs", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -7637,6 +7778,9 @@ "code": "Period" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -7648,8 +7792,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -7755,7 +7902,7 @@ "path": "Coverage.extension.extension.value[x].start", "short": "Startdatum des Wahltarif-Zeitraums", "definition": "The start of the period. The boundary is inclusive.", - "comment": "Datumsformat in ISO8601 (YYYY-MM-DD)", + "comment": "If the low element is missing, the meaning is that the low boundary is not known.", "min": 1, "max": "1", "base": { @@ -7779,6 +7926,13 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "date-precision-1", + "human": "date consists exactly of year, month and day", + "source": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMWahltarifeEX", + "severity": "error", + "expression": "toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$')" } ], "isModifier": false, @@ -7799,7 +7953,7 @@ "path": "Coverage.extension.extension.value[x].end", "short": "Enddatum des Wahltarif-Zeitraums", "definition": "The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.", - "comment": "Datumsformat in ISO8601 (YYYY-MM-DD)", + "comment": "The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has an end value of 2012-02-03.", "min": 0, "max": "1", "base": { @@ -7824,6 +7978,13 @@ "expression": "hasValue() or (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "date-precision-1", + "human": "date consists exactly of year, month and day", + "source": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMWahltarifeEX", + "severity": "error", + "expression": "toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$')" } ], "isModifier": false, @@ -8012,8 +8173,6 @@ } ], "fixedUri": "wahltarif-vertragskennzeichen", - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -8023,6 +8182,16 @@ }, { "id": "Coverage.extension:vsdm-wahltarife.extension:wahltarif-vertragskennzeichen.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.extension.value[x]", "short": "Vertragskennzeichnen des Wahltarifs", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -8039,6 +8208,9 @@ } ], "maxLength": 25, + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -8050,8 +8222,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -8087,8 +8262,6 @@ ], "fixedUri": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMWahltarifeEX", "mustSupport": true, - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -8098,6 +8271,16 @@ }, { "id": "Coverage.extension:vsdm-wahltarife.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.value[x]", "short": "Value of extension", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -8260,6 +8443,9 @@ "code": "Meta" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -8271,8 +8457,11 @@ } ], "isModifier": false, - "isSummary": false, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -8456,8 +8645,6 @@ ], "fixedUri": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraegerAngabestatusEX", "mustSupport": true, - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -8467,6 +8654,16 @@ }, { "id": "Coverage.extension:vsdm-kostentraegerAngabestatus.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.value[x]", "short": "Value of extension", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -8482,6 +8679,9 @@ "code": "CodeableConcept" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -8493,12 +8693,15 @@ } ], "isModifier": false, - "isSummary": false, "binding": { "strength": "required", "valueSet": "https://gematik.de/fhir/vsdm2/CodeSystem/VSDMKostentraegerAngabestatusVS" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -8682,8 +8885,6 @@ ], "fixedUri": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraegerLaendercodeEX", "mustSupport": true, - "isModifier": false, - "isSummary": false, "mapping": [ { "identity": "rim", @@ -8693,6 +8894,16 @@ }, { "id": "Coverage.extension:vsdm-kostentraegerlaendercode.value[x]", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.extension.value[x]", "short": "Value of extension", "definition": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).", @@ -8708,6 +8919,9 @@ "code": "Coding" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -8727,12 +8941,15 @@ ], "mustSupport": true, "isModifier": false, - "isSummary": false, "binding": { "strength": "required", "valueSet": "http://hl7.org/fhir/ValueSet/iso3166-1-2" }, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, { "identity": "rim", "map": "N/A" @@ -8982,6 +9199,7 @@ "path": "Coverage.extension.value[x].display", "short": "Representation defined by the system", "definition": "A representation of the meaning of the code in the system, following the rules of the system.", + "comment": "Note that FHIR strings SHALL NOT exceed 1MB in size", "requirements": "Need to be able to carry a human-readable meaning of the code for readers that do not know the system.", "min": 0, "max": "1", @@ -9696,6 +9914,16 @@ }, { "id": "Coverage.beneficiary.identifier", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], "path": "Coverage.beneficiary.identifier", "short": "Logical reference, when literal reference is not known", "definition": "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.", @@ -9712,6 +9940,9 @@ "code": "Identifier" } ], + "condition": [ + "ele-1" + ], "constraint": [ { "key": "ele-1", @@ -9725,6 +9956,22 @@ "isModifier": false, "isSummary": true, "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)" + }, + { + "identity": "rim", + "map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" + }, + { + "identity": "servd", + "map": "Identifier" + }, { "identity": "rim", "map": ".identifier" @@ -10115,9 +10362,7 @@ { "code": "Reference", "targetProfile": [ - "http://hl7.org/fhir/StructureDefinition/Organization", - "http://hl7.org/fhir/StructureDefinition/Patient", - "http://hl7.org/fhir/StructureDefinition/RelatedPerson" + "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" ] } ], @@ -10153,349 +10398,31 @@ ] }, { - "id": "Coverage.payor.id", - "path": "Coverage.payor.id", - "representation": [ - "xmlAttr" + "id": "Coverage.class", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", + "valueString": "Class" + } ], - "short": "Unique id for inter-element referencing", - "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "path": "Coverage.class", + "short": "Additional coverage classifications", + "definition": "A suite of underwriter specific classifiers.", + "comment": "For example may be used to identify a class of coverage or employer group, Policy, Plan.", + "requirements": "The codes provided on the health card which identify or confirm the specific policy for the insurer.", "min": 0, - "max": "1", + "max": "*", "base": { - "path": "Element.id", + "path": "Coverage.class", "min": 0, - "max": "1" + "max": "*" }, "type": [ { - "code": "http://hl7.org/fhirpath/System.String", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", - "valueUrl": "string" - } - ] + "code": "BackboneElement" } ], - "isModifier": false, - "isSummary": false, - "mapping": [ - { - "identity": "rim", - "map": "n/a" - } - ] - }, - { - "id": "Coverage.payor.extension", - "path": "Coverage.payor.extension", - "slicing": { - "discriminator": [ - { - "type": "value", - "path": "url" - } - ], - "description": "Extensions are always sliced by (at least) url", - "rules": "open" - }, - "short": "Additional content defined by implementations", - "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", - "alias": [ - "extensions", - "user content" - ], - "min": 0, - "max": "*", - "base": { - "path": "Element.extension", - "min": 0, - "max": "*" - }, - "type": [ - { - "code": "Extension" - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - }, - { - "key": "ext-1", - "severity": "error", - "human": "Must have either extensions or value[x], not both", - "expression": "extension.exists() != value.exists()", - "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", - "source": "http://hl7.org/fhir/StructureDefinition/Extension" - } - ], - "isModifier": false, - "isSummary": false, - "mapping": [ - { - "identity": "rim", - "map": "n/a" - } - ] - }, - { - "id": "Coverage.payor.extension:abrechnendeIK", - "path": "Coverage.payor.extension", - "sliceName": "abrechnendeIK", - "short": "Additional content defined by implementations", - "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", - "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", - "alias": [ - "extensions", - "user content" - ], - "min": 0, - "max": "1", - "base": { - "path": "Element.extension", - "min": 0, - "max": "*" - }, - "type": [ - { - "code": "Extension", - "profile": [ - "http://fhir.de/StructureDefinition/AbrechnendeIK" - ] - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - }, - { - "key": "ext-1", - "severity": "error", - "human": "Must have either extensions or value[x], not both", - "expression": "extension.exists() != value.exists()", - "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", - "source": "http://hl7.org/fhir/StructureDefinition/Extension" - } - ], - "isModifier": false, - "isSummary": false, - "mapping": [ - { - "identity": "rim", - "map": "n/a" - } - ] - }, - { - "id": "Coverage.payor.reference", - "path": "Coverage.payor.reference", - "short": "Literal reference, Relative, internal or absolute URL", - "definition": "A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.", - "comment": "Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure \"/[type]/[id]\" then it should be assumed that the reference is to a FHIR RESTful server.", - "min": 0, - "max": "1", - "base": { - "path": "Reference.reference", - "min": 0, - "max": "1" - }, - "type": [ - { - "code": "string" - } - ], - "condition": [ - "ref-1" - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "mapping": [ - { - "identity": "rim", - "map": "N/A" - } - ] - }, - { - "id": "Coverage.payor.type", - "path": "Coverage.payor.type", - "short": "Type the reference refers to (e.g. \"Patient\")", - "definition": "The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).", - "comment": "This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.", - "min": 0, - "max": "1", - "base": { - "path": "Reference.type", - "min": 0, - "max": "1" - }, - "type": [ - { - "code": "uri" - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "binding": { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", - "valueString": "FHIRResourceTypeExt" - } - ], - "strength": "extensible", - "description": "Aa resource (or, for logical models, the URI of the logical model).", - "valueSet": "http://hl7.org/fhir/ValueSet/resource-types" - }, - "mapping": [ - { - "identity": "rim", - "map": "N/A" - } - ] - }, - { - "id": "Coverage.payor.identifier", - "path": "Coverage.payor.identifier", - "short": "Logical reference, when literal reference is not known", - "definition": "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.", - "comment": "When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.\n\nReference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).", - "min": 1, - "max": "1", - "base": { - "path": "Reference.identifier", - "min": 0, - "max": "1" - }, - "type": [ - { - "code": "Identifier", - "profile": [ - "http://fhir.de/StructureDefinition/identifier-iknr" - ] - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "mapping": [ - { - "identity": "rim", - "map": ".identifier" - } - ] - }, - { - "id": "Coverage.payor.display", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", - "valueBoolean": true - } - ], - "path": "Coverage.payor.display", - "short": "Name des Kostenträgers", - "definition": "Plain text narrative that identifies the resource in addition to the resource reference.", - "comment": "This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.", - "min": 1, - "max": "1", - "base": { - "path": "Reference.display", - "min": 0, - "max": "1" - }, - "type": [ - { - "code": "string" - } - ], - "constraint": [ - { - "key": "ele-1", - "severity": "error", - "human": "All FHIR elements must have a @value or children", - "expression": "hasValue() or (children().count() > id.count())", - "xpath": "@value|f:*|h:div", - "source": "http://hl7.org/fhir/StructureDefinition/Element" - } - ], - "isModifier": false, - "isSummary": true, - "mapping": [ - { - "identity": "rim", - "map": "N/A" - } - ] - }, - { - "id": "Coverage.class", - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", - "valueString": "Class" - } - ], - "path": "Coverage.class", - "short": "Additional coverage classifications", - "definition": "A suite of underwriter specific classifiers.", - "comment": "For example may be used to identify a class of coverage or employer group, Policy, Plan.", - "requirements": "The codes provided on the health card which identify or confirm the specific policy for the insurer.", - "min": 0, - "max": "*", - "base": { - "path": "Coverage.class", - "min": 0, - "max": "*" - }, - "type": [ - { - "code": "BackboneElement" - } - ], - "constraint": [ + "constraint": [ { "key": "ele-1", "severity": "error", @@ -11745,41 +11672,15 @@ { "id": "Coverage.payor", "path": "Coverage.payor", - "max": "1" - }, - { - "id": "Coverage.payor.extension:abrechnendeIK", - "path": "Coverage.payor.extension", - "sliceName": "abrechnendeIK", - "min": 0, "max": "1", "type": [ { - "code": "Extension", - "profile": [ - "http://fhir.de/StructureDefinition/AbrechnendeIK" - ] - } - ] - }, - { - "id": "Coverage.payor.identifier", - "path": "Coverage.payor.identifier", - "min": 1, - "type": [ - { - "code": "Identifier", - "profile": [ - "http://fhir.de/StructureDefinition/identifier-iknr" + "code": "Reference", + "targetProfile": [ + "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" ] } ] - }, - { - "id": "Coverage.payor.display", - "path": "Coverage.payor.display", - "short": "Name des Kostenträgers", - "min": 1 } ] } diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-kostentraeger.json b/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-kostentraeger.json new file mode 100644 index 0000000..d8f5a90 --- /dev/null +++ b/src/fhir/fsh-generated/resources/StructureDefinition-vsdm-kostentraeger.json @@ -0,0 +1,2680 @@ +{ + "resourceType": "StructureDefinition", + "id": "vsdm-kostentraeger", + "url": "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger", + "name": "VSDMKostentraeger", + "status": "draft", + "experimental": false, + "date": "2023-12-31", + "publisher": "gematik GmbH", + "fhirVersion": "4.0.1", + "mapping": [ + { + "identity": "v2", + "uri": "http://hl7.org/v2", + "name": "HL7 v2 Mapping" + }, + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "servd", + "uri": "http://www.omg.org/spec/ServD/1.0/", + "name": "ServD" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + } + ], + "kind": "resource", + "abstract": false, + "type": "Organization", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Organization", + "derivation": "constraint", + "snapshot": { + "element": [ + { + "id": "Organization", + "path": "Organization", + "short": "A grouping of people or organizations with a common purpose", + "definition": "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc.", + "min": 0, + "max": "*", + "base": { + "path": "Organization", + "min": 0, + "max": "*" + }, + "constraint": [ + { + "key": "dom-2", + "severity": "error", + "human": "If the resource is contained in another resource, it SHALL NOT contain nested Resources", + "expression": "contained.contained.empty()", + "xpath": "not(parent::f:contained and f:contained)", + "source": "http://hl7.org/fhir/StructureDefinition/Organization" + }, + { + "key": "dom-3", + "severity": "error", + "human": "If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource", + "expression": "contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()", + "xpath": "not(exists(for $id in f:contained/*/f:id/@value return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))", + "source": "http://hl7.org/fhir/StructureDefinition/Organization" + }, + { + "key": "dom-4", + "severity": "error", + "human": "If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated", + "expression": "contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()", + "xpath": "not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))", + "source": "http://hl7.org/fhir/StructureDefinition/Organization" + }, + { + "key": "dom-5", + "severity": "error", + "human": "If a resource is contained in another resource, it SHALL NOT have a security label", + "expression": "contained.meta.security.empty()", + "xpath": "not(exists(f:contained/*/f:meta/f:security))", + "source": "http://hl7.org/fhir/StructureDefinition/Organization" + }, + { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice", + "valueBoolean": true + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation", + "valueMarkdown": "When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time." + } + ], + "key": "dom-6", + "severity": "warning", + "human": "A resource should have narrative for robust management", + "expression": "text.`div`.exists()", + "xpath": "exists(f:text/h:div)", + "source": "http://hl7.org/fhir/StructureDefinition/Organization" + }, + { + "key": "org-1", + "severity": "error", + "human": "The organization SHALL at least have a name or an identifier, and possibly more than one", + "expression": "(identifier.count() + name.count()) > 0", + "xpath": "count(f:identifier | f:name) > 0", + "source": "http://hl7.org/fhir/StructureDefinition/Organization" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "Entity. Role, or Act" + }, + { + "identity": "v2", + "map": "(also see master files messages)" + }, + { + "identity": "rim", + "map": "Organization(classCode=ORG, determinerCode=INST)" + }, + { + "identity": "servd", + "map": "Organization" + } + ] + }, + { + "id": "Organization.id", + "path": "Organization.id", + "short": "Logical id of this artifact", + "definition": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.", + "comment": "The only time that a resource does not have an id is when it is being submitted to the server using a create operation.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "http://hl7.org/fhirpath/System.String", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", + "valueUrl": "string" + } + ] + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Organization.meta", + "path": "Organization.meta", + "short": "Metadata about the resource", + "definition": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.meta", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Meta" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true + }, + { + "id": "Organization.implicitRules", + "path": "Organization.implicitRules", + "short": "A set of rules under which this content was created", + "definition": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.", + "comment": "Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.", + "min": 0, + "max": "1", + "base": { + "path": "Resource.implicitRules", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "uri" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": true, + "isModifierReason": "This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation", + "isSummary": true + }, + { + "id": "Organization.language", + "path": "Organization.language", + "short": "Language of the resource content", + "definition": "The base language in which the resource is written.", + "comment": "Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).", + "min": 0, + "max": "1", + "base": { + "path": "Resource.language", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet", + "valueCanonical": "http://hl7.org/fhir/ValueSet/all-languages" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "Language" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", + "valueBoolean": true + } + ], + "strength": "preferred", + "description": "A human language.", + "valueSet": "http://hl7.org/fhir/ValueSet/languages" + } + }, + { + "id": "Organization.text", + "path": "Organization.text", + "short": "Text summary of the resource, for human interpretation", + "definition": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", + "comment": "Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.", + "alias": [ + "narrative", + "html", + "xhtml", + "display" + ], + "min": 0, + "max": "1", + "base": { + "path": "DomainResource.text", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Narrative" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "Act.text?" + } + ] + }, + { + "id": "Organization.contained", + "path": "Organization.contained", + "short": "Contained, inline Resources", + "definition": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.", + "comment": "This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.", + "alias": [ + "inline resources", + "anonymous resources", + "contained resources" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.contained", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Resource" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Organization.extension", + "path": "Organization.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Organization.modifierExtension", + "path": "Organization.modifierExtension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Extensions that cannot be ignored", + "definition": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "DomainResource.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them", + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Organization.identifier", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.identifier", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "use" + } + ], + "rules": "open", + "ordered": false + }, + "short": "Identifies this organization across multiple systems", + "definition": "Identifier for the organization that is used to identify the organization across multiple disparate systems.", + "requirements": "Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.", + "min": 2, + "max": "*", + "base": { + "path": "Organization.identifier", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Identifier" + } + ], + "condition": [ + "ele-1", + "org-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)" + }, + { + "identity": "rim", + "map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" + }, + { + "identity": "servd", + "map": "Identifier" + }, + { + "identity": "w5", + "map": "FiveWs.identifier" + }, + { + "identity": "v2", + "map": "XON.10 / XON.3" + }, + { + "identity": "rim", + "map": ".scopes[Role](classCode=IDENT)" + }, + { + "identity": "servd", + "map": "./Identifiers" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.identifier", + "sliceName": "haupt-ik", + "short": "Identifies this organization across multiple systems", + "definition": "Identifier for the organization that is used to identify the organization across multiple disparate systems.", + "requirements": "Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.", + "min": 1, + "max": "1", + "base": { + "path": "Organization.identifier", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Identifier", + "profile": [ + "http://fhir.de/StructureDefinition/identifier-iknr" + ] + } + ], + "condition": [ + "ele-1", + "org-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)" + }, + { + "identity": "rim", + "map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" + }, + { + "identity": "servd", + "map": "Identifier" + }, + { + "identity": "w5", + "map": "FiveWs.identifier" + }, + { + "identity": "v2", + "map": "XON.10 / XON.3" + }, + { + "identity": "rim", + "map": ".scopes[Role](classCode=IDENT)" + }, + { + "identity": "servd", + "map": "./Identifiers" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik.id", + "path": "Organization.identifier.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "http://hl7.org/fhirpath/System.String", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", + "valueUrl": "string" + } + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik.extension", + "path": "Organization.identifier.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik.use", + "path": "Organization.identifier.use", + "short": "usual | official | temp | secondary | old (If known)", + "definition": "The purpose of this identifier.", + "comment": "Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.", + "requirements": "Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.", + "min": 1, + "max": "1", + "base": { + "path": "Identifier.use", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "fixedCode": "official", + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": true, + "isModifierReason": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.", + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "IdentifierUse" + } + ], + "strength": "required", + "description": "Identifies the purpose for this identifier, if known .", + "valueSet": "http://hl7.org/fhir/ValueSet/identifier-use|4.0.1" + }, + "mapping": [ + { + "identity": "v2", + "map": "N/A" + }, + { + "identity": "rim", + "map": "Role.code or implied by context" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik.type", + "path": "Organization.identifier.type", + "short": "Description of identifier", + "definition": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.", + "comment": "This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.", + "requirements": "Allows users to make use of identifiers when the identifier system is not known.", + "min": 0, + "max": "1", + "base": { + "path": "Identifier.type", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "patternCodeableConcept": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0203", + "code": "XX" + } + ] + }, + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "IdentifierType" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", + "valueBoolean": true + } + ], + "strength": "extensible", + "description": "A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.", + "valueSet": "http://fhir.de/ValueSet/identifier-type-de-basis" + }, + "mapping": [ + { + "identity": "v2", + "map": "CX.5" + }, + { + "identity": "rim", + "map": "Role.code or implied by context" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik.system", + "path": "Organization.identifier.system", + "short": "The namespace for the identifier value", + "definition": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique.", + "comment": "Identifier.system is always case sensitive.", + "requirements": "There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.", + "min": 1, + "max": "1", + "base": { + "path": "Identifier.system", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "uri" + } + ], + "fixedUri": "http://fhir.de/sid/arge-ik/iknr", + "example": [ + { + "label": "General", + "valueUri": "http://www.acme.com/identifiers/patient" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "CX.4 / EI-2-4" + }, + { + "identity": "rim", + "map": "II.root or Role.id.root" + }, + { + "identity": "servd", + "map": "./IdentifierType" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik.value", + "path": "Organization.identifier.value", + "short": "The value that is unique", + "definition": "The portion of the identifier typically relevant to the user and which is unique within the context of the system.", + "comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.", + "min": 1, + "max": "1", + "base": { + "path": "Identifier.value", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "example": [ + { + "label": "General", + "valueString": "123456" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ik-1", + "severity": "warning", + "human": "Eine IK muss eine numerische 9-stellige Zeichenkette (mit Prüfziffer) sein", + "expression": "matches('^[0-9]{9}$')", + "source": "http://fhir.de/StructureDefinition/identifier-iknr" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "CX.1 / EI.1" + }, + { + "identity": "rim", + "map": "II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)" + }, + { + "identity": "servd", + "map": "./Value" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik.period", + "path": "Organization.identifier.period", + "short": "Time period when id is/was valid for use", + "definition": "Time period during which identifier is/was valid for use.", + "min": 0, + "max": "1", + "base": { + "path": "Identifier.period", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Period" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "CX.7 + CX.8" + }, + { + "identity": "rim", + "map": "Role.effectiveTime or implied by context" + }, + { + "identity": "servd", + "map": "./StartDate and ./EndDate" + } + ] + }, + { + "id": "Organization.identifier:haupt-ik.assigner", + "path": "Organization.identifier.assigner", + "short": "Organization that issued id (may be just text)", + "definition": "Organization that issued/manages the identifier.", + "comment": "The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.", + "min": 0, + "max": "1", + "base": { + "path": "Identifier.assigner", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Organization" + ] + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "CX.4 / (CX.4,CX.9,CX.10)" + }, + { + "identity": "rim", + "map": "II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper" + }, + { + "identity": "servd", + "map": "./IdentifierIssuingAuthority" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.identifier", + "sliceName": "abrechnungs-ik", + "short": "Identifies this organization across multiple systems", + "definition": "Identifier for the organization that is used to identify the organization across multiple disparate systems.", + "requirements": "Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization.", + "min": 1, + "max": "1", + "base": { + "path": "Organization.identifier", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Identifier", + "profile": [ + "http://fhir.de/StructureDefinition/identifier-iknr" + ] + } + ], + "condition": [ + "ele-1", + "org-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "mustSupport": true, + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)" + }, + { + "identity": "rim", + "map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" + }, + { + "identity": "servd", + "map": "Identifier" + }, + { + "identity": "w5", + "map": "FiveWs.identifier" + }, + { + "identity": "v2", + "map": "XON.10 / XON.3" + }, + { + "identity": "rim", + "map": ".scopes[Role](classCode=IDENT)" + }, + { + "identity": "servd", + "map": "./Identifiers" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik.id", + "path": "Organization.identifier.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "http://hl7.org/fhirpath/System.String", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", + "valueUrl": "string" + } + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik.extension", + "path": "Organization.identifier.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik.use", + "path": "Organization.identifier.use", + "short": "usual | official | temp | secondary | old (If known)", + "definition": "The purpose of this identifier.", + "comment": "Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.", + "requirements": "Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.", + "min": 1, + "max": "1", + "base": { + "path": "Identifier.use", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "code" + } + ], + "fixedCode": "secondary", + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": true, + "isModifierReason": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.", + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "IdentifierUse" + } + ], + "strength": "required", + "description": "Identifies the purpose for this identifier, if known .", + "valueSet": "http://hl7.org/fhir/ValueSet/identifier-use|4.0.1" + }, + "mapping": [ + { + "identity": "v2", + "map": "N/A" + }, + { + "identity": "rim", + "map": "Role.code or implied by context" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik.type", + "path": "Organization.identifier.type", + "short": "Description of identifier", + "definition": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.", + "comment": "This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.", + "requirements": "Allows users to make use of identifiers when the identifier system is not known.", + "min": 0, + "max": "1", + "base": { + "path": "Identifier.type", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "patternCodeableConcept": { + "coding": [ + { + "system": "http://terminology.hl7.org/CodeSystem/v2-0203", + "code": "XX" + } + ] + }, + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "IdentifierType" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", + "valueBoolean": true + } + ], + "strength": "extensible", + "description": "A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.", + "valueSet": "http://fhir.de/ValueSet/identifier-type-de-basis" + }, + "mapping": [ + { + "identity": "v2", + "map": "CX.5" + }, + { + "identity": "rim", + "map": "Role.code or implied by context" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik.system", + "path": "Organization.identifier.system", + "short": "The namespace for the identifier value", + "definition": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique.", + "comment": "Identifier.system is always case sensitive.", + "requirements": "There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.", + "min": 1, + "max": "1", + "base": { + "path": "Identifier.system", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "uri" + } + ], + "fixedUri": "http://fhir.de/sid/arge-ik/iknr", + "example": [ + { + "label": "General", + "valueUri": "http://www.acme.com/identifiers/patient" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "CX.4 / EI-2-4" + }, + { + "identity": "rim", + "map": "II.root or Role.id.root" + }, + { + "identity": "servd", + "map": "./IdentifierType" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik.value", + "path": "Organization.identifier.value", + "short": "The value that is unique", + "definition": "The portion of the identifier typically relevant to the user and which is unique within the context of the system.", + "comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.", + "min": 1, + "max": "1", + "base": { + "path": "Identifier.value", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "example": [ + { + "label": "General", + "valueString": "123456" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ik-1", + "severity": "warning", + "human": "Eine IK muss eine numerische 9-stellige Zeichenkette (mit Prüfziffer) sein", + "expression": "matches('^[0-9]{9}$')", + "source": "http://fhir.de/StructureDefinition/identifier-iknr" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "CX.1 / EI.1" + }, + { + "identity": "rim", + "map": "II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)" + }, + { + "identity": "servd", + "map": "./Value" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik.period", + "path": "Organization.identifier.period", + "short": "Time period when id is/was valid for use", + "definition": "Time period during which identifier is/was valid for use.", + "min": 0, + "max": "1", + "base": { + "path": "Identifier.period", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Period" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "CX.7 + CX.8" + }, + { + "identity": "rim", + "map": "Role.effectiveTime or implied by context" + }, + { + "identity": "servd", + "map": "./StartDate and ./EndDate" + } + ] + }, + { + "id": "Organization.identifier:abrechnungs-ik.assigner", + "path": "Organization.identifier.assigner", + "short": "Organization that issued id (may be just text)", + "definition": "Organization that issued/manages the identifier.", + "comment": "The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.", + "min": 0, + "max": "1", + "base": { + "path": "Identifier.assigner", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Organization" + ] + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "CX.4 / (CX.4,CX.9,CX.10)" + }, + { + "identity": "rim", + "map": "II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper" + }, + { + "identity": "servd", + "map": "./IdentifierIssuingAuthority" + } + ] + }, + { + "id": "Organization.active", + "path": "Organization.active", + "short": "Whether the organization's record is still in active use", + "definition": "Whether the organization's record is still in active use.", + "comment": "This active flag is not intended to be used to mark an organization as temporarily closed or under construction. Instead the Location(s) within the Organization should have the suspended status. If further details of the reason for the suspension are required, then an extension on this element should be used.\n\nThis element is labeled as a modifier because it may be used to mark that the resource was created in error.", + "requirements": "Need a flag to indicate a record is no longer to be used and should generally be hidden for the user in the UI.", + "min": 0, + "max": "1", + "base": { + "path": "Organization.active", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "boolean" + } + ], + "meaningWhenMissing": "This resource is generally assumed to be active if no value is provided for the active element", + "fixedBoolean": true, + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": true, + "isModifierReason": "This element is labelled as a modifier because it is a status element that can indicate that a record should not be treated as valid", + "isSummary": true, + "mapping": [ + { + "identity": "w5", + "map": "FiveWs.status" + }, + { + "identity": "v2", + "map": "No equivalent in HL7 v2" + }, + { + "identity": "rim", + "map": ".status" + }, + { + "identity": "servd", + "map": "./Status (however this concept in ServD more covers why the organization is active or not, could be delisted, deregistered, not operational yet) this could alternatively be derived from ./StartDate and ./EndDate and given a context date." + } + ] + }, + { + "id": "Organization.type", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.type", + "short": "Kind of organization", + "definition": "The kind(s) of organization that this is.", + "comment": "Organizations can be corporations, wards, sections, clinical teams, government departments, etc. Note that code is generally a classifier of the type of organization; in many applications, codes are used to identity a particular organization (say, ward) as opposed to another of the same type - these are identifiers, not codes\n\nWhen considering if multiple types are appropriate, you should evaluate if child organizations would be a more appropriate use of the concept, as different types likely are in different sub-areas of the organization. This is most likely to be used where type values have orthogonal values, such as a religious, academic and medical center.\n\nWe expect that some jurisdictions will profile this optionality to be a single cardinality.", + "requirements": "Need to be able to track the kind of organization that this is - different organization types have different uses.", + "min": 0, + "max": "*", + "base": { + "path": "Organization.type", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "OrganizationType" + } + ], + "strength": "example", + "description": "Used to categorize the organization.", + "valueSet": "http://hl7.org/fhir/ValueSet/organization-type" + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, + { + "identity": "w5", + "map": "FiveWs.class" + }, + { + "identity": "v2", + "map": "No equivalent in v2" + }, + { + "identity": "rim", + "map": ".code" + }, + { + "identity": "servd", + "map": "n/a" + } + ] + }, + { + "id": "Organization.name", + "path": "Organization.name", + "short": "Name used for the organization", + "definition": "A name associated with the organization.", + "comment": "If the name of an organization changes, consider putting the old name in the alias column so that it can still be located through searches.", + "requirements": "Need to use the name as the label of the organization.", + "min": 1, + "max": "1", + "base": { + "path": "Organization.name", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "string" + } + ], + "condition": [ + "org-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "v2", + "map": "XON.1" + }, + { + "identity": "rim", + "map": ".name" + }, + { + "identity": "servd", + "map": ".PreferredName/Name" + } + ] + }, + { + "id": "Organization.alias", + "path": "Organization.alias", + "short": "A list of alternate names that the organization is known as, or was known as in the past", + "definition": "A list of alternate names that the organization is known as, or was known as in the past.", + "comment": "There are no dates associated with the alias/historic names, as this is not intended to track when names were used, but to assist in searching so that older names can still result in identifying the organization.", + "requirements": "Over time locations and organizations go through many changes and can be known by different names.\n\nFor searching knowing previous names that the organization was known by can be very useful.", + "min": 0, + "max": "*", + "base": { + "path": "Organization.alias", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "string" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": ".name" + } + ] + }, + { + "id": "Organization.telecom", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.telecom", + "short": "A contact detail for the organization", + "definition": "A contact detail for the organization.", + "comment": "The use code 'home' is not to be used. Note that these contacts are not the contact details of people who are employed by or represent the organization, but official contacts for the organization itself.", + "requirements": "Human contact for the organization.", + "min": 0, + "max": "*", + "base": { + "path": "Organization.telecom", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "ContactPoint" + } + ], + "condition": [ + "ele-1", + "org-3" + ], + "constraint": [ + { + "key": "cpt-2", + "severity": "error", + "human": "A system is required if a value is provided.", + "expression": "value.empty() or system.exists()", + "xpath": "not(exists(f:value)) or exists(f:system)", + "source": "http://hl7.org/fhir/StructureDefinition/ContactPoint" + }, + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "org-3", + "severity": "error", + "human": "The telecom of an organization can never be of use 'home'", + "expression": "where(use = 'home').empty()", + "xpath": "count(f:use[@value='home']) = 0", + "source": "http://hl7.org/fhir/StructureDefinition/Organization" + } + ], + "isModifier": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "XTN" + }, + { + "identity": "rim", + "map": "TEL" + }, + { + "identity": "servd", + "map": "ContactPoint" + }, + { + "identity": "v2", + "map": "ORC-22?" + }, + { + "identity": "rim", + "map": ".telecom" + }, + { + "identity": "servd", + "map": "./ContactPoints" + } + ] + }, + { + "id": "Organization.address", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.address", + "short": "An address for the organization", + "definition": "An address for the organization.", + "comment": "Organization may have multiple addresses with different uses or applicable periods. The use code 'home' is not to be used.", + "requirements": "May need to keep track of the organization's addresses for contacting, billing or reporting requirements.", + "min": 0, + "max": "*", + "base": { + "path": "Organization.address", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Address" + } + ], + "condition": [ + "ele-1", + "org-2" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "org-2", + "severity": "error", + "human": "An address of an organization can never be of use 'home'", + "expression": "where(use = 'home').empty()", + "xpath": "count(f:use[@value='home']) = 0", + "source": "http://hl7.org/fhir/StructureDefinition/Organization" + } + ], + "isModifier": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "XAD" + }, + { + "identity": "rim", + "map": "AD" + }, + { + "identity": "servd", + "map": "Address" + }, + { + "identity": "v2", + "map": "ORC-23?" + }, + { + "identity": "rim", + "map": ".address" + }, + { + "identity": "servd", + "map": "./PrimaryAddress and ./OtherAddresses" + } + ] + }, + { + "id": "Organization.partOf", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.partOf", + "short": "The organization of which this organization forms a part", + "definition": "The organization of which this organization forms a part.", + "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", + "requirements": "Need to be able to track the hierarchy of organizations within an organization.", + "min": 0, + "max": "1", + "base": { + "path": "Organization.partOf", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Organization" + ], + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-hierarchy", + "valueBoolean": true + } + ] + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" + } + ], + "isModifier": false, + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + }, + { + "identity": "v2", + "map": "No equivalent in HL7 v2" + }, + { + "identity": "rim", + "map": ".playedBy[classCode=Part].scoper" + }, + { + "identity": "servd", + "map": "n/a" + } + ] + }, + { + "id": "Organization.contact", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.contact", + "short": "Contact for the organization for a certain purpose", + "definition": "Contact for the organization for a certain purpose.", + "comment": "Where multiple contacts for the same purpose are provided there is a standard extension that can be used to determine which one is the preferred contact to use.", + "requirements": "Need to keep track of assigned contact points within bigger organization.", + "min": 0, + "max": "*", + "base": { + "path": "Organization.contact", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "BackboneElement" + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": ".contactParty" + } + ] + }, + { + "id": "Organization.contact.id", + "path": "Organization.contact.id", + "representation": [ + "xmlAttr" + ], + "short": "Unique id for inter-element referencing", + "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", + "min": 0, + "max": "1", + "base": { + "path": "Element.id", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "http://hl7.org/fhirpath/System.String", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type", + "valueUrl": "string" + } + ] + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Organization.contact.extension", + "path": "Organization.contact.extension", + "slicing": { + "discriminator": [ + { + "type": "value", + "path": "url" + } + ], + "description": "Extensions are always sliced by (at least) url", + "rules": "open" + }, + "short": "Additional content defined by implementations", + "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "alias": [ + "extensions", + "user content" + ], + "min": 0, + "max": "*", + "base": { + "path": "Element.extension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": false, + "isSummary": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + } + ] + }, + { + "id": "Organization.contact.modifierExtension", + "path": "Organization.contact.modifierExtension", + "short": "Extensions that cannot be ignored even if unrecognized", + "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).", + "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", + "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).", + "alias": [ + "extensions", + "user content", + "modifiers" + ], + "min": 0, + "max": "*", + "base": { + "path": "BackboneElement.modifierExtension", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Extension" + } + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ext-1", + "severity": "error", + "human": "Must have either extensions or value[x], not both", + "expression": "extension.exists() != value.exists()", + "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])", + "source": "http://hl7.org/fhir/StructureDefinition/Extension" + } + ], + "isModifier": true, + "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them", + "isSummary": true, + "mapping": [ + { + "identity": "rim", + "map": "N/A" + } + ] + }, + { + "id": "Organization.contact.purpose", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.contact.purpose", + "short": "The type of contact", + "definition": "Indicates a purpose for which the contact can be reached.", + "comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.", + "requirements": "Need to distinguish between multiple contact persons.", + "min": 0, + "max": "1", + "base": { + "path": "Organization.contact.purpose", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "CodeableConcept" + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "binding": { + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName", + "valueString": "ContactPartyType" + } + ], + "strength": "extensible", + "description": "The purpose for which you would contact a contact party.", + "valueSet": "http://hl7.org/fhir/ValueSet/contactentity-type" + }, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "CE/CNE/CWE" + }, + { + "identity": "rim", + "map": "CD" + }, + { + "identity": "orim", + "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD" + }, + { + "identity": "rim", + "map": "./type" + } + ] + }, + { + "id": "Organization.contact.name", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.contact.name", + "short": "A name associated with the contact", + "definition": "A name associated with the contact.", + "comment": "Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts might or might not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely.", + "requirements": "Need to be able to track the person by name.", + "min": 0, + "max": "1", + "base": { + "path": "Organization.contact.name", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "HumanName" + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "XPN" + }, + { + "identity": "rim", + "map": "EN (actually, PN)" + }, + { + "identity": "servd", + "map": "ProviderName" + }, + { + "identity": "v2", + "map": "PID-5, PID-9" + }, + { + "identity": "rim", + "map": "./name" + } + ] + }, + { + "id": "Organization.contact.telecom", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.contact.telecom", + "short": "Contact details (telephone, email, etc.) for a contact", + "definition": "A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.", + "requirements": "People have (primary) ways to contact them in some way such as phone, email.", + "min": 0, + "max": "*", + "base": { + "path": "Organization.contact.telecom", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "ContactPoint" + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "cpt-2", + "severity": "error", + "human": "A system is required if a value is provided.", + "expression": "value.empty() or system.exists()", + "xpath": "not(exists(f:value)) or exists(f:system)", + "source": "http://hl7.org/fhir/StructureDefinition/ContactPoint" + }, + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "XTN" + }, + { + "identity": "rim", + "map": "TEL" + }, + { + "identity": "servd", + "map": "ContactPoint" + }, + { + "identity": "v2", + "map": "PID-13, PID-14" + }, + { + "identity": "rim", + "map": "./telecom" + } + ] + }, + { + "id": "Organization.contact.address", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.contact.address", + "short": "Visiting or postal addresses for the contact", + "definition": "Visiting or postal addresses for the contact.", + "comment": "Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the [Location](location.html#) resource).", + "requirements": "May need to keep track of a contact party's address for contacting, billing or reporting requirements.", + "min": 0, + "max": "1", + "base": { + "path": "Organization.contact.address", + "min": 0, + "max": "1" + }, + "type": [ + { + "code": "Address" + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + } + ], + "isModifier": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "v2", + "map": "XAD" + }, + { + "identity": "rim", + "map": "AD" + }, + { + "identity": "servd", + "map": "Address" + }, + { + "identity": "v2", + "map": "PID-11" + }, + { + "identity": "rim", + "map": "./addr" + } + ] + }, + { + "id": "Organization.endpoint", + "extension": [ + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "valueCode": "normative" + }, + { + "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "valueCode": "4.0.0" + } + ], + "path": "Organization.endpoint", + "short": "Technical endpoints providing access to services operated for the organization", + "definition": "Technical endpoints providing access to services operated for the organization.", + "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.", + "requirements": "Organizations have multiple systems that provide various services and need to be able to define the technical connection details for how to connect to them, and for what purpose.", + "min": 0, + "max": "*", + "base": { + "path": "Organization.endpoint", + "min": 0, + "max": "*" + }, + "type": [ + { + "code": "Reference", + "targetProfile": [ + "http://hl7.org/fhir/StructureDefinition/Endpoint" + ] + } + ], + "condition": [ + "ele-1" + ], + "constraint": [ + { + "key": "ele-1", + "severity": "error", + "human": "All FHIR elements must have a @value or children", + "expression": "hasValue() or (children().count() > id.count())", + "xpath": "@value|f:*|h:div", + "source": "http://hl7.org/fhir/StructureDefinition/Element" + }, + { + "key": "ref-1", + "severity": "error", + "human": "SHALL have a contained resource if a local reference is provided", + "expression": "reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))", + "xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])", + "source": "http://hl7.org/fhir/StructureDefinition/Reference" + } + ], + "isModifier": false, + "mapping": [ + { + "identity": "rim", + "map": "n/a" + }, + { + "identity": "rim", + "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)" + } + ] + } + ] + }, + "differential": { + "element": [ + { + "id": "Organization.identifier", + "path": "Organization.identifier", + "slicing": { + "discriminator": [ + { + "type": "pattern", + "path": "use" + } + ], + "rules": "open", + "ordered": false + }, + "min": 2 + }, + { + "id": "Organization.identifier:haupt-ik", + "path": "Organization.identifier", + "sliceName": "haupt-ik", + "min": 1, + "max": "1", + "type": [ + { + "code": "Identifier", + "profile": [ + "http://fhir.de/StructureDefinition/identifier-iknr" + ] + } + ], + "mustSupport": true + }, + { + "id": "Organization.identifier:haupt-ik.use", + "path": "Organization.identifier.use", + "min": 1, + "fixedCode": "official" + }, + { + "id": "Organization.identifier:abrechnungs-ik", + "path": "Organization.identifier", + "sliceName": "abrechnungs-ik", + "min": 1, + "max": "1", + "type": [ + { + "code": "Identifier", + "profile": [ + "http://fhir.de/StructureDefinition/identifier-iknr" + ] + } + ], + "mustSupport": true + }, + { + "id": "Organization.identifier:abrechnungs-ik.use", + "path": "Organization.identifier.use", + "min": 1, + "fixedCode": "secondary" + }, + { + "id": "Organization.active", + "path": "Organization.active", + "fixedBoolean": true + }, + { + "id": "Organization.name", + "path": "Organization.name", + "min": 1 + } + ] + } +} diff --git a/src/fhir/input/fsh/aliases.fsh b/src/fhir/input/fsh/aliases.fsh index e781584..feee8e4 100644 --- a/src/fhir/input/fsh/aliases.fsh +++ b/src/fhir/input/fsh/aliases.fsh @@ -6,6 +6,7 @@ Alias: $v3-ActCode = http://terminology.hl7.org/CodeSystem/v3-ActCode Alias: $loinc = http://loinc.org Alias: $versichertenart-de-basis-cs = http://fhir.de/CodeSystem/versicherungsart-de-basis Alias: $operationoutcomecodes = http://terminology.hl7.org/CodeSystem/operation-outcome +Alias: $contactentitytype = http://terminology.hl7.org/CodeSystem/contactentity-type // in Patient Alias: $identifier-kvid-10 = http://fhir.de/StructureDefinition/identifier-kvid-10 diff --git a/src/fhir/input/fsh/examples/ExampleVSDMBundle.fsh b/src/fhir/input/fsh/examples/ExampleVSDMBundle.fsh index 29ffa7d..d4814ad 100644 --- a/src/fhir/input/fsh/examples/ExampleVSDMBundle.fsh +++ b/src/fhir/input/fsh/examples/ExampleVSDMBundle.fsh @@ -8,6 +8,8 @@ Usage: #example * timestamp = "2023-11-03T12:02:23.157+01:00" * entry[DocumentInformation][+].fullUrl = "https://gematik.de/fhir/Composition/c624cf47-e235-4624-af71-0a09dc9254dc" * entry[DocumentInformation][=].resource = VSDM2CompositionSample +* entry[VSDMKostentraeger][+].fullUrl = "https://gematik.de/fhir/Kostentraeger/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" +* entry[VSDMKostentraeger][=].resource = VSDMKostentraegerSample * entry[VSDMPatient][+].fullUrl = "https://gematik.de/fhir/Patient/437f2555-2396-4c64-a656-e9553161ca3c" * entry[VSDMPatient][=].resource = VSDMPatientSample * entry[VSDMCoverage][+].fullUrl = "https://gematik.de/fhir/Coverage/2d4da53a-413a-48fe-b908-2e67b5761523" diff --git a/src/fhir/input/fsh/examples/ExampleVSDMComposition.fsh b/src/fhir/input/fsh/examples/ExampleVSDMComposition.fsh index f2099e3..a17be3c 100644 --- a/src/fhir/input/fsh/examples/ExampleVSDMComposition.fsh +++ b/src/fhir/input/fsh/examples/ExampleVSDMComposition.fsh @@ -7,7 +7,8 @@ Usage: #inline * status = #final * date = "2023-11-03T12:02:23.157+01:00" * title = "VSDM 2 data" -* author.identifier.system = "http://fhir.de/sid/arge-ik/iknr" -* author.identifier.value = "12345678" +* author.type = #Organization +* author.reference = "Organization/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" +* section[+].entry.reference = "Organization/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" * section[+].entry.reference = "Patient/437f2555-2396-4c64-a656-e9553161ca3c" * section[+].entry.reference = "Coverage/2d4da53a-413a-48fe-b908-2e67b5761523" \ No newline at end of file diff --git a/src/fhir/input/fsh/examples/ExampleVSDMCoverage.fsh b/src/fhir/input/fsh/examples/ExampleVSDMCoverage.fsh index 4cf6a29..1d5c96f 100644 --- a/src/fhir/input/fsh/examples/ExampleVSDMCoverage.fsh +++ b/src/fhir/input/fsh/examples/ExampleVSDMCoverage.fsh @@ -24,8 +24,7 @@ RuleSet: ExampleCoverage * period.start = "2022-04-01" * period.end = "2027-07-31" * beneficiary.reference = "Patient/437f2555-2396-4c64-a656-e9553161ca3c" -* payor.identifier.value = "12345678" -* payor.display = "Test GKV Krankenkasse" +* payor[+].reference = "Organization/2a6924bf-6e6a-4ef3-b79f-c2138c10712f" * extension[vsdm-kostentraegerAngabestatus].valueCodeableConcept.coding[+] = VSDMKostentraegerAngabestatusCS#dmp * extension[vsdm-kostentraegerAngabestatus].valueCodeableConcept.coding[+] = VSDMKostentraegerAngabestatusCS#wahltarife diff --git a/src/fhir/input/fsh/examples/ExampleVSDMKostentraeger.fsh b/src/fhir/input/fsh/examples/ExampleVSDMKostentraeger.fsh new file mode 100644 index 0000000..51da98c --- /dev/null +++ b/src/fhir/input/fsh/examples/ExampleVSDMKostentraeger.fsh @@ -0,0 +1,24 @@ +Instance: VSDMKostentraegerSample +InstanceOf: VSDMKostentraeger +Title: "Kostenträger" +Usage: #example +* id = "2a6924bf-6e6a-4ef3-b79f-c2138c10712f" // to be discussed: might also be identical to the identifier (IK) +* meta.profile = "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" +* name = "Beispiel-Kostenträger" + +// Haupt-IK +* identifier[haupt-ik].value = "12345678" + +// Abrechnungs-IK (optional) +* identifier[abrechnungs-ik].value = "18765432" + +// The following lines show an example how additional contact information might be transmitted. +* contact[+].purpose + * coding = $contactentitytype#BILL + * text = "Kontakt für Abrechnungsfragen" +* contact[=].telecom[+] + * system = #phone + * value = "+490123456789" +* contact[=].telecom[+] + * system = #email + * value = "contact@invalid.de" \ No newline at end of file diff --git a/src/fhir/input/fsh/profiles/VSDMBundle.fsh b/src/fhir/input/fsh/profiles/VSDMBundle.fsh index 6c62b40..df3ce98 100644 --- a/src/fhir/input/fsh/profiles/VSDMBundle.fsh +++ b/src/fhir/input/fsh/profiles/VSDMBundle.fsh @@ -21,10 +21,13 @@ Id: vsdm-bundle * entry ^slicing.rules = #closed * entry contains DocumentInformation 1..1 and + VSDMKostentraeger 1..1 and VSDMPatient 1..1 and VSDMCoverage 1..1 * entry[DocumentInformation].resource 1.. * entry[DocumentInformation].resource only VSDMComposition +* entry[VSDMKostentraeger].resource 1.. +* entry[VSDMKostentraeger].resource only VSDMKostentraeger * entry[VSDMPatient].resource 1.. * entry[VSDMPatient].resource only VSDMPatient * entry[VSDMCoverage].resource 1.. diff --git a/src/fhir/input/fsh/profiles/VSDMComposition.fsh b/src/fhir/input/fsh/profiles/VSDMComposition.fsh index bf7280a..8c61ef2 100644 --- a/src/fhir/input/fsh/profiles/VSDMComposition.fsh +++ b/src/fhir/input/fsh/profiles/VSDMComposition.fsh @@ -16,5 +16,4 @@ Title: "VSDM 2 Composition for VSDM 2 Bundle" * type.coding 1..1 * type.coding = $loinc#55188-7 "Patient data Document" * date MS -* author.identifier 1..1 -* author.identifier only IdentifierIknr \ No newline at end of file +* author only Reference(VSDMKostentraeger) \ No newline at end of file diff --git a/src/fhir/input/fsh/profiles/VSDMCoverage.fsh b/src/fhir/input/fsh/profiles/VSDMCoverage.fsh index 9a8fe16..7d31ee7 100644 --- a/src/fhir/input/fsh/profiles/VSDMCoverage.fsh +++ b/src/fhir/input/fsh/profiles/VSDMCoverage.fsh @@ -43,9 +43,5 @@ Id: vsdm-coverage * start 1..1 * end 1..1 * payor 1..1 - * extension contains $AbrechnendeIK named abrechnendeIK 0..1 - * identifier 1..1 - * identifier only IdentifierIknr - * display 1..1 - * ^short = "Name des Kostenträgers" +* payor only Reference(VSDMKostentraeger) diff --git a/src/fhir/input/fsh/profiles/VSDMKostentraeger.fsh b/src/fhir/input/fsh/profiles/VSDMKostentraeger.fsh new file mode 100644 index 0000000..cf5e090 --- /dev/null +++ b/src/fhir/input/fsh/profiles/VSDMKostentraeger.fsh @@ -0,0 +1,26 @@ +Profile: VSDMKostentraeger +Parent: Organization +Id: vsdm-kostentraeger +* ^url = "https://gematik.de/fhir/vsdm2/StructureDefinition/VSDMKostentraeger" +* insert Meta +* identifier + * ^slicing.discriminator.type = #pattern + * ^slicing.discriminator.path = "use" + * ^slicing.rules = #open + * ^slicing.ordered = false +* identifier contains haupt-ik 1..1 MS +* identifier contains abrechnungs-ik 1..1 MS +* identifier[haupt-ik] only IdentifierIknr + * use = #official (exactly) +* identifier[abrechnungs-ik] only IdentifierIknr + * use = #secondary (exactly) +* active = true (exactly) +* name 1..1 + + + + + + + +