From 8060e754dcd7dafb85230c352af0efb3085f84f8 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Tue, 18 Jun 2024 08:39:29 +0200 Subject: [PATCH 01/13] based on v0.23 #48 --- .../BeModelDiagnosticReportDiabetes.fsh | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 input/fsh/logicals/BeModelDiagnosticReportDiabetes.fsh diff --git a/input/fsh/logicals/BeModelDiagnosticReportDiabetes.fsh b/input/fsh/logicals/BeModelDiagnosticReportDiabetes.fsh new file mode 100644 index 0000000..cffa305 --- /dev/null +++ b/input/fsh/logicals/BeModelDiagnosticReportDiabetes.fsh @@ -0,0 +1,20 @@ +Logical: BeModelDiagnosticReportDiabetes +* UniqueIdentifierNational 1..1 Identifier "Unique business identifier of the report.(https://docs.google.com/document/d/13qamEPfdQ2HgUiXmjwHQNchpEU3LsQHF5MN9jKufX2g/edit?usp=sharing)." +* BusinessIdentifier 0..1 Identifier "Report identifier for the internal supplier's business." +* RecordedDate 1..1 dateTime "Date the report was produced." +* ObservationPeriod 1..1 Period "From date to date corresponding to the period covered by the report. Typically 14 to 30 days. See 2.1 above, Figure 3 Data relationship logic." +* Patient 1..1 Identifier "We refer to the patient, subject of the report, by his unique identifier.This identifier is preferably the patient's national register number (NISS). In some cases, another unique identifier may be allowed." +* Recorder 1..1 Identifier "This refers to the service provider or organization that encodes the information.[1] The unique identifier for each natural person is the NISS, while for each organization the business number serves as the unique identifier." +* Performer 1..1 Identifier "We refer to the service provider or organization that collects the observations and produces the report. [2]The unique identifier of each natural person is the NISS, while for each organization the company number serves as the unique identifier.For the Diabetes Diagnostic Report, it is: “performer = recorder.»" +* Interpreter 0..1 Identifier "Care provider identified by their NISS (endocrinologist* , general practitioner, etc.) interprets the observations in the report. ResultsInterpreter This element will not be provided by the producer of the report, but will include the reference of the healthcare provider who does the interpretation." +* Category 1..1 CodeableConcept "Category of the report. For the purposes of the diabetes report, the only accepted category is “Endocrinology”.SNOMED CT code 394483002 invariant, see VS_DiagRep_Category." +* Qualification 1..1 CodeableConcept "Is the category of diabetic patient (CAT 1, CAT 2, CAT 3). (See glossary for details).By default, the qualification is “CAT 3”.The category is calculated by an algorithm from the diagnosis provided by the doctor — interpreter." +* Device 0..1 Identifier "Identification number assigned by INAMI to the sensor type.See VS_Diab_Device" +* Code 1..1 CodeableConcept "Report code. As part of the diabetes project, the only accepted code is “Diabetic Monitoring Status”SNOMED CT code 243860001 invariant, see VS_DiagRep_Code." +* DerivedObservations 0..* Observation "List of references to “derived values” type observations (a dozen derived observations) mentioned in the report.[3]His observations are part of the diagnostic report." +* MeasurementObservations 0..* Observation "List of references to “blood glucose measurement” type observations used to produce the analysis (a few thousand measurements) [4] type (“SCI”)[5]" +* Diagnosis 0..* Condition "Problem reference related to this diagnostic report.This element will not be provided by the producer of the report but will be provided by the healthcare provider who does the interpretation." +* Note 0..* Annotation "Report comments in free text format. This element will not be provided by the producer of the report, but will be provided by the healthcare provider doing the interpretation." +* Link 0..1 uri "URL to the reference software." +* Document 0..1 Binary "PDF document containing the complete report (text, graphics, deduced observations, conclusions, etc.)" +* Status 0..1 code "Report status. By default it is “Final”. Value according to the business rule on “% Data Captured” see VS_DiagRep_Status" \ No newline at end of file From 7225262b31047db7d024d7f36a44bf6ad1e955af Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Tue, 18 Jun 2024 10:55:38 +0200 Subject: [PATCH 02/13] Create BeModelDiabetesObservation.fsh --- .../logicals/BeModelDiabetesObservation.fsh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 input/fsh/logicals/BeModelDiabetesObservation.fsh diff --git a/input/fsh/logicals/BeModelDiabetesObservation.fsh b/input/fsh/logicals/BeModelDiabetesObservation.fsh new file mode 100644 index 0000000..1ac79d2 --- /dev/null +++ b/input/fsh/logicals/BeModelDiabetesObservation.fsh @@ -0,0 +1,19 @@ +Logical: BeModelObservationDiabetes +* UniqueIdentifier 1..1 Identifier "Unique observation business identifier." +* ObservationType 1..1 CodeableConcept "Indicates whether the observation is a derived measurement or is a base measurement. See hl7VS-VS-observationType. “RSLT” / “SCI”" +* RecordedDate 1..1 dateTime "Date of encoding of the observation by the Recorder. (DateTime format) See management rule 13." +* ObservationPeriod 1..1 Period "Date or observation period (e.g. 27/11/2023) (DateTime format)" +* Patient 1..1 Identifier "Is the unique identifier of the patient. The unique identifier must be the National Patient Register Number (NISS) [1]." +* Recorder 1..1 Identifier " Is the unique identifier (national register number)[1] of the health professional or organization (company number) which encodes the information and takes responsibility for its content." +* Performer 1..1 Identifier "The unique identifier of the provider (NISS) [2] or organization (company number) which collects the observations. For the Diabetes project: performer = recorder." +* Category 1..1 CodeableConcept "698472009 “Glucose monitoring” (FR) (invariant)See VS_Obs_Dia_Category " +* Device 1..1 Identifier "Identification number assigned by INAMI to the type of sensor. See VS_Diab_Device Device" +* Diagnosis 0..1 Reference(Condition) "Not applicable in the context of the diabetes project Problem" +* Status 0..1 code "445665009 “Final report” - invariant. See VS_Obs_Diab_Status Status" +* Code 1..1 CodeableConcept "Code corresponding to the derived value (coding to be established by SNOMED CT). Ex: AGP-PGATAR Time Above Range, TIR Time In Range…See VS_Obs_Diab_Code" +* Value 1..1 Quantity "Derived value. Value[x]" +* ReferenceRange 0..* Range "Structure composed of reference elements allowing the interpretation of measurements:·        ReferenceRange.Low (0...1)·        ReferenceRange.High (0...1)·        ReferenceRange.AppliesTo (0...*)We automatically work according to the ADA standards which define target value intervals for the following derived observations: Coded1 Coefficient of Variation2 Days Sensor Worn3% Data Captured4 TAR % (Time above range - very high)5 TAR % (Time above range - high)6 SHOOTING % (Time in Range)7 TBR % (Time below range - low)8 TBR % (Time below range - very low)By observation code derived from this list, we will potentially find:A) Target - reference interval to indicate the target lower limit (“Low”) and upper limit (“High”).Note that these limits do not depend on the diabetes category.For example: for TIR, it is recommended that the blood glucose value be at least 70% of the time in the “normal” range.So for ReferenceRange “TIR_REF”→ TIR_REF.Low = 70%→ TIR_REF.High = 100%B) filter - application interval with a lower limit and an upper limit to filter the measurement observations considered in the calculation of the derived value. This defines the range of counted values. These ranges may vary by diabetes category.For example: the “normal” range is between 70 mg/dL and 180 mg/dL for category 1 and 3, and between 63 mg/dL and 140 mg/dL for category 2.So for ReferenceRange “TIR_REF”→ TIR_REF.AppliesTo(CAT1, ≥70 mg/dL, ≤180 mg/dL)→ TIR_REF.AppliesTo(CAT2, ≥63 mg/dL, ≤140 mg/dL)→ TIR_REF.AppliesTo(CAT3, ≥70 mg/dL, ≤180 mg/dL)As we base ourselves on ADA standards, there is little point in passing all this information for each observation.If, however, a doctor changes values ​​(target and/or filter) for a specific patient AND you want to communicate these changes outside of your patient file, this mechanism provides the means.See VS_Obs_Diab_Ref " +* Conclusion 0..1 string "Not applicable for the diabetes project Conclusion" +* BodyLocalisation 0..1 CodeableConcept " Not application for the diabetes project BodyLocalisation" +* BodyLaterality 0..1 CodeableConcept "Not application for the diabetes project BodyLaterality" +* Note 0..* Annotation "Not applicable for the diabetes project" \ No newline at end of file From 31dded987f9dcf00f8c6dfb98e97ef200f85d258 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Fri, 2 Aug 2024 17:49:09 +0200 Subject: [PATCH 03/13] first version of diabetes profiles --- .../be-ns-diagnostic-report-diabetes.fsh | 10 ++++++ ...ns-nihdi-diagnostic-observation-device.fsh | 10 ++++++ .../profiles/BeDiagnosticReportDiabetes.fsh | 34 +++++++++++++++++++ input/fsh/profiles/BeObservationDiabetes.fsh | 28 +++++++++++++++ sushi-config.yaml | 18 ++++++---- 5 files changed, 94 insertions(+), 6 deletions(-) create mode 100644 input/fsh/namingsystems/be-ns-diagnostic-report-diabetes.fsh create mode 100644 input/fsh/namingsystems/be-ns-nihdi-diagnostic-observation-device.fsh create mode 100644 input/fsh/profiles/BeDiagnosticReportDiabetes.fsh create mode 100644 input/fsh/profiles/BeObservationDiabetes.fsh diff --git a/input/fsh/namingsystems/be-ns-diagnostic-report-diabetes.fsh b/input/fsh/namingsystems/be-ns-diagnostic-report-diabetes.fsh new file mode 100644 index 0000000..9b65c36 --- /dev/null +++ b/input/fsh/namingsystems/be-ns-diagnostic-report-diabetes.fsh @@ -0,0 +1,10 @@ +Instance: be-ns-diagnostic-report-diabetes +InstanceOf: NamingSystem +Usage: #definition +* name = "BeNSDiagnosticReportDiabetes" +* status = #active +* kind = #identifier +* date = "2024" +* uniqueId[+].type = #uri +* uniqueId[=].value = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" +* uniqueId[=].preferred = true \ No newline at end of file diff --git a/input/fsh/namingsystems/be-ns-nihdi-diagnostic-observation-device.fsh b/input/fsh/namingsystems/be-ns-nihdi-diagnostic-observation-device.fsh new file mode 100644 index 0000000..1f98d7d --- /dev/null +++ b/input/fsh/namingsystems/be-ns-nihdi-diagnostic-observation-device.fsh @@ -0,0 +1,10 @@ +Instance: be-ns-nihdi-diagnostic-observation-device +InstanceOf: NamingSystem +Usage: #definition +* name = "BeNSNIHDIDiagnosticObservationDevice" +* status = #active +* kind = #identifier +* date = "2024" +* uniqueId[+].type = #uri +* uniqueId[=].value = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-nihdi-diagnostic-observation-device" +* uniqueId[=].preferred = true \ No newline at end of file diff --git a/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh b/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh new file mode 100644 index 0000000..0960cc9 --- /dev/null +++ b/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh @@ -0,0 +1,34 @@ +Profile: BeDiagnosticReportDiabetes +Parent: DiagnosticReport +Id: be-diagnostic-report-diabetes +* identifier ^slicing.discriminator.type = #value +* identifier ^slicing.discriminator.path = "system" +* identifier ^slicing.rules = #open +* identifier contains UUID 1..1 MS +* identifier[UUID].system = "http://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" +* extension contains BeExtRecordedDate named recorded-date 0..1 MS and + BeExtRecorder named recorder 1..1 MS and + BeExtCodeableReference named device 0..1 MS and + BeExtSimpleNote named note 0..* MS and + http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo named supportingInfo 0..* MS +* extension[device].extension[concept].valueCodeableConcept 1..1 MS +* extension[device].extension[concept].valueCodeableConcept.coding.system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-nihdi-diagnostic-observation-device" +* effective[x] only Period +* effectivePeriod MS +* effectivePeriod.start 1..1 MS +* effectivePeriod.end 1..1 MS +* resultsInterpreter only Reference(BePractitionerRole or BePractitioner) +* resultsInterpreter 0..1 MS +* category 1..1 MS +* category = $sct#394483002 +* code 1..1 MS +* code = $sct#243860001 +* result ^slicing.discriminator.type = #value +* result ^slicing.discriminator.path = "reference.resolve().code" +* result ^slicing.rules = #open +* result MS +* result only Reference(BeObservation) +* conclusion MS +* presentedForm MS +* presentedForm.contentType = #"application/pdf" +* status MS diff --git a/input/fsh/profiles/BeObservationDiabetes.fsh b/input/fsh/profiles/BeObservationDiabetes.fsh new file mode 100644 index 0000000..8604242 --- /dev/null +++ b/input/fsh/profiles/BeObservationDiabetes.fsh @@ -0,0 +1,28 @@ +Profile: BeObservationDiabetes +Parent: BeObservation +Id: be-observation-diabetes +* identifier ^slicing.discriminator.type = #value +* identifier ^slicing.discriminator.path = "system" +* identifier ^slicing.rules = #open +* identifier contains UUID 1..1 MS +* identifier[UUID].system = "http://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" + +* extension contains BeExtRecordedDate named recorded-date 0..1 MS and + http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo.type named type 1..1 MS and + BeExtRecorder named recorder 1..1 MS +* effective[x] only Period +* effectivePeriod MS +* effectivePeriod.start 1..1 MS +* effectivePeriod.end 1..1 MS +* subject 1..1 MS +* subject only Reference(BePatient) +* performer 1..1 MS +* performer only Reference(BePractitioner or BePractitionerRole) +* category 1..1 MS +* category = $sct#698472009 +* status 1..1 MS +//* status = $sct#445665009 +* code 1..1 MS +* value[x] 1..1 MS +* referenceRange MS +* device 0..1 MS \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index e37037f..dbaf9b2 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -13,10 +13,10 @@ url: https://www.ehealth.fgov.be/standards/fhir/core-clinical name: Transversal Clinical Core title: "HL7 FHIR Implementation Guide: Transversal Clinical Core" description: "HL7 FHIR Implementation Guide: Transversal Clinical Core" -status: active +status: draft license: CC0-1.0 date: 2020-02-26 -version: 1.0.1 +version: 1.2.0 # Although fhirVersions is 0..* in the ImplementationGuide resource # it can be a single item OR and array here (but so far SUSHI only @@ -164,9 +164,14 @@ menu: Home: index.html Guidance: guidance.html Artifacts: - Profiles: artifacts.html#2 - Extensions: artifacts.html#3 - Value Sets: artifacts.html#4 + Logical Models: artifacts.html#structures-logical-models + Profiles: artifacts.html#structures-resource-profiles + Data Types: artifacts.html#structures-data-type-profiles + Extensions: artifacts.html#structures-extension-definitions + Value Sets: artifacts.html#terminology-value-sets + Code Systems: artifacts.html#terminology-code-systems + Naming Systems: artifacts.html#terminology-naming-systems + Examples: artifacts.html#example-example-instances Downloads: downloads.html # History: http://hl7.org/fhir/us/example/history.html @@ -198,4 +203,5 @@ FSHOnly: false dependencies: - hl7.fhir.be.core: current \ No newline at end of file + hl7.fhir.be.core: current$issue-133 + hl7.fhir.extensions.r5: 4.0.1 \ No newline at end of file From f6c2eac367757783721666d41b42c946a4617275 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Wed, 25 Sep 2024 16:20:09 +0200 Subject: [PATCH 04/13] updates from Business Rules V1.09 --- input/fsh/aliases.fsh | 4 +++- .../logicals/BeModelDiabetesObservation.fsh | 18 +++++++-------- .../BeModelDiagnosticReportDiabetes.fsh | 6 ++--- .../be-ns-diabetes-device-type.fsh | 11 ++++++++++ ...ns-nihdi-diagnostic-observation-device.fsh | 10 --------- .../profiles/BeDiagnosticReportDiabetes.fsh | 11 +++++----- input/fsh/profiles/BeObservationDiabetes.fsh | 13 ++++++----- .../BeVSDiabetesObservationCategory.fsh | 9 ++++++++ .../valuesets/BeVSDiabetesObservationCode.fsh | 22 +++++++++++++++++++ .../BeVSDiabetesObservationStatus.fsh | 8 +++++++ .../valuesets/BeVSDiabetesReportCategory.fsh | 9 ++++++++ .../fsh/valuesets/BeVSDiabetesReportCode.fsh | 7 ++++++ .../valuesets/BeVSDiabetesReportStatus.fsh | 8 +++++++ 13 files changed, 102 insertions(+), 34 deletions(-) create mode 100644 input/fsh/namingsystems/be-ns-diabetes-device-type.fsh delete mode 100644 input/fsh/namingsystems/be-ns-nihdi-diagnostic-observation-device.fsh create mode 100644 input/fsh/valuesets/BeVSDiabetesObservationCategory.fsh create mode 100644 input/fsh/valuesets/BeVSDiabetesObservationCode.fsh create mode 100644 input/fsh/valuesets/BeVSDiabetesObservationStatus.fsh create mode 100644 input/fsh/valuesets/BeVSDiabetesReportCategory.fsh create mode 100644 input/fsh/valuesets/BeVSDiabetesReportCode.fsh create mode 100644 input/fsh/valuesets/BeVSDiabetesReportStatus.fsh diff --git a/input/fsh/aliases.fsh b/input/fsh/aliases.fsh index 1b0cb66..c3ef812 100644 --- a/input/fsh/aliases.fsh +++ b/input/fsh/aliases.fsh @@ -1 +1,3 @@ -Alias: $sct = http://snomed.info/sct|http://snomed.info/sct/11000172109 \ No newline at end of file +Alias: $sct = http://snomed.info/sct|http://snomed.info/sct/11000172109 +Alias: $sct_uk = http://snomed.info/sct|http://snomed.info/sct/999003121000000100 +Alias: $loinc = http://loinc.org \ No newline at end of file diff --git a/input/fsh/logicals/BeModelDiabetesObservation.fsh b/input/fsh/logicals/BeModelDiabetesObservation.fsh index 1ac79d2..5a8090c 100644 --- a/input/fsh/logicals/BeModelDiabetesObservation.fsh +++ b/input/fsh/logicals/BeModelDiabetesObservation.fsh @@ -1,19 +1,19 @@ Logical: BeModelObservationDiabetes * UniqueIdentifier 1..1 Identifier "Unique observation business identifier." -* ObservationType 1..1 CodeableConcept "Indicates whether the observation is a derived measurement or is a base measurement. See hl7VS-VS-observationType. “RSLT” / “SCI”" +//* ObservationType 1..1 CodeableConcept "Indicates whether the observation is a derived measurement or is a base measurement. See hl7VS-VS-observationType. “RSLT” / “SCI”" * RecordedDate 1..1 dateTime "Date of encoding of the observation by the Recorder. (DateTime format) See management rule 13." * ObservationPeriod 1..1 Period "Date or observation period (e.g. 27/11/2023) (DateTime format)" * Patient 1..1 Identifier "Is the unique identifier of the patient. The unique identifier must be the National Patient Register Number (NISS) [1]." * Recorder 1..1 Identifier " Is the unique identifier (national register number)[1] of the health professional or organization (company number) which encodes the information and takes responsibility for its content." -* Performer 1..1 Identifier "The unique identifier of the provider (NISS) [2] or organization (company number) which collects the observations. For the Diabetes project: performer = recorder." -* Category 1..1 CodeableConcept "698472009 “Glucose monitoring” (FR) (invariant)See VS_Obs_Dia_Category " -* Device 1..1 Identifier "Identification number assigned by INAMI to the type of sensor. See VS_Diab_Device Device" -* Diagnosis 0..1 Reference(Condition) "Not applicable in the context of the diabetes project Problem" +//* Performer 1..1 Identifier "The unique identifier of the provider (NISS) [2] or organization (company number) which collects the observations. For the Diabetes project: performer = recorder." +* Category 1..* CodeableConcept "698472009 “Glucose monitoring” (FR) (invariant)See VS_Obs_Dia_Category " +//* Device 1..1 Identifier "Identification number assigned by INAMI to the type of sensor. See VS_Diab_Device Device" +//* Diagnosis 0..1 Reference(Condition) "Not applicable in the context of the diabetes project Problem" * Status 0..1 code "445665009 “Final report” - invariant. See VS_Obs_Diab_Status Status" * Code 1..1 CodeableConcept "Code corresponding to the derived value (coding to be established by SNOMED CT). Ex: AGP-PGATAR Time Above Range, TIR Time In Range…See VS_Obs_Diab_Code" * Value 1..1 Quantity "Derived value. Value[x]" * ReferenceRange 0..* Range "Structure composed of reference elements allowing the interpretation of measurements:·        ReferenceRange.Low (0...1)·        ReferenceRange.High (0...1)·        ReferenceRange.AppliesTo (0...*)We automatically work according to the ADA standards which define target value intervals for the following derived observations: Coded1 Coefficient of Variation2 Days Sensor Worn3% Data Captured4 TAR % (Time above range - very high)5 TAR % (Time above range - high)6 SHOOTING % (Time in Range)7 TBR % (Time below range - low)8 TBR % (Time below range - very low)By observation code derived from this list, we will potentially find:A) Target - reference interval to indicate the target lower limit (“Low”) and upper limit (“High”).Note that these limits do not depend on the diabetes category.For example: for TIR, it is recommended that the blood glucose value be at least 70% of the time in the “normal” range.So for ReferenceRange “TIR_REF”→ TIR_REF.Low = 70%→ TIR_REF.High = 100%B) filter - application interval with a lower limit and an upper limit to filter the measurement observations considered in the calculation of the derived value. This defines the range of counted values. These ranges may vary by diabetes category.For example: the “normal” range is between 70 mg/dL and 180 mg/dL for category 1 and 3, and between 63 mg/dL and 140 mg/dL for category 2.So for ReferenceRange “TIR_REF”→ TIR_REF.AppliesTo(CAT1, ≥70 mg/dL, ≤180 mg/dL)→ TIR_REF.AppliesTo(CAT2, ≥63 mg/dL, ≤140 mg/dL)→ TIR_REF.AppliesTo(CAT3, ≥70 mg/dL, ≤180 mg/dL)As we base ourselves on ADA standards, there is little point in passing all this information for each observation.If, however, a doctor changes values ​​(target and/or filter) for a specific patient AND you want to communicate these changes outside of your patient file, this mechanism provides the means.See VS_Obs_Diab_Ref " -* Conclusion 0..1 string "Not applicable for the diabetes project Conclusion" -* BodyLocalisation 0..1 CodeableConcept " Not application for the diabetes project BodyLocalisation" -* BodyLaterality 0..1 CodeableConcept "Not application for the diabetes project BodyLaterality" -* Note 0..* Annotation "Not applicable for the diabetes project" \ No newline at end of file +//* Conclusion 0..1 string "Not applicable for the diabetes project Conclusion" +//* BodyLocalisation 0..1 CodeableConcept " Not application for the diabetes project BodyLocalisation" +//* BodyLaterality 0..1 CodeableConcept "Not application for the diabetes project BodyLaterality" +//* Note 0..* Annotation "Not applicable for the diabetes project" \ No newline at end of file diff --git a/input/fsh/logicals/BeModelDiagnosticReportDiabetes.fsh b/input/fsh/logicals/BeModelDiagnosticReportDiabetes.fsh index cffa305..bfeb037 100644 --- a/input/fsh/logicals/BeModelDiagnosticReportDiabetes.fsh +++ b/input/fsh/logicals/BeModelDiagnosticReportDiabetes.fsh @@ -7,14 +7,14 @@ Logical: BeModelDiagnosticReportDiabetes * Recorder 1..1 Identifier "This refers to the service provider or organization that encodes the information.[1] The unique identifier for each natural person is the NISS, while for each organization the business number serves as the unique identifier." * Performer 1..1 Identifier "We refer to the service provider or organization that collects the observations and produces the report. [2]The unique identifier of each natural person is the NISS, while for each organization the company number serves as the unique identifier.For the Diabetes Diagnostic Report, it is: “performer = recorder.»" * Interpreter 0..1 Identifier "Care provider identified by their NISS (endocrinologist* , general practitioner, etc.) interprets the observations in the report. ResultsInterpreter This element will not be provided by the producer of the report, but will include the reference of the healthcare provider who does the interpretation." -* Category 1..1 CodeableConcept "Category of the report. For the purposes of the diabetes report, the only accepted category is “Endocrinology”.SNOMED CT code 394483002 invariant, see VS_DiagRep_Category." +* Category 1..* CodeableConcept "Category of the report. According to ref. 8, it would be appropriate to consider setting the cardinality of the Catgory field to 1..* and to add to this report the values: 4311000179106 |Chemical pathology report (record artifact) and 408475000 |Diabetic medicine (qualifier value). 394583002 |Endocrinology (qualifier value) of the report. Look at VS_DiagRep_Category." * Qualification 1..1 CodeableConcept "Is the category of diabetic patient (CAT 1, CAT 2, CAT 3). (See glossary for details).By default, the qualification is “CAT 3”.The category is calculated by an algorithm from the diagnosis provided by the doctor — interpreter." * Device 0..1 Identifier "Identification number assigned by INAMI to the sensor type.See VS_Diab_Device" -* Code 1..1 CodeableConcept "Report code. As part of the diabetes project, the only accepted code is “Diabetic Monitoring Status”SNOMED CT code 243860001 invariant, see VS_DiagRep_Code." +* Code 1..1 CodeableConcept "Report code. In the diabetes project framework, it is proposed to indicate the type of procedure that leads to the production of the primary values ​​of this report. That is to say 439926003 | Ambulatory continuous glucose monitoring of interstitial tissue fluid. VS_DiagRep_Code." * DerivedObservations 0..* Observation "List of references to “derived values” type observations (a dozen derived observations) mentioned in the report.[3]His observations are part of the diagnostic report." * MeasurementObservations 0..* Observation "List of references to “blood glucose measurement” type observations used to produce the analysis (a few thousand measurements) [4] type (“SCI”)[5]" * Diagnosis 0..* Condition "Problem reference related to this diagnostic report.This element will not be provided by the producer of the report but will be provided by the healthcare provider who does the interpretation." * Note 0..* Annotation "Report comments in free text format. This element will not be provided by the producer of the report, but will be provided by the healthcare provider doing the interpretation." -* Link 0..1 uri "URL to the reference software." +//* Link 0..1 uri "URL to the reference software." * Document 0..1 Binary "PDF document containing the complete report (text, graphics, deduced observations, conclusions, etc.)" * Status 0..1 code "Report status. By default it is “Final”. Value according to the business rule on “% Data Captured” see VS_DiagRep_Status" \ No newline at end of file diff --git a/input/fsh/namingsystems/be-ns-diabetes-device-type.fsh b/input/fsh/namingsystems/be-ns-diabetes-device-type.fsh new file mode 100644 index 0000000..0756be7 --- /dev/null +++ b/input/fsh/namingsystems/be-ns-diabetes-device-type.fsh @@ -0,0 +1,11 @@ +Instance: be-ns-diabetes-device-type +InstanceOf: NamingSystem +Description: "ATTENTION: for information purposes. This table is updated regularly. On the INAMI website - Follow the path Home > Themes > Health care: cost and reimbursement > Diseases > Endocrine and metabolic diseases; you arrive at the page \"Diabetes: Our intervention in the cost of a self-management program for children and adolescents\" from where - The link entitled \"List of equipment for sensor measurement\" provides you with the current version of the sensor type with their identification code." +Usage: #definition +* name = "BeNSDiabetesDeviceType" +* status = #active +* kind = #identifier +* date = "2024" +* uniqueId[+].type = #uri +* uniqueId[=].value = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diabetes-device-type" +* uniqueId[=].preferred = true \ No newline at end of file diff --git a/input/fsh/namingsystems/be-ns-nihdi-diagnostic-observation-device.fsh b/input/fsh/namingsystems/be-ns-nihdi-diagnostic-observation-device.fsh deleted file mode 100644 index 1f98d7d..0000000 --- a/input/fsh/namingsystems/be-ns-nihdi-diagnostic-observation-device.fsh +++ /dev/null @@ -1,10 +0,0 @@ -Instance: be-ns-nihdi-diagnostic-observation-device -InstanceOf: NamingSystem -Usage: #definition -* name = "BeNSNIHDIDiagnosticObservationDevice" -* status = #active -* kind = #identifier -* date = "2024" -* uniqueId[+].type = #uri -* uniqueId[=].value = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-nihdi-diagnostic-observation-device" -* uniqueId[=].preferred = true \ No newline at end of file diff --git a/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh b/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh index 0960cc9..867bf79 100644 --- a/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh +++ b/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh @@ -6,23 +6,23 @@ Id: be-diagnostic-report-diabetes * identifier ^slicing.rules = #open * identifier contains UUID 1..1 MS * identifier[UUID].system = "http://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" -* extension contains BeExtRecordedDate named recorded-date 0..1 MS and +* extension contains BeExtRecordedDate named recorded-date 1..1 MS and BeExtRecorder named recorder 1..1 MS and BeExtCodeableReference named device 0..1 MS and BeExtSimpleNote named note 0..* MS and http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo named supportingInfo 0..* MS * extension[device].extension[concept].valueCodeableConcept 1..1 MS -* extension[device].extension[concept].valueCodeableConcept.coding.system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-nihdi-diagnostic-observation-device" +* extension[device].extension[concept].valueCodeableConcept.coding.system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diabetes-device-type" * effective[x] only Period * effectivePeriod MS * effectivePeriod.start 1..1 MS * effectivePeriod.end 1..1 MS * resultsInterpreter only Reference(BePractitionerRole or BePractitioner) * resultsInterpreter 0..1 MS -* category 1..1 MS -* category = $sct#394483002 +* category 1..* MS +* category from BeVSDiabetesReportCategory * code 1..1 MS -* code = $sct#243860001 +* code from BeVSDiabetesReportCode * result ^slicing.discriminator.type = #value * result ^slicing.discriminator.path = "reference.resolve().code" * result ^slicing.rules = #open @@ -32,3 +32,4 @@ Id: be-diagnostic-report-diabetes * presentedForm MS * presentedForm.contentType = #"application/pdf" * status MS +* status from BeVSDiabetesReportStatus diff --git a/input/fsh/profiles/BeObservationDiabetes.fsh b/input/fsh/profiles/BeObservationDiabetes.fsh index 8604242..3e1d7ee 100644 --- a/input/fsh/profiles/BeObservationDiabetes.fsh +++ b/input/fsh/profiles/BeObservationDiabetes.fsh @@ -16,13 +16,14 @@ Id: be-observation-diabetes * effectivePeriod.end 1..1 MS * subject 1..1 MS * subject only Reference(BePatient) -* performer 1..1 MS -* performer only Reference(BePractitioner or BePractitionerRole) -* category 1..1 MS -* category = $sct#698472009 +//* performer 1..1 MS +//* performer only Reference(BePractitioner or BePractitionerRole) +* category 1..* MS +* category from BeVSDiabetesObservationCategory * status 1..1 MS -//* status = $sct#445665009 +* status from BeVSDiabetesObservationStatus * code 1..1 MS +* code from BeVSDiabetesObservationCode * value[x] 1..1 MS * referenceRange MS -* device 0..1 MS \ No newline at end of file +//* device 0..1 MS \ No newline at end of file diff --git a/input/fsh/valuesets/BeVSDiabetesObservationCategory.fsh b/input/fsh/valuesets/BeVSDiabetesObservationCategory.fsh new file mode 100644 index 0000000..4ef1976 --- /dev/null +++ b/input/fsh/valuesets/BeVSDiabetesObservationCategory.fsh @@ -0,0 +1,9 @@ +ValueSet: BeVSDiabetesObservationCategory +Id: be-vs-diabetes-observation-category +Title: "BeVSDiabetesObservationCategory" +Description: "Values to be used in the categorisation of Diabetes observations" +* ^jurisdiction.coding[+] = urn:iso:std:iso:3166#BE +* ^experimental = false +* include $sct#439926003 +* include $sct#258104002 +* include $sct#258090004 \ No newline at end of file diff --git a/input/fsh/valuesets/BeVSDiabetesObservationCode.fsh b/input/fsh/valuesets/BeVSDiabetesObservationCode.fsh new file mode 100644 index 0000000..9bff126 --- /dev/null +++ b/input/fsh/valuesets/BeVSDiabetesObservationCode.fsh @@ -0,0 +1,22 @@ +ValueSet: BeVSDiabetesObservationCode +Id: be-vs-diabetes-observation-code +Title: "BeVSDiabetesObservationCode" +Description: "Values to be used in the code of Diabetes observations" +* ^jurisdiction.coding[+] = urn:iso:std:iso:3166#BE +* ^experimental = false +* include $sct_uk#1464791000000107 +* include $sct_uk#1464801000000106 +* include $sct_uk#1464781000000105 +* include $sct_uk#1464831000000100 +* include $sct_uk#1464821000000102 +* include $sct_uk#1464671000000104 +* include $sct_uk#1465041000000100 +* include $sct_uk#1464911000000101 +* include $sct_uk#872121000000100 +* include $sct#365845005 +* include $loinc#97507-8 +* include $loinc#104638-2 +* include $loinc#104636-6 +* include $loinc#104637-4 +* include $loinc#97506-0 + diff --git a/input/fsh/valuesets/BeVSDiabetesObservationStatus.fsh b/input/fsh/valuesets/BeVSDiabetesObservationStatus.fsh new file mode 100644 index 0000000..6e0a902 --- /dev/null +++ b/input/fsh/valuesets/BeVSDiabetesObservationStatus.fsh @@ -0,0 +1,8 @@ +ValueSet: BeVSDiabetesObservationStatus +Id: be-vs-diabetes-observation-status +Title: "BeVSDiabetesObservationStatus" +Description: "Values to be used in the status of Diabetes observations" +* ^jurisdiction.coding[+] = urn:iso:std:iso:3166#BE +* ^experimental = false +* include http://hl7.org/fhir/observation-status#final +* include http://hl7.org/fhir/observation-status#entered-in-error diff --git a/input/fsh/valuesets/BeVSDiabetesReportCategory.fsh b/input/fsh/valuesets/BeVSDiabetesReportCategory.fsh new file mode 100644 index 0000000..e64bbba --- /dev/null +++ b/input/fsh/valuesets/BeVSDiabetesReportCategory.fsh @@ -0,0 +1,9 @@ +ValueSet: BeVSDiabetesReportCategory +Id: be-vs-diabetes-report-category +Title: "BeVSDiabetesReportCategory" +Description: "Values to be used in the categorisation of Diabetes reports" +* ^jurisdiction.coding[+] = urn:iso:std:iso:3166#BE +* ^experimental = false +* include $sct#4311000179106 +* include $sct#408475000 +* include $sct#394583002 \ No newline at end of file diff --git a/input/fsh/valuesets/BeVSDiabetesReportCode.fsh b/input/fsh/valuesets/BeVSDiabetesReportCode.fsh new file mode 100644 index 0000000..9c78eb5 --- /dev/null +++ b/input/fsh/valuesets/BeVSDiabetesReportCode.fsh @@ -0,0 +1,7 @@ +ValueSet: BeVSDiabetesReportCode +Id: be-vs-diabetes-report-code +Title: "BeVSDiabetesReportCode" +Description: "Values to be used in the code of Diabetes reports" +* ^jurisdiction.coding[+] = urn:iso:std:iso:3166#BE +* ^experimental = false +* include $sct#439926003 diff --git a/input/fsh/valuesets/BeVSDiabetesReportStatus.fsh b/input/fsh/valuesets/BeVSDiabetesReportStatus.fsh new file mode 100644 index 0000000..24aba9c --- /dev/null +++ b/input/fsh/valuesets/BeVSDiabetesReportStatus.fsh @@ -0,0 +1,8 @@ +ValueSet: BeVSDiabetesReportStatus +Id: be-vs-diabetes-report-status +Title: "BeVSDiabetesReportStatus" +Description: "Values to be used in the status of Diabetes reports" +* ^jurisdiction.coding[+] = urn:iso:std:iso:3166#BE +* ^experimental = false +* include http://hl7.org/fhir/diagnostic-report-status#final +* include http://hl7.org/fhir/diagnostic-report-status#partial From a3b824449c21c0e023e3e496fb421a638742ce42 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Wed, 25 Sep 2024 17:54:18 +0200 Subject: [PATCH 05/13] pdf only example --- input/fsh/instances/uc52-pdfonly.fsh | 19 +++++++++++++++++++ .../profiles/BeDiagnosticReportDiabetes.fsh | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 input/fsh/instances/uc52-pdfonly.fsh diff --git a/input/fsh/instances/uc52-pdfonly.fsh b/input/fsh/instances/uc52-pdfonly.fsh new file mode 100644 index 0000000..a82327f --- /dev/null +++ b/input/fsh/instances/uc52-pdfonly.fsh @@ -0,0 +1,19 @@ +Instance: uc52-pdfonly +InstanceOf: BeDiagnosticReportDiabetes +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffb" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#4311000179106 +* category[+] = $sct#408475000 +* category[+] = $sct#394583002 +* code = $sct#439926003 +* extension[device].extension[concept].valueCodeableConcept = https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diabetes-device-type#701010000576 +* status = #final +* presentedForm.data = "JVBERi0xLjANCjEgMCBvYmo8PC9QYWdlcyAyIDAgUj4+ZW5kb2JqIDIgMCBvYmo8PC9LaWRzWzMgMCBSXS9Db3VudCAxPj5lbmRvYmogMyAwIG9iajw8L01lZGlhQm94WzAgMCAzIDNdPj5lbmRvYmoNCnRyYWlsZXI8PC9Sb290IDEgMCBSPj4=" +* presentedForm.contentType = #"application/pdf" \ No newline at end of file diff --git a/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh b/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh index 867bf79..bf90a70 100644 --- a/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh +++ b/input/fsh/profiles/BeDiagnosticReportDiabetes.fsh @@ -5,7 +5,7 @@ Id: be-diagnostic-report-diabetes * identifier ^slicing.discriminator.path = "system" * identifier ^slicing.rules = #open * identifier contains UUID 1..1 MS -* identifier[UUID].system = "http://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" +* identifier[UUID].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" * extension contains BeExtRecordedDate named recorded-date 1..1 MS and BeExtRecorder named recorder 1..1 MS and BeExtCodeableReference named device 0..1 MS and From 81b4b69984e43c27750cf47a7f3a499da599da52 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Thu, 26 Sep 2024 08:56:08 +0200 Subject: [PATCH 06/13] add diabetes observation namingsystem --- input/fsh/namingsystems/be-ns-observation-diabetes.fsh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 input/fsh/namingsystems/be-ns-observation-diabetes.fsh diff --git a/input/fsh/namingsystems/be-ns-observation-diabetes.fsh b/input/fsh/namingsystems/be-ns-observation-diabetes.fsh new file mode 100644 index 0000000..56bf31a --- /dev/null +++ b/input/fsh/namingsystems/be-ns-observation-diabetes.fsh @@ -0,0 +1,10 @@ +Instance: be-ns-observation-diabetes +InstanceOf: NamingSystem +Usage: #definition +* name = "BeNSObservationDiabetes" +* status = #active +* kind = #identifier +* date = "2024" +* uniqueId[+].type = #uri +* uniqueId[=].value = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* uniqueId[=].preferred = true \ No newline at end of file From d39e1cbabe3c3c421092f57cc7345bcb40333848 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Thu, 26 Sep 2024 09:19:11 +0200 Subject: [PATCH 07/13] correct type in namingsystem --- input/fsh/profiles/BeObservationDiabetes.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/profiles/BeObservationDiabetes.fsh b/input/fsh/profiles/BeObservationDiabetes.fsh index 3e1d7ee..cc1a046 100644 --- a/input/fsh/profiles/BeObservationDiabetes.fsh +++ b/input/fsh/profiles/BeObservationDiabetes.fsh @@ -5,7 +5,7 @@ Id: be-observation-diabetes * identifier ^slicing.discriminator.path = "system" * identifier ^slicing.rules = #open * identifier contains UUID 1..1 MS -* identifier[UUID].system = "http://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" * extension contains BeExtRecordedDate named recorded-date 0..1 MS and http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo.type named type 1..1 MS and From 49b0478e49d69808eb11f9e4128fb3c12b349092 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Thu, 26 Sep 2024 09:51:02 +0200 Subject: [PATCH 08/13] remove type extension --- input/fsh/profiles/BeObservationDiabetes.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/profiles/BeObservationDiabetes.fsh b/input/fsh/profiles/BeObservationDiabetes.fsh index cc1a046..0567203 100644 --- a/input/fsh/profiles/BeObservationDiabetes.fsh +++ b/input/fsh/profiles/BeObservationDiabetes.fsh @@ -8,7 +8,7 @@ Id: be-observation-diabetes * identifier[UUID].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" * extension contains BeExtRecordedDate named recorded-date 0..1 MS and - http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo.type named type 1..1 MS and + //http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.supportingInfo.type named type 1..1 MS and BeExtRecorder named recorder 1..1 MS * effective[x] only Period * effectivePeriod MS From 909476ccf420a6b1565f3f8efeff80ce0367c712 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Thu, 26 Sep 2024 10:00:40 +0200 Subject: [PATCH 09/13] diagnostic report with one derived observation --- input/fsh/instances/uc53-pdf-derived.fsh | 60 ++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 input/fsh/instances/uc53-pdf-derived.fsh diff --git a/input/fsh/instances/uc53-pdf-derived.fsh b/input/fsh/instances/uc53-pdf-derived.fsh new file mode 100644 index 0000000..b836e3d --- /dev/null +++ b/input/fsh/instances/uc53-pdf-derived.fsh @@ -0,0 +1,60 @@ +Instance: uc52-pdf-derived +InstanceOf: BeDiagnosticReportDiabetes +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffb" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#4311000179106 +* category[+] = $sct#408475000 +* category[+] = $sct#394583002 +* code = $sct#439926003 +* extension[device].extension[concept].valueCodeableConcept = https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diabetes-device-type#701010000576 +* status = #final +* presentedForm.data = "JVBERi0xLjANCjEgMCBvYmo8PC9QYWdlcyAyIDAgUj4+ZW5kb2JqIDIgMCBvYmo8PC9LaWRzWzMgMCBSXS9Db3VudCAxPj5lbmRvYmogMyAwIG9iajw8L01lZGlhQm94WzAgMCAzIDNdPj5lbmRvYmoNCnRyYWlsZXI8PC9Sb290IDEgMCBSPj4=" +* presentedForm.contentType = #"application/pdf" +* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1) +//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc2) +//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc3) +//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc4) +//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc5) +//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc6) +//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc7) +//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc8) + +Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1 +InstanceOf: BeObservationDiabetes +Description: "Without reference range" +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#439926003 +* category[+] = $sct#258090004 +* code = $sct#778232399 +* device = Reference(device) +* status = #final +* valueQuantity.value = 6 +* valueQuantity.unit = "%" +* valueQuantity.code = #"%" +* valueQuantity.system = "http://unitsofmeasure.org" +* performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* performer.identifier.value = "0403044007" + + + +Instance: device +InstanceOf: Device +* type.coding.system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diabetes-device-type" +* type.coding.code = #701010000576 + + From fa376b4bf2ac6e617d4b5b63a5a9a18d07aa31d9 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Thu, 26 Sep 2024 15:47:28 +0200 Subject: [PATCH 10/13] example with pdf and derived observations --- input/fsh/instances/uc53-pdf-derived.fsh | 226 ++++++++++++++++++++++- 1 file changed, 218 insertions(+), 8 deletions(-) diff --git a/input/fsh/instances/uc53-pdf-derived.fsh b/input/fsh/instances/uc53-pdf-derived.fsh index b836e3d..188529f 100644 --- a/input/fsh/instances/uc53-pdf-derived.fsh +++ b/input/fsh/instances/uc53-pdf-derived.fsh @@ -18,17 +18,17 @@ InstanceOf: BeDiagnosticReportDiabetes * presentedForm.data = "JVBERi0xLjANCjEgMCBvYmo8PC9QYWdlcyAyIDAgUj4+ZW5kb2JqIDIgMCBvYmo8PC9LaWRzWzMgMCBSXS9Db3VudCAxPj5lbmRvYmogMyAwIG9iajw8L01lZGlhQm94WzAgMCAzIDNdPj5lbmRvYmoNCnRyYWlsZXI8PC9Sb290IDEgMCBSPj4=" * presentedForm.contentType = #"application/pdf" * result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1) -//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc2) -//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc3) -//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc4) -//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc5) -//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc6) -//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc7) -//* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc8) +* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc2) +* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc3) +* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc4) +* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc5) +* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc6) +* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc7) +* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc8) Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1 InstanceOf: BeObservationDiabetes -Description: "Without reference range" +Description: "Coefficient of variation" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" * identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" @@ -49,8 +49,218 @@ Description: "Without reference range" * valueQuantity.system = "http://unitsofmeasure.org" * performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" * performer.identifier.value = "0403044007" +* referenceRange.high.value = 34 +* referenceRange.high.unit = "%" +* referenceRange.high.code = #"%" +* referenceRange.high.system = "http://unitsofmeasure.org" + +Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc2 +InstanceOf: BeObservationDiabetes +Description: "Days sensor worn" +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc2" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#439926003 +* category[+] = $sct#258090004 +* code = $sct#757492266 +* device = Reference(device) +* status = #final +* valueQuantity.value = 14 +* valueQuantity.unit = "days" +* valueQuantity.code = #"d" +* valueQuantity.system = "http://unitsofmeasure.org" +* performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* performer.identifier.value = "0403044007" +* referenceRange.low.value = 14 +* referenceRange.low.unit = "days" +* referenceRange.low.code = #"d" +* referenceRange.low.system = "http://unitsofmeasure.org" + +Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc3 +InstanceOf: BeObservationDiabetes +Description: "% Data Captured" +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc3" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#439926003 +* category[+] = $sct#258090004 +* code = $sct#242282937 +* device = Reference(device) +* status = #final +* valueQuantity.value = 96 +* valueQuantity.unit = "%" +* valueQuantity.code = #"%" +* valueQuantity.system = "http://unitsofmeasure.org" +* performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* performer.identifier.value = "0403044007" +* referenceRange.low.value = 70 +* referenceRange.low.unit = "%" +* referenceRange.low.code = #"%" +* referenceRange.low.system = "http://unitsofmeasure.org" + + +Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc4 +InstanceOf: BeObservationDiabetes +Description: "TAR-Very high" +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc4" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#439926003 +* category[+] = $sct#258090004 +* code = $sct#124011008 +* device = Reference(device) +* status = #final +* valueQuantity.value = 20 +* valueQuantity.unit = "%" +* valueQuantity.code = #"%" +* valueQuantity.system = "http://unitsofmeasure.org" +* performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* performer.identifier.value = "0403044007" +* referenceRange.high.value = 5 +* referenceRange.high.unit = "%" +* referenceRange.high.code = #"%" +* referenceRange.high.system = "http://unitsofmeasure.org" +* referenceRange.appliesTo.text = "≥ 250 mg/dL" + + +Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc5 +InstanceOf: BeObservationDiabetes +Description: "TAR-High" +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc5" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#439926003 +* category[+] = $sct#258090004 +* code = $sct#865587343 +* device = Reference(device) +* status = #final +* valueQuantity.value = 23 +* valueQuantity.unit = "%" +* valueQuantity.code = #"%" +* valueQuantity.system = "http://unitsofmeasure.org" +* performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* performer.identifier.value = "0403044007" +* referenceRange.high.value = 25 +* referenceRange.high.unit = "%" +* referenceRange.high.code = #"%" +* referenceRange.high.system = "http://unitsofmeasure.org" +* referenceRange.appliesTo.text = "≥180 mg/dL, <250 mg/dL" + +Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc6 +InstanceOf: BeObservationDiabetes +Description: "TIR" +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc6" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#439926003 +* category[+] = $sct#258090004 +* code = $sct#438565545 +* device = Reference(device) +* status = #final +* valueQuantity.value = 47 +* valueQuantity.unit = "%" +* valueQuantity.code = #"%" +* valueQuantity.system = "http://unitsofmeasure.org" +* performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* performer.identifier.value = "0403044007" +* referenceRange.low.value = 25 +* referenceRange.low.unit = "%" +* referenceRange.low.code = #"%" +* referenceRange.low.system = "http://unitsofmeasure.org" +* referenceRange.appliesTo.text = "≥70 mg/dL, <180 mg/dL" + + + +Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc7 +InstanceOf: BeObservationDiabetes +Description: "TBR Time below range - low" +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc7" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#439926003 +* category[+] = $sct#258090004 +* code = $sct#278399267 +* device = Reference(device) +* status = #final +* valueQuantity.value = 4 +* valueQuantity.unit = "%" +* valueQuantity.code = #"%" +* valueQuantity.system = "http://unitsofmeasure.org" +* performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* performer.identifier.value = "0403044007" +* referenceRange.high.value = 5 +* referenceRange.high.unit = "%" +* referenceRange.high.code = #"%" +* referenceRange.high.system = "http://unitsofmeasure.org" +* referenceRange.appliesTo.text = "≥54 mg/dL, <70 mg/dL" + + +Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc8 +InstanceOf: BeObservationDiabetes +Description: "TBR Time below range – very low" +* identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" +* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc8" +* extension[BeExtRecordedDate].valueDateTime = "2024-11-25" +* effectivePeriod.start = "2024-11-11" +* effectivePeriod.end = "2024-11-24" +* subject.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/ssin" +* subject.identifier.value = "80051207915" +* extension[BeExtRecorder].valueReference.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* extension[BeExtRecorder].valueReference.identifier.value = "0403044007" +* category[+] = $sct#439926003 +* category[+] = $sct#258090004 +* code = $sct#364527445 +* device = Reference(device) +* status = #final +* valueQuantity.value = 6 +* valueQuantity.unit = "%" +* valueQuantity.code = #"%" +* valueQuantity.system = "http://unitsofmeasure.org" +* performer.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* performer.identifier.value = "0403044007" +* referenceRange.high.value = 2 +* referenceRange.high.unit = "%" +* referenceRange.high.code = #"%" +* referenceRange.high.system = "http://unitsofmeasure.org" +* referenceRange.appliesTo.text = "< 54 mg/dL" Instance: device InstanceOf: Device From af5fd648b88d2bb13bbe0ffecadbb2081c3ce0d1 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Mon, 30 Sep 2024 13:50:48 +0200 Subject: [PATCH 11/13] added bundles + removed fake uuids --- input/fsh/instances/uc52-pdfonly.fsh | 22 +++++ input/fsh/instances/uc53-pdf-derived.fsh | 106 ++++++++++++++++------- 2 files changed, 95 insertions(+), 33 deletions(-) diff --git a/input/fsh/instances/uc52-pdfonly.fsh b/input/fsh/instances/uc52-pdfonly.fsh index a82327f..6b6129c 100644 --- a/input/fsh/instances/uc52-pdfonly.fsh +++ b/input/fsh/instances/uc52-pdfonly.fsh @@ -1,3 +1,25 @@ +Instance: uc52-bundle +InstanceOf: Bundle +* identifier[+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" +* identifier[=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffb" +* type = #document +* entry[+].resource = uc52-composition +* entry[=].fullUrl = "urn:uuid:66442d1d-2a00-45cc-a4bd-b07c2a376212" +* entry[+].resource = uc52-pdfonly +* entry[=].fullUrl = "urn:uuid:6e126868-aa6a-41ef-b7fb-3c8b690d8ffb" +* timestamp = "2024-11-25T00:00:00.000+01:00" + +Instance: uc52-composition +InstanceOf: Composition +* id = "66442d1d-2a00-45cc-a4bd-b07c2a376212" +* status = #final +* type = $sct#439926003 +* date = "2024-11-25" +* author.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* author.identifier.value = "0403044007" +* title = "Diabetes device report" +* section.entry = Reference(urn:uuid:6e126868-aa6a-41ef-b7fb-3c8b690d8ffb) + Instance: uc52-pdfonly InstanceOf: BeDiagnosticReportDiabetes * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" diff --git a/input/fsh/instances/uc53-pdf-derived.fsh b/input/fsh/instances/uc53-pdf-derived.fsh index 188529f..8d6e9d6 100644 --- a/input/fsh/instances/uc53-pdf-derived.fsh +++ b/input/fsh/instances/uc53-pdf-derived.fsh @@ -1,4 +1,44 @@ -Instance: uc52-pdf-derived +Instance: uc53-bundle +InstanceOf: Bundle +* identifier[+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" +* identifier[=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffb" +* type = #document +* entry[+].resource = uc53-composition +* entry[=].fullUrl = "urn:uuid:66442d1d-2a00-45cc-a4bd-b07c2a376212" +* entry[+].resource = uc53-pdf-derived +* entry[=].fullUrl = "urn:uuid:6e126868-aa6a-41ef-b7fb-3c8b690d8ffb" +* entry[+].resource = c611b58d-27bb-49e2-b3ec-bd59e986f5f3 +* entry[=].fullUrl = "urn:uuid:c611b58d-27bb-49e2-b3ec-bd59e986f5f3" +* entry[+].resource = 397dffb4-a88a-47d0-b10d-beffcbf6157d +* entry[=].fullUrl = "urn:uuid:397dffb4-a88a-47d0-b10d-beffcbf6157d" +* entry[+].resource = 6756477d-b57a-4611-b048-374d46f52908 +* entry[=].fullUrl = "urn:uuid:6756477d-b57a-4611-b048-374d46f52908" +* entry[+].resource = b44fe5d5-f57b-4424-b628-d2baeb447738 +* entry[=].fullUrl = "urn:uuid:b44fe5d5-f57b-4424-b628-d2baeb447738" +* entry[+].resource = b28ef33b-0480-4bde-a5df-94988813110b +* entry[=].fullUrl = "urn:uuid:b28ef33b-0480-4bde-a5df-94988813110b" +* entry[+].resource = 449a728d-dfb4-422d-94aa-1a2d43849ee5 +* entry[=].fullUrl = "urn:uuid:449a728d-dfb4-422d-94aa-1a2d43849ee5" +* entry[+].resource = a6665182-e11a-40a9-ae83-9b093a353f16 +* entry[=].fullUrl = "urn:uuid:a6665182-e11a-40a9-ae83-9b093a353f16" +* entry[+].resource = 454a29d0-0893-458a-b2e5-25452b89e29a +* entry[=].fullUrl = "urn:uuid:454a29d0-0893-458a-b2e5-25452b89e29a" +* entry[+].resource = device +* entry[=].fullUrl = "urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e" +* timestamp = "2024-11-25T00:00:00.000+01:00" + +Instance: uc53-composition +InstanceOf: Composition +//* id = "66442d1d-2a00-45cc-a4bd-b07c2a376212" +* status = #final +* type = $sct#439926003 +* date = "2024-11-25" +* author.identifier.system = "https://www.ehealth.fgov.be/standards/fhir/core/NamingSystem/nihdi" +* author.identifier.value = "0403044007" +* title = "Diabetes device report" +* section.entry = Reference(urn:uuid:6e126868-aa6a-41ef-b7fb-3c8b690d8ffb) + +Instance: uc53-pdf-derived InstanceOf: BeDiagnosticReportDiabetes * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-diagnostic-report-diabetes" * identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffb" @@ -17,20 +57,20 @@ InstanceOf: BeDiagnosticReportDiabetes * status = #final * presentedForm.data = "JVBERi0xLjANCjEgMCBvYmo8PC9QYWdlcyAyIDAgUj4+ZW5kb2JqIDIgMCBvYmo8PC9LaWRzWzMgMCBSXS9Db3VudCAxPj5lbmRvYmogMyAwIG9iajw8L01lZGlhQm94WzAgMCAzIDNdPj5lbmRvYmoNCnRyYWlsZXI8PC9Sb290IDEgMCBSPj4=" * presentedForm.contentType = #"application/pdf" -* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1) -* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc2) -* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc3) -* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc4) -* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc5) -* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc6) -* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc7) -* result[+] = Reference(6e126868-aa6a-41ef-b7fb-3c8b690d8ffc8) +* result[+] = Reference(urn:uuid:c611b58d-27bb-49e2-b3ec-bd59e986f5f3) +* result[+] = Reference(urn:uuid:397dffb4-a88a-47d0-b10d-beffcbf6157d) +* result[+] = Reference(urn:uuid:6756477d-b57a-4611-b048-374d46f52908) +* result[+] = Reference(urn:uuid:b44fe5d5-f57b-4424-b628-d2baeb447738) +* result[+] = Reference(urn:uuid:b28ef33b-0480-4bde-a5df-94988813110b) +* result[+] = Reference(urn:uuid:449a728d-dfb4-422d-94aa-1a2d43849ee5) +* result[+] = Reference(urn:uuid:a6665182-e11a-40a9-ae83-9b093a353f16) +* result[+] = Reference(urn:uuid:454a29d0-0893-458a-b2e5-25452b89e29a) -Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1 +Instance: c611b58d-27bb-49e2-b3ec-bd59e986f5f3 InstanceOf: BeObservationDiabetes Description: "Coefficient of variation" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" -* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc1" +* identifier[UUID][=].value = "c611b58d-27bb-49e2-b3ec-bd59e986f5f3" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" * effectivePeriod.start = "2024-11-11" * effectivePeriod.end = "2024-11-24" @@ -41,7 +81,7 @@ Description: "Coefficient of variation" * category[+] = $sct#439926003 * category[+] = $sct#258090004 * code = $sct#778232399 -* device = Reference(device) +* device = Reference(urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e) * status = #final * valueQuantity.value = 6 * valueQuantity.unit = "%" @@ -54,11 +94,11 @@ Description: "Coefficient of variation" * referenceRange.high.code = #"%" * referenceRange.high.system = "http://unitsofmeasure.org" -Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc2 +Instance: 397dffb4-a88a-47d0-b10d-beffcbf6157d InstanceOf: BeObservationDiabetes Description: "Days sensor worn" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" -* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc2" +* identifier[UUID][=].value = "397dffb4-a88a-47d0-b10d-beffcbf6157d" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" * effectivePeriod.start = "2024-11-11" * effectivePeriod.end = "2024-11-24" @@ -69,7 +109,7 @@ Description: "Days sensor worn" * category[+] = $sct#439926003 * category[+] = $sct#258090004 * code = $sct#757492266 -* device = Reference(device) +* device = Reference(urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e) * status = #final * valueQuantity.value = 14 * valueQuantity.unit = "days" @@ -84,11 +124,11 @@ Description: "Days sensor worn" -Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc3 +Instance: 6756477d-b57a-4611-b048-374d46f52908 InstanceOf: BeObservationDiabetes Description: "% Data Captured" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" -* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc3" +* identifier[UUID][=].value = "6756477d-b57a-4611-b048-374d46f52908" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" * effectivePeriod.start = "2024-11-11" * effectivePeriod.end = "2024-11-24" @@ -99,7 +139,7 @@ Description: "% Data Captured" * category[+] = $sct#439926003 * category[+] = $sct#258090004 * code = $sct#242282937 -* device = Reference(device) +* device = Reference(urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e) * status = #final * valueQuantity.value = 96 * valueQuantity.unit = "%" @@ -113,11 +153,11 @@ Description: "% Data Captured" * referenceRange.low.system = "http://unitsofmeasure.org" -Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc4 +Instance: b44fe5d5-f57b-4424-b628-d2baeb447738 InstanceOf: BeObservationDiabetes Description: "TAR-Very high" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" -* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc4" +* identifier[UUID][=].value = "b44fe5d5-f57b-4424-b628-d2baeb447738" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" * effectivePeriod.start = "2024-11-11" * effectivePeriod.end = "2024-11-24" @@ -128,7 +168,7 @@ Description: "TAR-Very high" * category[+] = $sct#439926003 * category[+] = $sct#258090004 * code = $sct#124011008 -* device = Reference(device) +* device = Reference(urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e) * status = #final * valueQuantity.value = 20 * valueQuantity.unit = "%" @@ -143,11 +183,11 @@ Description: "TAR-Very high" * referenceRange.appliesTo.text = "≥ 250 mg/dL" -Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc5 +Instance: b28ef33b-0480-4bde-a5df-94988813110b InstanceOf: BeObservationDiabetes Description: "TAR-High" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" -* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc5" +* identifier[UUID][=].value = "b28ef33b-0480-4bde-a5df-94988813110b" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" * effectivePeriod.start = "2024-11-11" * effectivePeriod.end = "2024-11-24" @@ -158,7 +198,7 @@ Description: "TAR-High" * category[+] = $sct#439926003 * category[+] = $sct#258090004 * code = $sct#865587343 -* device = Reference(device) +* device = Reference(urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e) * status = #final * valueQuantity.value = 23 * valueQuantity.unit = "%" @@ -172,11 +212,11 @@ Description: "TAR-High" * referenceRange.high.system = "http://unitsofmeasure.org" * referenceRange.appliesTo.text = "≥180 mg/dL, <250 mg/dL" -Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc6 +Instance: 449a728d-dfb4-422d-94aa-1a2d43849ee5 InstanceOf: BeObservationDiabetes Description: "TIR" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" -* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc6" +* identifier[UUID][=].value = "449a728d-dfb4-422d-94aa-1a2d43849ee5" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" * effectivePeriod.start = "2024-11-11" * effectivePeriod.end = "2024-11-24" @@ -187,7 +227,7 @@ Description: "TIR" * category[+] = $sct#439926003 * category[+] = $sct#258090004 * code = $sct#438565545 -* device = Reference(device) +* device = Reference(urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e) * status = #final * valueQuantity.value = 47 * valueQuantity.unit = "%" @@ -203,11 +243,11 @@ Description: "TIR" -Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc7 +Instance: a6665182-e11a-40a9-ae83-9b093a353f16 InstanceOf: BeObservationDiabetes Description: "TBR Time below range - low" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" -* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc7" +* identifier[UUID][=].value = "a6665182-e11a-40a9-ae83-9b093a353f16" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" * effectivePeriod.start = "2024-11-11" * effectivePeriod.end = "2024-11-24" @@ -218,7 +258,7 @@ Description: "TBR Time below range - low" * category[+] = $sct#439926003 * category[+] = $sct#258090004 * code = $sct#278399267 -* device = Reference(device) +* device = Reference(urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e) * status = #final * valueQuantity.value = 4 * valueQuantity.unit = "%" @@ -233,11 +273,11 @@ Description: "TBR Time below range - low" * referenceRange.appliesTo.text = "≥54 mg/dL, <70 mg/dL" -Instance: 6e126868-aa6a-41ef-b7fb-3c8b690d8ffc8 +Instance: 454a29d0-0893-458a-b2e5-25452b89e29a InstanceOf: BeObservationDiabetes Description: "TBR Time below range – very low" * identifier[UUID][+].system = "https://www.ehealth.fgov.be/standards/fhir/core-clinical/NamingSystem/be-ns-observation-diabetes" -* identifier[UUID][=].value = "6e126868-aa6a-41ef-b7fb-3c8b690d8ffc8" +* identifier[UUID][=].value = "454a29d0-0893-458a-b2e5-25452b89e29a" * extension[BeExtRecordedDate].valueDateTime = "2024-11-25" * effectivePeriod.start = "2024-11-11" * effectivePeriod.end = "2024-11-24" @@ -248,7 +288,7 @@ Description: "TBR Time below range – very low" * category[+] = $sct#439926003 * category[+] = $sct#258090004 * code = $sct#364527445 -* device = Reference(device) +* device = Reference(urn:uuid:ce11c616-6625-4966-8a16-012ee8ff1d8e) * status = #final * valueQuantity.value = 6 * valueQuantity.unit = "%" From 13db54ec9fefdf1ea42d27c9cd2b92b2f5f7d8a1 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Fri, 22 Nov 2024 17:49:17 +0100 Subject: [PATCH 12/13] updated example table --- input/fsh/instances/uc52-pdfonly.fsh | 1 - sushi-config.yaml | 38 +++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/input/fsh/instances/uc52-pdfonly.fsh b/input/fsh/instances/uc52-pdfonly.fsh index 6b6129c..2172838 100644 --- a/input/fsh/instances/uc52-pdfonly.fsh +++ b/input/fsh/instances/uc52-pdfonly.fsh @@ -11,7 +11,6 @@ InstanceOf: Bundle Instance: uc52-composition InstanceOf: Composition -* id = "66442d1d-2a00-45cc-a4bd-b07c2a376212" * status = #final * type = $sct#439926003 * date = "2024-11-25" diff --git a/sushi-config.yaml b/sushi-config.yaml index dbaf9b2..dcc3c57 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -204,4 +204,40 @@ FSHOnly: false dependencies: hl7.fhir.be.core: current$issue-133 - hl7.fhir.extensions.r5: 4.0.1 \ No newline at end of file + hl7.fhir.extensions.r5: 4.0.1 + +resources: + Bundle/uc52-bundle: + name: Use case 5.2 + description: Bundle containing only a pdf, no derived data + Composition/uc52-composition: + name: Use case 5.2 (Composition) + description: Index page of the Bundle + DiagnosticReport/uc52-pdfonly: + name: Use case 5.2 (Diagnostic Report) + description: Diagnostic report, containing the pdf + Bundle/uc53-bundle: + name: Use case 5.3 + description: Bundle containing pdf and derived data (with/without reference range) + DiagnosticReport/uc53-pdf-derived: + name: Use case 5.3 (Diagnostic Report) + description: Diagnostic report, containing a pdf and references to derived observations + Composition/uc53-composition: + name: Use case 5.3 (Composition) + description: Index page of the Bundle + Observation/c611b58d-27bb-49e2-b3ec-bd59e986f5f3: + name: Use case 5.3 (Observation) + Observation/397dffb4-a88a-47d0-b10d-beffcbf6157d: + name: Use case 5.3 (Observation) + Observation/6756477d-b57a-4611-b048-374d46f52908: + name: Use case 5.3 (Observation) + Observation/b28ef33b-0480-4bde-a5df-94988813110b: + name: Use case 5.3 (Observation) + Observation/449a728d-dfb4-422d-94aa-1a2d43849ee5: + name: Use case 5.3 (Observation) + Observation/a6665182-e11a-40a9-ae83-9b093a353f16: + name: Use case 5.3 (Observation) + Observation/454a29d0-0893-458a-b2e5-25452b89e29a: + name: Use case 5.3 (Observation) + Device/device: + name: Use case 5.3 (Device) From eb43d207c19cdcfdf4fed757b6689d0c20075092 Mon Sep 17 00:00:00 2001 From: "Bart Decuypere (eHealth)" <90335317+bdc-ehealth@users.noreply.github.com> Date: Fri, 22 Nov 2024 17:51:58 +0100 Subject: [PATCH 13/13] updated valueset --- .../valuesets/BeVSDiabetesObservationCode.fsh | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/input/fsh/valuesets/BeVSDiabetesObservationCode.fsh b/input/fsh/valuesets/BeVSDiabetesObservationCode.fsh index 9bff126..afd97c7 100644 --- a/input/fsh/valuesets/BeVSDiabetesObservationCode.fsh +++ b/input/fsh/valuesets/BeVSDiabetesObservationCode.fsh @@ -4,19 +4,31 @@ Title: "BeVSDiabetesObservationCode" Description: "Values to be used in the code of Diabetes observations" * ^jurisdiction.coding[+] = urn:iso:std:iso:3166#BE * ^experimental = false -* include $sct_uk#1464791000000107 -* include $sct_uk#1464801000000106 -* include $sct_uk#1464781000000105 -* include $sct_uk#1464831000000100 -* include $sct_uk#1464821000000102 -* include $sct_uk#1464671000000104 -* include $sct_uk#1465041000000100 -* include $sct_uk#1464911000000101 -* include $sct_uk#872121000000100 +//* include $sct_uk#1464791000000107 +* include $sct#141191000172105 +//* include $sct_uk#1464801000000106 +* include $sct#141201000172108 +//* include $sct_uk#1464781000000105 +* include $sct#141231000172103 +//* include $sct_uk#1464831000000100 +* include $sct#141211000172106 +//* include $sct_uk#1464821000000102 +* include $sct#141221000172101 +//* include $sct_uk#1465041000000100 OK +* include $sct#141151000172102 +//* include $sct_uk#1464911000000101 +* include $sct#141171000172109 +//* include $sct_uk#872121000000100 +* include $sct#141141000172104 * include $sct#365845005 -* include $loinc#97507-8 -* include $loinc#104638-2 -* include $loinc#104636-6 -* include $loinc#104637-4 -* include $loinc#97506-0 +//* include $loinc#97507-8 //* include $sct_uk#1464671000000104 +* include $sct#141161000172100 +//* include $loinc#104638-2 +* include $sct#141121000172108 +//* include $loinc#104636-6 +* include $sct#141131000172106 +//* include $loinc#104637-4 +* include $sct#141181000172107 +//* include $loinc#97506-0 +* include $sct#141241000172105