Skip to content

Commit

Permalink
FHIR-46365 - Consolidate and simplify additional SNOMED CT based valu…
Browse files Browse the repository at this point in the history
…e sets (including ECL definition in the description text). Also update LOINC value sets and definitions for results-laboratory-pathology-observations-uv-ips and results-radiology-observations-uv-ips. Further work still to be done.
  • Loading branch information
rhausam committed Jul 30, 2024
1 parent b3f82c8 commit 4110948
Show file tree
Hide file tree
Showing 47 changed files with 199 additions and 6,875 deletions.
2 changes: 1 addition & 1 deletion input/fsh/profiles/AllergyIntoleranceUvIps.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ It documents the relevant allergies or intolerances (conditions) for a patient,
* code ^binding.extension[=].extension[+].url = "documentation"
* code ^binding.extension[=].extension[=].valueMarkdown = "Type of the substance/product, allergy or intolerance condition."
* code ^binding.extension[=].url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* code ^binding.description = "Type of the substance/product, allergy or intolerance condition or a code for absent allergy."
* code ^binding.description = "Type of the substance/product, allergy or intolerance condition or a code for absent/unknown allergy."
* patient only Reference(PatientUvIps)
* patient MS
* patient.reference 1.. MS
Expand Down
4 changes: 2 additions & 2 deletions input/fsh/profiles/ConditionUvIps.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ Description: "This profile represents the constraints applied to the Condition r
* code 1..1 MS
* code only CodeableConceptIPS
* code from ProblemsUvIps (preferred)
* code ^definition = "Identification of the condition, problem or diagnosis or recording of absent problems."
* code ^binding.description = "Code for a clinical problem (or absent problem) that is selected from SNOMED CT"
* code ^definition = "Identification of the condition, problem or diagnosis or recording of absent/unknown problems."
* code ^binding.description = "Code for a clinical problem (or absent/unknown problem) that is selected from SNOMED CT"
* bodySite only CodeableConceptIPS
* bodySite from SNOMEDCTBodyStructures (example)
* bodySite ^binding.extension[0].url = "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName"
Expand Down
11 changes: 2 additions & 9 deletions input/fsh/profiles/DeviceUvIps.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,8 @@ Description: "This profile represents the constraints applied to the Device reso
* . ^comment = "This profile applies the rules defined by HL7 International for representing the UDI in the FHIR standard, by the document \"Medical Devices and Unique Device Identification (UDI) Pattern, Release 1\""
* type 0..1 MS
* type only CodeableConceptIPS
* type from MedicalDevicesSnomedAbsentUnknownUvIps (preferred)
* type ^short = "Type of device.\r\nPreferably valued by using SNOMED CT.\r\nThe absence of information, or of devices relevant for purpose of this IPS, shall be explicitly stated by using the codes included in the absent-or-unknown-devices-uv-ips value set."
* type ^binding.extension.extension[0].url = "purpose"
* type ^binding.extension.extension[=].valueCode = #candidate
* type ^binding.extension.extension[+].url = "valueSet"
* type ^binding.extension.extension[=].valueCanonical = "http://hl7.org/fhir/uv/ips/ValueSet/medical-devices-snomed-ct-ips-free-set"
* type ^binding.extension.extension[+].url = "documentation"
* type ^binding.extension.extension[=].valueMarkdown = "Codes for medical devices in SNOMED IPS Free Set"
* type ^binding.extension.url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* type from MedicalDevicesUvIps (preferred)
* type ^short = "Type of device."
* type ^binding.description = "The type of device or a code for absent/unknown device"
* patient 1.. MS
* patient only Reference(PatientUvIps)
Expand Down
11 changes: 2 additions & 9 deletions input/fsh/profiles/MedicationIPS.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,17 @@ Description: "This profile represents the constraints applied to the Medication
* . ^comment = "IPS Medication"
* code 1..1 MS
* code only CodeableConceptIPS
* code from MedicationSnomedCodesAbsentUnknown (preferred)
* code from MedicationsUvIps (preferred)
* code ^short = "Medication that was administered or was to be administered (medication code from any code system)"
* code ^definition = "Medication that was administered or was to be administered. \r\n\r\nSeveral kinds of medication coding could be provided as:\r\n\r\n1. The IDMP Pharmaceutical Product Identifier (PhPID), Level 1, [Substance(s)]. Example: Amoxicillin and Clavulanate Potassium; or any other equivalent coded concept;\r\n2. The IDMP Pharmaceutical Product Identifier (PhPID), Level 2 [Substance(s) + Strength + reference strength]. Example: Amoxicillin 875 mg and Clavulanate Potassium 125 mg; or any other equivalent coded concept;\r\n3. The IDMP Pharmaceutical Product Identifier (PhPID), Level 3 [Substance(s) + administrable dose form]. Example: Amoxicillin and Clavulanate Potassium, Oral Tablet; or any other equivalent coded concept;\r\n4. The IDMP Pharmaceutical Product Identifier (PhPID), Level 4 [Substance(s) + strength + reference strength + administrable dose form]. Example: Amoxicillin 875 mg and clavulanate potassium 125 mg, oral tablet; or any other equivalent coded concept 5. The IDMP Medicinal Product Identifier (MPID) or any equivalent Medicinal Product Identifier. IDMP MPID uniquely identifies a Medicinal Product, reflecting (but not replacing) any other authorization numbers allocated by a regulator. MPID implies one (set of) PhPID. The MPID shall use a common segment pattern related to a Medicinal Product, which, when each segment is valued shall define a specific MPID concept.\r\n6. The IDMP Packaged Medicinal Product Identifier (PCID) or any equivalent Packaged Medicinal Product Identifier. Uniquely identifies a Medicinal Product based on its packaging. This implies one MPID can be associated with more than one PCID, if the same Medicinal Product has more than one type of package.\r\n7. Any other kind of code that that identifies, classifies or cluster the administered product (e.g. the medicinal product or the product class)\r\n\r\nThe value sets used for the PhPID, MPID and PCID identifiers are provisional and include only few equivalent concepts used for exemplification purposes, they will be updated with real IDMP identifiers when they will become available."
* code ^binding.extension[0].extension[0].url = "purpose"
* code ^binding.extension[=].extension[=].valueCode = #candidate
* code ^binding.extension[=].extension[+].url = "valueSet"
* code ^binding.extension[=].extension[=].valueCanonical = "http://hl7.org/fhir/uv/ips/ValueSet/medications-snomed-ct-ips-free-set"
* code ^binding.extension[=].extension[+].url = "documentation"
* code ^binding.extension[=].extension[=].valueMarkdown = "SNOMED medication terms available in IPS Free Set"
* code ^binding.extension[=].url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* code ^binding.extension[+].extension[0].url = "purpose"
* code ^binding.extension[=].extension[=].valueCode = #candidate
* code ^binding.extension[=].extension[+].url = "valueSet"
* code ^binding.extension[=].extension[=].valueCanonical = "http://hl7.org/fhir/uv/ips/ValueSet/whoatc-uv-ips"
* code ^binding.extension[=].extension[+].url = "documentation"
* code ^binding.extension[=].extension[=].valueMarkdown = "WHO ATC classification"
* code ^binding.extension[=].url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* code ^binding.description = "SNOMED CT medications (Pharmaceutical / biologic product) or a code for absent/unknown medication"
* code ^binding.description = "SNOMED CT medications (Medicinal product) or a code for absent/unknown medication"
* form only CodeableConceptIPS
* form MS
* form from MedicineDoseFormUvIps (preferred)
Expand Down
4 changes: 2 additions & 2 deletions input/fsh/profiles/MedicationRequestIPS.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ Description: "This profile represents the constraints applied to the MedicationR
* status ^comment = "In the scope of the IPS the entered-in-error concept is not allowed."
* medication[x] only CodeableConcept or Reference(MedicationIPS)
* medication[x] MS
* medication[x] from MedicationSnomedCodesAbsentUnknown (preferred)
* medication[x] from MedicationsUvIps (preferred)
* medication[x] ^definition = "Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code. To improve global interoperability is strongly encouraged that the reference to a medication resource is used, limiting the usage of the medicationCodeableConcept only to the cases in which no other information than a simple code is available."
* medication[x] ^binding.description = "SNOMED CT medications (Pharmaceutical / biologic product) or a code for absent/unknown medication"
* medication[x] ^binding.description = "SNOMED CT medications (Medicinal product) or a code for absent/unknown medication"
* subject only Reference(PatientUvIps)
* subject MS
* subject.reference 1.. MS
Expand Down
4 changes: 2 additions & 2 deletions input/fsh/profiles/MedicationStatementIPS.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ Description: "This profile represents the constraints applied to the MedicationS
* status ^comment = "In the scope of the IPS the entered-in-error concept is not allowed."
* medication[x] only CodeableConceptIPS or Reference(MedicationIPS)
* medication[x] MS
* medication[x] from MedicationSnomedCodesAbsentUnknown (preferred)
* medication[x] from MedicationsUvIps (preferred)
* medication[x] ^definition = "Identifies the medication being administered or the reason for absent or unknown Medication. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code. To improve global interoperability is strongly encouraged that the reference to a medication resource is used, limiting the usage of the medicationCodeableConcept only to the cases in which no other information than a simple code is available."
* medication[x] ^binding.description = "SNOMED CT medications (Pharmaceutical / biologic product) or a code for absent/unknown medication"
* medication[x] ^binding.description = "SNOMED CT medications (Medicinal product) or a code for absent/unknown medication"
* subject only Reference(PatientUvIps)
* subject MS
* subject.reference 1.. MS
Expand Down
21 changes: 0 additions & 21 deletions input/fsh/profiles/ObservationResultsLaboratoryPathologyUvIps.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -54,27 +54,6 @@ This observation may represent the result of a simple laboratory test such as he
* valueCodeableConcept MS
* valueCodeableConcept only CodeableConceptIPS
* valueCodeableConcept from ResultsCodedValuesLaboratoryPathologyUvIps (preferred)
* valueCodeableConcept ^binding.extension[0].extension[0].url = "purpose"
* valueCodeableConcept ^binding.extension[=].extension[=].valueCode = #candidate
* valueCodeableConcept ^binding.extension[=].extension[+].url = "valueSet"
* valueCodeableConcept ^binding.extension[=].extension[=].valueCanonical = "http://hl7.org/fhir/uv/ips/ValueSet/results-blood-group-snomed-ct-ips-free-set"
* valueCodeableConcept ^binding.extension[=].extension[+].url = "documentation"
* valueCodeableConcept ^binding.extension[=].extension[=].valueMarkdown = "Additional conformance binding to a blood group findings value set for laboratory result values from the SNOMED CT IPS free set for use globally (in SNOMED member and non-member jurisdictions)."
* valueCodeableConcept ^binding.extension[=].url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* valueCodeableConcept ^binding.extension[+].extension[0].url = "purpose"
* valueCodeableConcept ^binding.extension[=].extension[=].valueCode = #candidate
* valueCodeableConcept ^binding.extension[=].extension[+].url = "valueSet"
* valueCodeableConcept ^binding.extension[=].extension[=].valueCanonical = "http://hl7.org/fhir/uv/ips/ValueSet/results-presence-absence-snomed-ct-ips-free-set"
* valueCodeableConcept ^binding.extension[=].extension[+].url = "documentation"
* valueCodeableConcept ^binding.extension[=].extension[=].valueMarkdown = "Additional conformance binding to a presence and absence findings (qualifier values) value set for laboratory result values from the SNOMED CT IPS free set for use globally (in SNOMED member and non-member jurisdictions)."
* valueCodeableConcept ^binding.extension[=].url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* valueCodeableConcept ^binding.extension[+].extension[0].url = "purpose"
* valueCodeableConcept ^binding.extension[=].extension[=].valueCode = #candidate
* valueCodeableConcept ^binding.extension[=].extension[+].url = "valueSet"
* valueCodeableConcept ^binding.extension[=].extension[=].valueCanonical = "http://hl7.org/fhir/uv/ips/ValueSet/results-microorganism-snomed-ct-ips-free-set"
* valueCodeableConcept ^binding.extension[=].extension[+].url = "documentation"
* valueCodeableConcept ^binding.extension[=].extension[=].valueMarkdown = "Additional conformance binding to a microorganisms value set for laboratory result values from the SNOMED CT IPS free set for use globally (in SNOMED member and non-member jurisdictions)."
* valueCodeableConcept ^binding.extension[=].url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* interpretation only CodeableConceptIPS
* specimen only Reference(SpecimenUvIps)
* hasMember only Reference(ObservationResultsLaboratoryPathologyUvIps)
Expand Down
8 changes: 4 additions & 4 deletions input/fsh/profiles/ObservationResultsRadiologyUvIps.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -84,31 +84,31 @@ It allows also providing details about the related study using the partOf elemen
* component[observationCode].value[x] only CodeableConceptIPS
* component[numericQuantityMeasurement] ^short = "Observation Measurement, including linear, area and volume quantity measurements"
* component[numericQuantityMeasurement].code only CodeableConceptIPS
* component[numericQuantityMeasurement].code from ResultsRadiologyMeasurementObservationSnomedDicomUvIps (extensible)
* component[numericQuantityMeasurement].code from ResultsRadiologyMeasurementObservationUvIps (extensible)
* component[numericQuantityMeasurement].code ^binding.extension.url = "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName"
* component[numericQuantityMeasurement].code ^binding.extension.valueString = "ObservationMeasurements"
* component[numericQuantityMeasurement].code ^binding.description = "Codes identifying numeric measurements"
* component[numericQuantityMeasurement].value[x] 1..
* component[numericQuantityMeasurement].value[x] only QuantityIPS
* component[numericRangeMeasurement] ^short = "Observation Measurement, including linear, area and volume range measurements"
* component[numericRangeMeasurement].code only CodeableConceptIPS
* component[numericRangeMeasurement].code from ResultsRadiologyMeasurementObservationSnomedDicomUvIps (extensible)
* component[numericRangeMeasurement].code from ResultsRadiologyMeasurementObservationUvIps (extensible)
* component[numericRangeMeasurement].code ^binding.extension.url = "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName"
* component[numericRangeMeasurement].code ^binding.extension.valueString = "ObservationMeasurements"
* component[numericRangeMeasurement].code ^binding.description = "Codes identifying numeric measurements"
* component[numericRangeMeasurement].value[x] 1..
* component[numericRangeMeasurement].value[x] only RangeIPS
* component[numericRatioMeasurement] ^short = "Observation Measurement, including linear, area and volume ratio measurements"
* component[numericRatioMeasurement].code only CodeableConceptIPS
* component[numericRatioMeasurement].code from ResultsRadiologyMeasurementObservationSnomedDicomUvIps (extensible)
* component[numericRatioMeasurement].code from ResultsRadiologyMeasurementObservationUvIps (extensible)
* component[numericRatioMeasurement].code ^binding.extension.url = "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName"
* component[numericRatioMeasurement].code ^binding.extension.valueString = "ObservationMeasurements"
* component[numericRatioMeasurement].code ^binding.description = "Codes identifying numeric measurements"
* component[numericRatioMeasurement].value[x] 1..
* component[numericRatioMeasurement].value[x] only RatioIPS
* component[numericSampledDataMeasurement] ^short = "Observation Measurement, including linear, area and volume sampled data measurements"
* component[numericSampledDataMeasurement].code only CodeableConceptIPS
* component[numericSampledDataMeasurement].code from ResultsRadiologyMeasurementObservationSnomedDicomUvIps (extensible)
* component[numericSampledDataMeasurement].code from ResultsRadiologyMeasurementObservationUvIps (extensible)
* component[numericSampledDataMeasurement].code ^binding.extension.url = "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName"
* component[numericSampledDataMeasurement].code ^binding.extension.valueString = "ObservationMeasurements"
* component[numericSampledDataMeasurement].code ^binding.description = "Codes identifying numeric measurements"
Expand Down
9 changes: 1 addition & 8 deletions input/fsh/profiles/ProcedureUvIps.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,8 @@ Description: "This profile represents the constraints applied to the Procedure r
* ^jurisdiction = $m49.htm#001
* code 1..1 MS
* code only CodeableConceptIPS
* code from ProceduresSnomedAbsentUnknownUvIps (preferred)
* code from ProceduresUvIps (preferred)
* code ^definition = "Identification of the procedure or recording of \"absence of relevant procedures\" or of \"procedures unknown\"."
* code ^binding.extension.extension[0].url = "purpose"
* code ^binding.extension.extension[=].valueCode = #candidate
* code ^binding.extension.extension[+].url = "valueSet"
* code ^binding.extension.extension[=].valueCanonical = "http://hl7.org/fhir/uv/ips/ValueSet/procedures-snomed-ct-ips-free-set"
* code ^binding.extension.extension[+].url = "documentation"
* code ^binding.extension.extension[=].valueMarkdown = "Codes for procedures in SNOMED IPS Free Set"
* code ^binding.extension.url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* code ^binding.description = "SNOMED CT procedure code set or a code for absent/unknown procedure"
* subject only Reference(PatientUvIps)
* subject MS
Expand Down
7 changes: 0 additions & 7 deletions input/fsh/profiles/SpecimenUvIps.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,6 @@ Description: "This profile constrains the Specimen resource to represent the cha
* type 1..
* type only CodeableConceptIPS
* type from ResultsSpecimenTypeUvIps (preferred)
* type ^binding.extension[0].extension[0].url = "purpose"
* type ^binding.extension[=].extension[=].valueCode = #candidate
* type ^binding.extension[=].extension[+].url = "valueSet"
* type ^binding.extension[=].extension[=].valueCanonical = "http://hl7.org/fhir/uv/ips/ValueSet/results-specimen-type-snomed-ct-ips-free-set"
* type ^binding.extension[=].extension[+].url = "documentation"
* type ^binding.extension[=].extension[=].valueMarkdown = "Additional conformance binding to a specimen type value set from the SNOMED CT IPS free set for use globally (in SNOMED member and non-member jurisdictions)."
* type ^binding.extension[=].url = "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
* type ^binding.extension[+].url = "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName"
* type ^binding.extension[=].valueString = "SpecimenType"
* subject only Reference(PatientUvIps)
Expand Down
5 changes: 3 additions & 2 deletions input/fsh/valuesets/AllergyIntoleranceUvIps.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ ValueSet: AllergyIntoleranceUvIps
Id: allergy-intolerance-uv-ips
Title: "Allergy Intolerance - IPS"
Description: """
IPS Allergy intolerance codes value set. This value set includes codes from SNOMED CT®: all descendants of 373873005 \|Pharmaceutical / biologic product (product)\|; all descendants of 105590001 \|Substance (substance)\|; all descendants of 420134006 \|Propensity to adverse reaction (finding)\|; all descendants or self of 716186003 \|No known allergy (situation)\.
IPS Allergy intolerance codes value set. This value set includes codes from SNOMED CT®: all descendants of 373873005 \|Pharmaceutical / biologic product (product)\|; all descendants of 105590001 \|Substance (substance)\|; all descendants of 420134006 \|Propensity to adverse reaction (finding)\|; all descendants or self of 716186003 \|No known allergy (situation)\|

SNOMED CT® ECL definition: < 373873005 \|Pharmaceutical / biologic product (product)\| OR < 105590001 \|Substance (substance)\| OR < 420134006 \|Propensity to adverse reaction (finding)\| OR \<\< 716186003 \|No known allergy (situation)\|
SNOMED CT® ECL definition:\
< 373873005 \|Pharmaceutical / biologic product (product)\| OR < 105590001 \|Substance (substance)\| OR < 420134006 \|Propensity to adverse reaction (finding)\| OR \<\< 716186003 \|No known allergy (situation)\|
"""
* ^meta.profile = "http://hl7.org/fhir/StructureDefinition/shareablevalueset"
* ^status = #active
Expand Down
Loading

0 comments on commit 4110948

Please sign in to comment.