{
"description": "Conformance profile to check profiles for conformance to the [Nictiz profiling guidelines for FHIR R4](https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4).\\r\\n\\r\\nThis profile contains the common rules for all profiles. Checks for specific situations (extensions, different layers, etc.) are implemented using derived profiles.",
"_filename": "ProfilingGuidelinesR4-StructureDefinitions.json",
"package_name": "nictiz.fhir.nl.r4.zib2020",
"date": null,
"derivation": "constraint",
"publisher": "Nictiz",
"fhirVersion": "4.0.1",
"purpose": "For QA on the StructureDefinitions created for R4.",
"name": "ProfilingGuidelinesR4StructureDefinitions",
"mapping": [ {
"uri": "http://hl7.org/v3",
"name": "RIM Mapping",
"identity": "rim"
}, {
"uri": "http://hl7.org/fhir/workflow",
"name": "Workflow Pattern",
"identity": "workflow"
}, {
"uri": "http://hl7.org/fhir/fivews",
"name": "FiveWs Pattern Mapping",
"identity": "w5"
}, {
"uri": "http://metadata-standards.org/11179/",
"name": "ISO 11179",
"identity": "iso11179"
}, {
"uri": "http://hl7.org/fhir/object-implementation",
"name": "Object Implementation Information",
"identity": "objimpl"
} ],
"abstract": false,
"copyright": "Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise.",
"type": "StructureDefinition",
"experimental": "true",
"resourceType": "StructureDefinition",
"title": "StructureDefinition conformance to FHIR Profiling Guidelines for FHIR R4",
"package_version": "0.2.0-beta1",
"status": "draft",
"id": "b1d6d6bc-58d1-475f-ac1d-3de0aee79359",
"kind": "resource",
"url": "http://nictiz.nl/fhir/StructureDefinition/ProfilingGuidelinesR4-StructureDefinitions",
"version": null,
"differential": {
"element": [ {
"id": "StructureDefinition",
"path": "StructureDefinition",
"constraint": [ {
"key": "sd-pg-01",
"human": "The canonical URL should conform to the profiling guidelines",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "warning",
"expression": "StructureDefinition.url = 'http://nictiz.nl/fhir/StructureDefinition/' + StructureDefinition.id"
}, {
"key": "sd-pg-12",
"human": "StuctureDefinition.id should start 'ext-' if it defines an Extension",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "error",
"expression": "StructureDefinition.type = 'Extension' implies StructureDefinition.id.startsWith('ext-')"
}, {
"key": "sd-pg-07",
"human": "The name of the StructureDefinition should conform to the profiling guidelines",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "warning",
"expression": "StructureDefinition.name.substring(0, 1).matches('[A-Z]') and StructureDefinition.name.substring(1) = StructureDefinition.id.substring(1).replace('-','').replace('.', '')"
}, {
"key": "sd-pg-08",
"human": "The title of the StructureDefinition should conform to the profiling guidelines",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "warning",
"expression": "StructureDefinition.title = StructureDefinition.id.replace('-',' ')"
}, {
"key": "sd-pg-09",
"human": "When a mapping is defined in the profile, it should be used on one or more of the elements.",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "error",
"expression": "mapping.identity.subsetOf(%resource.differential.element.mapping.identity)"
}, {
"key": "sd-pg-10",
"human": "When a mapping is defined on an element, it should be declared in the profile.",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "error",
"expression": "differential.element.mapping.identity.subsetOf(%resource.mapping.identity)"
} ]
}, {
"id": "StructureDefinition.url",
"path": "StructureDefinition.url"
}, {
"id": "StructureDefinition.name",
"path": "StructureDefinition.name"
}, {
"id": "StructureDefinition.title",
"min": 1,
"path": "StructureDefinition.title"
}, {
"id": "StructureDefinition.publisher",
"min": 1,
"path": "StructureDefinition.publisher",
"fixedString": "Nictiz"
}, {
"id": "StructureDefinition.contact",
"max": "1",
"min": 1,
"path": "StructureDefinition.contact"
}, {
"id": "StructureDefinition.contact.name",
"min": 1,
"path": "StructureDefinition.contact.name",
"fixedString": "Nictiz"
}, {
"id": "StructureDefinition.contact.telecom",
"max": "1",
"min": 1,
"path": "StructureDefinition.contact.telecom",
"patternContactPoint": {
"use": "work",
"value": "info@nictiz.nl",
"system": "email"
}
}, {
"id": "StructureDefinition.description",
"min": 1,
"path": "StructureDefinition.description"
}, {
"id": "StructureDefinition.copyright",
"min": 1,
"path": "StructureDefinition.copyright",
"fixedMarkdown": "Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise."
}, {
"id": "StructureDefinition.fhirVersion",
"min": 1,
"path": "StructureDefinition.fhirVersion",
"fixedCode": "4.0.1"
}, {
"id": "StructureDefinition.mapping.uri",
"min": 1,
"path": "StructureDefinition.mapping.uri"
}, {
"id": "StructureDefinition.mapping.name",
"min": 1,
"path": "StructureDefinition.mapping.name"
}, {
"id": "StructureDefinition.baseDefinition",
"min": 1,
"path": "StructureDefinition.baseDefinition"
}, {
"id": "StructureDefinition.snapshot",
"max": "0",
"path": "StructureDefinition.snapshot"
}, {
"id": "StructureDefinition.differential.element",
"path": "StructureDefinition.differential.element",
"constraint": [ {
"key": "sd-pg-11",
"human": "If an alias exists and this element is not the root element, mapping.map needs to be present.",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "error",
"expression": "(alias.exists() and $this.indexOf('.') != -1) implies mapping.map.exists()"
} ]
}, {
"id": "StructureDefinition.differential.element.sliceName",
"path": "StructureDefinition.differential.element.sliceName",
"constraint": [ {
"key": "sd-pg-13",
"human": "Slice names should be camelCased starting with a lowercase letter.",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "warning",
"expression": "$this.substring(0, 1).matches('[a-z]')"
} ]
}, {
"id": "StructureDefinition.differential.element.binding",
"path": "StructureDefinition.differential.element.binding",
"constraint": [ {
"key": "sd-pg-05",
"human": "If a ConceptMap is defined for a binding, it should be mentioned in the description.",
"source": "https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4",
"severity": "error",
"expression": "valueSet.extension.where(url = 'http://hl7.org/fhir/StructureDefinition/11179-permitted-value-conceptmap').exists() implies description.contains('ConceptMap')"
} ]
}, {
"id": "StructureDefinition.differential.element.mapping.comment",
"min": 1,
"path": "StructureDefinition.differential.element.mapping.comment"
} ]
},
"contact": [ {
"name": "Nictiz",
"telecom": [ {
"use": "work",
"value": "info@nictiz.nl",
"system": "email"
} ]
} ],
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/StructureDefinition"
}