Nationella informationsmängder
0.1 - draft

Nationella informationsmängder - Local Development build (v0.1). See the Directory of published versions

Resource Profile: Läkemedelsprodukt

Defining URL:https://informationsstruktur.socialstyrelsen.se/nim/hos/fhir/StructureDefinition/NIMMedication
Version:0.1
Name:NIMMedication
Title:Läkemedelsprodukt
Status:Active as of 2021-03-30T19:36:18+02:00
Definition:

NIM läkemedelsprodukt används för att beskriva läkemedelsprodukter som ordineras och hanteras inom hälso- och sjukvård.

Publisher:Socialstyrelsen
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

https://informationsstruktur.socialstyrelsen.se/nim/hos/fhir/StructureDefinition/NIMMedication

NIM

NIM - Läkemedelsprodukt

Notes

Fields in NIM

  • id
    The id field is a bit under-defined concerning context & usage combined with that there is no system pre-assigned for the identifier means that the id is not reliable since it can as well be an incremented integer from a local database.
  • gruppidentitet
    Since this is an identifier, a suggested system would be beneficial to correct usage.
    While the description states that this declares identification of a group of medical products, there is no definition of grouping. Is the grouping to be based on active substance or another criteria?
  • Form
    Value of form should be restricted to a coded value bound to a limited value set.
  • Styrka Value is best expressed as a quantity rather than ANY. See further discussion on Strength below.

Strength as defined in Läkemedelsprodukt in NIM

Läkemedelsprodukt (Medication) has a single name and a single form.

There is a one to many relationship between Medication and Styrka (Strength) which means that a single Medication can have many Strengths.

The natural relationship is that a Medication can contain many ingredients that have their respective strengths. Now the relationship between ingredient and strength is missing.

A recommendation would be to include ingredient/substance in the model in order to attach strength, the alternative is to enforce a 0..1 relationship, only noting the primary ingredient (not recommended).

If the idea is to have a combined name/group and a list of strengths (i.e. “Oxycodone/Naloxone” “5mg/2,5mg” or “cocillanaextrakt/senegaextrakt” “8,8mg/ml/7,8mg/ml”), structure is lost and data becomes harder to comprehend.

Mappings

Mappings

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from NLLMedication

Summary

Mandatory: 0 element (1 nested mandatory element)
Must-Support: 3 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Medication.ingredient.item[x] is sliced based on the value of type:$this

 

Other representations of profile: Schematron

Terminology Bindings

PathConformanceValueSet
Medication.languagepreferredCommonLanguages
Max Binding: AllLanguages
Medication.identifier:nplpackid.userequiredIdentifierUse
Medication.identifier:nplpackid.typeextensibleIdentifier Type Codes
Medication.identifier:varunr.userequiredIdentifierUse
Medication.identifier:varunr.typeextensibleIdentifier Type Codes
Medication.codeexampleSNOMEDCTMedicationCodes
Medication.code.codingrequiredhttp://hl7.org/fhir/uv/ips/ValueSet/whoatc-uv-ips
Medication.statusrequiredMedication Status Codes
Medication.formexampleSNOMEDCTFormCodes

Constraints

IdPathDetailsRequirements
dom-2MedicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3MedicationIf 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-4MedicationIf 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-5MedicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6MedicationA resource should have narrative for robust management
: text.`div`.exists()
ele-1Medication.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.extension:nplidAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.extension:nplidMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.extension:tradenameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.extension:tradenameMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:nplpackidAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:nplpackid.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.identifier:nplpackid.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.identifier:nplpackid.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:nplpackid.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:nplpackid.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:nplpackid.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:nplpackid.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:nplpackid.assignerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:varunrAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:varunr.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.identifier:varunr.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.identifier:varunr.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:varunr.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:varunr.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:varunr.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:varunr.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.identifier:varunr.assignerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.code.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.code.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.code.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.code.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.code.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.manufacturerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.formAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.form.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.form.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.form.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.form.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.amountAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredient.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.ingredient.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.ingredient.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.ingredient.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.ingredient.item[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredient.item[x]:itemReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredient.isActiveAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.ingredient.strengthAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.batchAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.batch.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.batch.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.batch.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Medication.batch.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Medication.batch.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Medication.batch.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())