Nationella informationsmängder
0.1 - draft
Nationella informationsmängder - Local Development build (v0.1). See the Directory of published versions
Defining URL: | https://informationsstruktur.socialstyrelsen.se/nim/hos/fhir/StructureDefinition/NIMProcedure |
Version: | 0.1 |
Name: | NIMProcedure |
Title: | Åtgärd |
Status: | Active as of 2021-03-30T19:36:18+02:00 |
Definition: | NIM åtgärd används för att beskriva åtgärder som patienten har genomgått eller som patienten kommer att genomgå. Exempel på åtgärder är blindtarmsoperation eller blodtrycksmätning. |
Publisher: | Socialstyrelsen |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
https://informationsstruktur.socialstyrelsen.se/nim/hos/fhir/StructureDefinition/NIMProcedure
Translation of value sets between SNOMED and FHIR is done by Concept map NIMProcedureEventStatus
The decision that has to be made is if to use Procedure.bodySite or to model and refer to a BodyStructure profile.
The procedure resource allows for both. In the comment of Procedure.bodySite we can read:
If the use case requires attributes from the BodySite resource (e.g. to identify and track separately) then use the standard extension procedure-targetbodystructure.
The question here becomes; is there a reason for a specific model. Looking at NIM-Kroppstruktur we can see a very limited set of laterality definitions as well as a topological definition that should be covered by the body structure code. If there is a real need for this model, it can be done, otherwise using Procedure.bodySite is a firm recommendation as it better conforms to the standard.
No value set is defined in the NIM for metod.
Note that while hastighet has the type ANY, the profile restricts this to Duration.
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Other representations of profile: Schematron
Path | Conformance | ValueSet |
Procedure.language | preferred | CommonLanguages Max Binding: AllLanguages |
Procedure.status | required | EventStatus |
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) |
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT) |
Procedure.code | preferred | NIMProcedureValueSet |
Procedure.performer.function | example | ProcedurePerformerRoleCodes |
Procedure.reasonCode | required | NIMProcedureReasonValueSet |
Procedure.bodySite | example | SNOMEDCTBodyStructures |
Procedure.outcome | example | ProcedureOutcomeCodes(SNOMEDCT) |
Procedure.complication | example | Condition/Problem/DiagnosisCodes |
Procedure.followUp | example | ProcedureFollowUpCodes(SNOMEDCT) |
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodes |
Procedure.usedCode | example | FHIRDeviceTypes |
Id | Path | Details | Requirements |
dom-2 | Procedure | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | Procedure | 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 : 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() | |
dom-4 | Procedure | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | Procedure | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Procedure | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | Procedure.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Procedure.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Procedure.extension:velocity | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Procedure.extension:velocity | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Procedure.extension:body-position | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Procedure.extension:body-position | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Procedure.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Procedure.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Procedure.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.instantiatesCanonical | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.instantiatesUri | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.partOf | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.statusReason | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.performed[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.performed[x]:performedPeriod | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.recorder | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.asserter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.performer.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Procedure.performer.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Procedure.performer.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Procedure.performer.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Procedure.performer.function | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.performer.actor | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.performer.onBehalfOf | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.location | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.reasonCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.reasonReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.bodySite | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.outcome | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.report | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.complication | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.complicationDetail | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.followUp | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.focalDevice | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.focalDevice.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Procedure.focalDevice.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Procedure.focalDevice.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Procedure.focalDevice.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Procedure.focalDevice.action | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.focalDevice.manipulated | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.usedReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Procedure.usedCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |