{
"description": "Conformance profile to check SearchParameters for conformance to the [Nictiz profiling guidelines for FHIR R4](https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_Profiling_Guidelines_R4).",
"_filename": "ProfilingGuidelinesR4-SearchParameters.json",
"package_name": "nictiz.fhir.nl.r4.profilingguidelines",
"date": null,
"derivation": "constraint",
"publisher": null,
"fhirVersion": "4.0.1",
"name": "ProfilingGuidelinesR4_SearchParameters",
"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://hl7.org/fhir/object-implementation",
"name": "Object Implementation Information",
"identity": "objimpl"
} ],
"abstract": false,
"type": "SearchParameter",
"experimental": "true",
"resourceType": "StructureDefinition",
"title": "SearchParameters conformance to FHIR Profiling Guidelines for FHIR R4",
"package_version": "0.10.1",
"status": "draft",
"id": "d751b222-7b97-4873-b6e7-74e80eaf3a60",
"kind": "resource",
"url": "http://nictiz.nl/fhir/StructureDefinition/ProfilingGuidelinesR4-SearchParameters",
"version": "0.10.1",
"differential": {
"element": [ {
"id": "SearchParameter",
"path": "SearchParameter",
"constraint": [ {
"key": "sp-pg-01",
"human": "The id should consist of a PascalCased target followed by lowercase words which are sepearated by dashes",
"severity": "error",
"expression": "SearchParameter.id.matches('^[A-Z][A-Za-z]+-[a-z][a-z-]+[a-z]$')"
}, {
"key": "sp-pg-02",
"human": "The canonical URL should conform to the profiling guidelines",
"severity": "error",
"expression": "(SearchParameter.url = 'http://nictiz.nl/fhir/SearchParameter/' + SearchParameter.id) or (SearchParameter.url.startsWith('http://ig.nictiz.nl/') and SearchParameter.url.endsWith('/SearchParameter/' + SearchParameter.id))"
}, {
"key": "sp-pg-03",
"human": "The name of the SearchParameter should conform to the profiling guidelines",
"severity": "warning",
"expression": "SearchParameter.name.replaceMatches('^(.*?)_.*$', '$1') = SearchParameter.id.replaceMatches('^(.*?)-.*$', '$1') and SearchParameter.name.replaceMatches('^.*?_(.*)$', '$1').lower() = SearchParameter.id.replaceMatches('^.*?-(.*)$', '$1').replace('-', '')"
} ]
}, {
"id": "SearchParameter.publisher",
"min": 1,
"path": "SearchParameter.publisher",
"fixedString": "Nictiz"
}, {
"id": "SearchParameter.contact",
"max": "1",
"min": 1,
"path": "SearchParameter.contact"
}, {
"id": "SearchParameter.contact.name",
"min": 1,
"path": "SearchParameter.contact.name",
"fixedString": "Nictiz"
}, {
"id": "SearchParameter.contact.telecom",
"max": "1",
"min": 1,
"path": "SearchParameter.contact.telecom",
"patternContactPoint": {
"use": "work",
"value": "https://www.nictiz.nl",
"system": "url"
}
}, {
"id": "SearchParameter.purpose",
"min": 1,
"path": "SearchParameter.purpose"
}, {
"id": "SearchParameter.code",
"path": "SearchParameter.code",
"constraint": [ {
"key": "sd-pg-04",
"human": "The code of the SearchParameter should consist of lowercase words separated by dashes",
"severity": "error",
"expression": "$this.length() = $this.replaceMatches('[^a-z-]', '').length()"
} ]
}, {
"id": "SearchParameter.expression",
"min": 1,
"path": "SearchParameter.expression"
}, {
"id": "SearchParameter.xpath",
"max": "0",
"path": "SearchParameter.xpath"
}, {
"id": "SearchParameter.xpathUsage",
"max": "0",
"path": "SearchParameter.xpathUsage"
} ]
},
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/SearchParameter"
}