From b29609019dbfe84f15aabdda348fd4bc503dec66 Mon Sep 17 00:00:00 2001 From: rmrlangford Date: Thu, 18 Jul 2024 11:03:32 +0200 Subject: [PATCH 1/7] updated --- input/fsh/examples.fsh | 55 ++++++++++++++----- input/fsh/profiles.fsh | 111 ++++++++++++++++++++++++++++++++++++-- input/fsh/terminology.fsh | 9 ++++ 3 files changed, 157 insertions(+), 18 deletions(-) diff --git a/input/fsh/examples.fsh b/input/fsh/examples.fsh index 00f3133bf..493e7fbf7 100644 --- a/input/fsh/examples.fsh +++ b/input/fsh/examples.fsh @@ -453,7 +453,6 @@ Description: "Records the ARV Treatment details for the patient initiated on ART * context = Reference(GeneralEncounterExample) * effectivePeriod.start = "2009-11-24" * reasonReference = Reference(InitiatedArtARTFollowupStatusExample) -* basedOn = Reference(ARTInitiatedARTFollowUpCareplanExample) Instance: FollowUpArvTreatmentMedicationStatementExample InstanceOf: ARTTreatmentMedicationStatement @@ -466,7 +465,6 @@ Description: "Records the ARV Treatment details for the patient during an ART fo * context = Reference(GeneralEncounterExample) * effectivePeriod.start = "2009-11-24" * reasonReference = Reference(AliveOnArtARTFollowupStatusExample) -* basedOn = Reference(ARTAliveOnARTFollowUpCareplanExample) Instance: CotrimoxazoleMedicationStatementExample InstanceOf: OIMedicationStatement @@ -574,11 +572,27 @@ Description: "This is to record requests for medication that are prescribed to a * reasonReference = Reference(InitiatedArtARTFollowupStatusExample) * basedOn = Reference(ARTInitiatedARTFollowUpCareplanExample) -Instance: TBScreeningExample +Instance: TBPositiveScreeningExample +InstanceOf: TBScreeningResultObservation +Usage: #example +Title: "Observation - TB Positive Screening" +Description: "Indicates that the patient has a positive TB screening result." +* status = #final +* code = $SCT#429599001 +* code.text = "Tuberculosis screening status" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* effectiveDateTime = "2023-12-11" +* performer = Reference(CurrentServiceProviderExample) +* category = $OBSERVATION_CATEGORY#exam +* valueCodeableConcept = $LNC#LA6576-8 +* valueCodeableConcept.text = "Positive" + +Instance: TBNegativeScreeningExample InstanceOf: TBScreeningResultObservation Usage: #example -Title: "Observation - TB Screening" -Description: "Documents the patient's TB screening result." +Title: "Observation - TB Negative Screening" +Description: "Indicates that the patient has a negative TB screening result." * status = #final * code = $SCT#429599001 * code.text = "Tuberculosis screening status" @@ -610,8 +624,8 @@ Description: "Documents the patient's diagnostic test result." Instance: ScreenedForTBExample InstanceOf: ScreenedForTBObservation Usage: #example -Title: "Observation - Screened For TB" -Description: "Indicates that the patient was screened for TB." +Title: "Observation - Screened For TB (TB Positive)" +Description: "Indicates that the patient was screened for TB and the screening result is positive." * status = #final * code = $SCT#171126009 * code.text = "Tuberculosis screening status" @@ -621,7 +635,7 @@ Description: "Indicates that the patient was screened for TB." * performer = Reference(CurrentServiceProviderExample) * valueCodeableConcept = $YesNoCodeSystem#true * valueCodeableConcept.extension[ObservedDate].valueDateTime = "2023-10-21" -* hasMember[+] = Reference(TBScreeningExample) +* hasMember[+] = Reference(TBPositiveScreeningExample) Instance: NotScreenedForTBExample InstanceOf: ScreenedForTBObservation @@ -636,7 +650,6 @@ Description: "Indicates that the patient was not screened for TB." * effectiveDateTime = "2023-12-11" * performer = Reference(CurrentServiceProviderExample) * valueCodeableConcept = $YesNoCodeSystem#false -* hasMember[+] = Reference(TBScreeningExample) Instance: TBScreeningSpecimenExample InstanceOf: TBScreeningSpecimen @@ -658,6 +671,7 @@ Description: "Service request used to examine the specimen taken during TB scree * code = $TBScreeningDiagnosticTest#Gene-xpert-MTB/RIF-assay-with-other-testing * subject = Reference(GeneralPatientExample) * encounter = Reference(GeneralEncounterExample) +* reasonReference = Reference(TBPositiveScreeningExample) Instance: ActiveTBExample InstanceOf: ActiveTBObservation @@ -691,7 +705,7 @@ Description: "Documents whether the patient is eligibile for TB Prevention Thera * effectiveDateTime = "2023-12-11" * performer = Reference(CurrentServiceProviderExample) * valueCodeableConcept = $YesNoCodeSystem#true -* derivedFrom[+] = Reference(TBScreeningExample) +* derivedFrom[+] = Reference(TBNegativeScreeningExample) Instance: NotEligibleForTPTExample InstanceOf: EligibleForTPTObservation @@ -707,7 +721,7 @@ Description: "Documents whether the patient is eligibile for TB Prevention Thera * effectiveDateTime = "2023-12-11" * performer = Reference(CurrentServiceProviderExample) * valueCodeableConcept = $YesNoCodeSystem#false -* derivedFrom[+] = Reference(TBScreeningExample) +* derivedFrom[+] = Reference(TBNegativeScreeningExample) * hasMember = Reference(ReasonNotEligibleForTPTExample) Instance: ReasonNotEligibleForTPTExample @@ -726,7 +740,7 @@ Description: "Documents the reason why the patient is not eligibile for TB Preve * valueCodeableConcept = $SCT#473151000 * valueCodeableConcept.text = "History of tuberculosis drug therapy" * derivedFrom[+] = Reference(ScreenedForTBExample) -* derivedFrom[+] = Reference(TBScreeningExample) +* derivedFrom[+] = Reference(TBPositiveScreeningExample) Instance: ARTAliveOnARTFollowUpCareplanExample InstanceOf: ARTFollowUpCareplan @@ -3766,4 +3780,19 @@ Description: "Indicates that the patient has discontinued 3HR." * effectiveDateTime = "2023-12-11" * performer = Reference(CurrentServiceProviderExample) * valueCodeableConcept = $SCT#410831004 -* hasMember[3HR] = Reference(AlternateTPT3HRAtFollowupDiscontinuedObservationExample) \ No newline at end of file +* hasMember[3HR] = Reference(AlternateTPT3HRAtFollowupDiscontinuedObservationExample) + +Instance: TBTreatmentCareplanExample +InstanceOf: TBTreatmentCareplan +Usage: #example +Title: "Care Plan - TB Treatment" +Description: "Used to record the TB treatment details for the patient." +* status = #active +* intent = #order +* created = "2024-03-20" +* category[+] = $LNC#LA6762-4 +* category[=].text = "TB treatment" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* activity[+].reference = Reference(TBScreeningServiceRequestExample) +* activity[=].outcomeReference = Reference(TBTreatmentStatusRx1ObservationExample) \ No newline at end of file diff --git a/input/fsh/profiles.fsh b/input/fsh/profiles.fsh index eb68914f3..d71ca0bf2 100644 --- a/input/fsh/profiles.fsh +++ b/input/fsh/profiles.fsh @@ -484,7 +484,7 @@ Description: "Documents whether the patient was screened for TB." * valueCodeableConcept.extension contains ObservedDateExtension named ObservedDate 0..1 MS * valueCodeableConcept.extension[ObservedDate] ^definition = "reason(s) why this should be supported." -* hasMember 0..* MS +* hasMember 0..1 MS * hasMember ^definition = "reason(s) why this should be supported." * hasMember only Reference(TBScreeningResultObservation) @@ -547,6 +547,8 @@ Id: tb-screening-service-request Title: "Service Request - TB Screening" Description: "Service request used to examine the specimen taken during TB screening." * code from TBScreeningDiagnosticTestTypeValueSet (required) +* reasonReference 1..1 +* reasonReference only Reference(TBScreeningResultObservation) Profile: TBDiagnosticTestResultObservation Parent: GenericObservation @@ -594,9 +596,7 @@ Description: "Records the medication history for the HIV+ patient." * medication[x] only Reference * medicationReference only Reference(ARVMedication) * reasonReference 1..1 -* reasonReference only Reference(Observation) -* basedOn 1..1 -* basedOn only Reference(ARTFollowUpCareplan) +* reasonReference only Reference(ARVRegimenChange or ARTFollowupStatusObservation) Profile: OIMedicationStatement Parent: GenericMedicationStatement @@ -2435,6 +2435,11 @@ Description: "Documents whether the patient has started TB treatment." "reason(s) why this should be supported." * derivedFrom only Reference(TBDiagnosticTestResultObservation) +* basedOn 0..1 MS +* basedOn ^definition = + "reason(s) why this should be supported." +* basedOn only Reference(TBTreatmentCareplan) + Profile: TBTreatmentStatusObservation Parent: GenericObservation Id: tb-treatment-status-observation @@ -2679,4 +2684,100 @@ Description: "Documents the alternate TPT at follow-up." * hasMember[TPTCompleted] ^definition = "reason(s) why this should be supported." -* hasMember[TPTCompleted] only Reference(TreatmentCompletedObservation) \ No newline at end of file +* hasMember[TPTCompleted] only Reference(TreatmentCompletedObservation) + +Profile: TBTreatmentCareplan +Parent: CarePlan +Id: tb-treatment-careplan +Title: "Care Plan - TB Treatment" +Description: "Used to record the TB treatment details for the patient." +* status 1..1 +* intent 1..1 +* category 1..1 +* category = $LNC#LA6762-4 +* category.text 1..1 +* category.text = "TB treatment" +* subject 1..1 +* subject only Reference(EthPatient) +* encounter 1..1 +* encounter only Reference(TargetFacilityEncounter) + +* created 0..1 MS +* created ^definition = "reason(s) why this should be supported." + +* activity 1..* + +* activity.outcomeReference 1..* + +* insert SliceForResolve(activity.outcomeReference, reasons why this should be supported, open, Slicing outcomeReference based on the profile value, false) + +* activity.outcomeReference contains + TreatmentStatus 1..1 + +* activity.outcomeReference[TreatmentStatus] only Reference(TBTreatmentStatusObservation) + +* activity.reference 1..1 +* activity.reference only Reference(TBScreeningServiceRequest) + +Profile: TPTMedicationRequest +Parent: GenericMedicationRequest +Id: tpt-medication-request +Title: "Medication Request - TB Preventive Therapy (TPT)" +Description: "Used to record requests for TPT medication that are prescribed to a patient." +* medication[x] only Reference +* medicationReference only Reference(TPTMedication) +* basedOn 1..1 +* basedOn only Reference(TPTCareplan) + +Profile: TPTMedication +Parent: Medication +Id: tpt-medication +Title: "Medication - Represents a medication for TB Preventive Therapy (TPT)" +Description: "Used to record the TPT medication that will be prescribed to the patient." +* code 1..1 +* code.coding only StrictCoding +* code from TPTProphylaxisValueSet (required) +* code.text 1..1 + +Profile: TPTCareplan +Parent: CarePlan +Id: tpt-careplan +Title: "Care Plan - TB Preventive Therapy (TPT)" +Description: "Used to record the TPT details for the patient." +* status 1..1 +* intent 1..1 +* category 1..1 +* category = $LNC#LA6762-4 +* category.text 1..1 +* category.text = "TB treatment" +* subject 1..1 +* subject only Reference(EthPatient) +* encounter 1..1 +* encounter only Reference(TargetFacilityEncounter) + +* created 0..1 MS +* created ^definition = "reason(s) why this should be supported." + +* activity 1..* + +* activity.outcomeReference 1..* + +* insert SliceForResolve(activity.outcomeReference, reasons why this should be supported, open, Slicing outcomeReference based on the profile value, false) + +* activity.outcomeReference contains + TreatmentStatus 1..1 + +* activity.outcomeReference[TreatmentStatus] only Reference(INHAtFollowupObservation or AlternateTPTAtFollowupObservation) + +* activity.reference 1..1 +* activity.reference only Reference(TPTMedicationRequest) + +Profile: TPTMedicationStatement +Parent: GenericMedicationStatement +Id: tpt-medication-statement +Title: "Medication Statement - TB Preventive Therapy (TPT)" +Description: "Records the medication history for the patient receiving TPT medication." +* medication[x] only Reference +* medicationReference only Reference(TPTMedication) +* reasonReference 1..1 +* reasonReference only Reference(TBProphylaxisTypeObservation) \ No newline at end of file diff --git a/input/fsh/terminology.fsh b/input/fsh/terminology.fsh index 506430470..07c897216 100644 --- a/input/fsh/terminology.fsh +++ b/input/fsh/terminology.fsh @@ -630,6 +630,15 @@ Description: "A list of codes describing the alternate TPT prophylaxis types to * $SCT#346670008 "Product containing isoniazid and rifampicin" * $SCT#410831004 "Product containing rifapentine" +ValueSet: TPTProphylaxisValueSet +Id: tpt-prophylaxis-value-set +Title: "TPT Prophylaxis Codes For Medication Requests" +Description: "A list of codes describing the different codes used during a request for TPT medication." +* ^experimental = false +* $LNC#18934-0 "Isoniazid [Susceptibility]" +* $SCT#346670008 "Product containing isoniazid and rifampicin" +* $SCT#410831004 "Product containing rifapentine" + /*ValueSet: TPT3HRFollowUpValueSet Id: tpt-3hr-follow-up-value-set Title: "TPT 3HR Follow-Up Codes" From 768190dc3e381a689d392df749d89217b31234a8 Mon Sep 17 00:00:00 2001 From: rmrlangford Date: Thu, 18 Jul 2024 13:06:32 +0200 Subject: [PATCH 2/7] Update examples.fsh --- input/fsh/examples.fsh | 54 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/input/fsh/examples.fsh b/input/fsh/examples.fsh index 493e7fbf7..83f1a0b32 100644 --- a/input/fsh/examples.fsh +++ b/input/fsh/examples.fsh @@ -3795,4 +3795,56 @@ Description: "Used to record the TB treatment details for the patient." * subject = Reference(GeneralPatientExample) * encounter = Reference(GeneralEncounterExample) * activity[+].reference = Reference(TBScreeningServiceRequestExample) -* activity[=].outcomeReference = Reference(TBTreatmentStatusRx1ObservationExample) \ No newline at end of file +* activity[=].outcomeReference = Reference(TBTreatmentStatusRx1ObservationExample) + +Instance: TPTMedicationExample +InstanceOf: TPTMedication +Usage: #example +Title: "Medication - Represents a medication for TB Preventive Therapy (TPT)" +Description: "Used to record the TPT medication that will be prescribed to the patient." +* code = $LNC#18934-0 +* code.text = "INH" + +Instance: TPTMedicationRequestExample +InstanceOf: TPTMedicationRequest +Usage: #example +Title: "Medication Request - INH For TB Preventive Therapy (TPT)" +Description: "Used to indicate a request for INH medication to be prescribed to a patient." +* identifier[RequestID].value = "prescription-12345" +* identifier[RequestID].system = $PrescriptionID +* identifier[RequestID].type = $IdentifierTypeCodeSystem#FILL +* identifier[RequestID].type.text = "Prescription identifier" +* authoredOn = "2023-10-11T17:21:33-08:00" +* status = #completed +* intent = #order +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* medicationReference = Reference(TPTMedicationExample) +* basedOn = Reference(TPTCareplanExample) + +Instance: TPTCareplanExample +InstanceOf: TPTCareplan +Usage: #example +Title: "Care Plan - INH For TB Preventive Therapy (TPT)" +Description: "Used to add the details regarding the request for INH medication to the TPT care plan for the patient." +* status = #active +* intent = #order +* created = "2024-03-20" +* category[+] = $LNC#LA6762-4 +* category[=].text = "TB treatment" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* activity[+].reference = Reference(TPTMedicationRequestExample) +* activity[=].outcomeReference = Reference(INHAtFollowupCompletedObservationExample) + +Instance: TPTMedicationStatementExample +InstanceOf: TPTMedicationStatement +Usage: #example +Title: "Medication Statement - INH For TB Preventive Therapy (TPT)" +Description: "Adds the prescribed medication of INH to the medication history for the patient." +* status = #active +* medicationReference = Reference(TPTMedicationExample) +* subject = Reference(GeneralPatientExample) +* context = Reference(GeneralEncounterExample) +* effectivePeriod.start = "2009-11-24" +* reasonReference = Reference(TBProphylaxisTypeINHObservationExample) \ No newline at end of file From 91970eda7a37c9a83ebbdcfe2dce4caa1d02f705 Mon Sep 17 00:00:00 2001 From: rmrlangford Date: Thu, 18 Jul 2024 15:38:15 +0200 Subject: [PATCH 3/7] updated --- input/fsh/alias.fsh | 1 - input/fsh/examples.fsh | 98 ++------------------------- input/fsh/profiles.fsh | 139 ++++++++++++++++++-------------------- input/fsh/terminology.fsh | 34 ++++------ 4 files changed, 85 insertions(+), 187 deletions(-) diff --git a/input/fsh/alias.fsh b/input/fsh/alias.fsh index b3dbe81c4..45aee4cca 100644 --- a/input/fsh/alias.fsh +++ b/input/fsh/alias.fsh @@ -7,7 +7,6 @@ Alias: $ENCOUNTER = http://moh.gov.et/fhir/hiv/identifier/encounter Alias: $SCT = http://snomed.info/sct Alias: $UCUM_UNIT = http://unitsofmeasure.org Alias: $OrderableDrugForm_UNIT = http://terminology.hl7.org/CodeSystem/v3-orderableDrugForm -Alias: $CARE_PLAN_CC = http://moh.gov.et/fhir/hiv/CodeSystem/cervical-cancer-care-plan-code-system Alias: $PRECANCEROUS_TREAT = http://moh.gov.et/fhir/hiv/CodeSystem/precancerous-lesion-treatment-received-code-system Alias: $SUSPICIOUS_CANCEROUS_TREAT = http://moh.gov.et/fhir/hiv/CodeSystem/suspicious-cancerous-treatment-code-system Alias: $LNC = http://loinc.org diff --git a/input/fsh/examples.fsh b/input/fsh/examples.fsh index 83f1a0b32..48a28e156 100644 --- a/input/fsh/examples.fsh +++ b/input/fsh/examples.fsh @@ -263,92 +263,6 @@ Description: "Service request used to make a request for a referral." * reasonReference = Reference(HIVProgramFinalOutcomeKnownAsConfirmedReferralExample) * locationReference[+] = Reference(EncounterLocationHIVTestingExample) -Instance: CervicalCancerCarePlanPrecancerousLesionExample -InstanceOf: CervicalCancerCarePlan -Usage: #example -Title: "Cervical Cancer Care Plan - Treatment for Precancerous Lesion After a Positive HPV Screening" -Description: "Used to record the cervical cancer screening details for the patient receiving treatment for precancerous lesion." -* status = #completed -* intent = #order - -* category[CervicalCancer] = $CARE_PLAN_CC#cervical-cancer-care-plan -* category[CervicalCancer].text = "Cervical cancer care plan" - -* subject = Reference(GeneralPatientExample) -* encounter = Reference(GeneralEncounterExample) - -* activity[PRECANCEROUS].detail.reasonCode[DIAGNOSIS_CODE] = $SCT#285636001 -* activity[PRECANCEROUS].detail.reasonCode[DIAGNOSIS_CODE].text = "precancerous lesion" - -* activity[PRECANCEROUS].detail.code = $PRECANCEROUS_TREAT#thermo-coagulation -* activity[PRECANCEROUS].detail.code.text = "Thermo-Coagulation" -* activity[PRECANCEROUS].detail.status = #completed -* activity[PRECANCEROUS].detail.scheduledPeriod.start = "2022-03-21" -* activity[PRECANCEROUS].extension[NextVisitDate].valueDateTime = "2024-11-28" - -* activity[PRECANCEROUS].detail.reasonReference[+] = Reference(CervicalCancerHPVPositiveScreeningResultExample) - -Instance: CervicalCancerCarePlanSuspiciousLesionExample -InstanceOf: CervicalCancerCarePlan -Usage: #example -Title: "Cervical Cancer Care Plan - Treatement for Suspicious Cancerous Lesion After a Positive HPV Screening" -Description: "Used to record the cervical cancer screening details for the patient receiving treatment for suspicious cancerous lesion." -* status = #completed -* intent = #order - -* category[CervicalCancer] = $CARE_PLAN_CC#cervical-cancer-care-plan -* category[CervicalCancer].text = "Cervical cancer care plan" - -* subject = Reference(GeneralPatientExample) -* encounter = Reference(GeneralEncounterExample) - -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode[DIAGNOSIS_CODE] = $SCT#315266007 -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode[DIAGNOSIS_CODE].text = "Suspected cervical cancer" - -* activity[SUSPICIOUS_CC_TREATMENT].detail.code = $SUSPICIOUS_CANCEROUS_TREAT#treated-at-facility -* activity[SUSPICIOUS_CC_TREATMENT].detail.code.text = "Treated at the facility" -* activity[SUSPICIOUS_CC_TREATMENT].detail.status = #completed -* activity[SUSPICIOUS_CC_TREATMENT].detail.scheduledPeriod.start = "2022-03-21" -* activity[SUSPICIOUS_CC_TREATMENT].extension[NextVisitDate].valueDateTime = "2024-11-28" - -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonReference[+] = Reference(CervicalCancerHPVPositiveScreeningResultExample) - -Instance: CervicalCancerCarePlanFullExample -InstanceOf: CervicalCancerCarePlan -Usage: #example -Title: "Cervical Cancer Care Plan - Full Care Plan After Positive Screening For HPV and VIA" -Description: "Used to record the cervical cancer screening details for the patient." -* status = #completed -* intent = #order - -* category[CervicalCancer] = $CARE_PLAN_CC#cervical-cancer-care-plan -* category[CervicalCancer].text = "Cervical cancer care plan" - -* subject = Reference(GeneralPatientExample) -* encounter = Reference(GeneralEncounterExample) - -* activity[PRECANCEROUS].detail.reasonCode[DIAGNOSIS_CODE] = $SCT#285636001 -* activity[PRECANCEROUS].detail.reasonCode[DIAGNOSIS_CODE].text = "precancerous lesion" - -* activity[PRECANCEROUS].detail.code = $PRECANCEROUS_TREAT#thermo-coagulation -* activity[PRECANCEROUS].detail.code.text = "Thermo-Coagulation" -* activity[PRECANCEROUS].detail.status = #completed -* activity[PRECANCEROUS].detail.scheduledPeriod.start = "2022-03-21" -* activity[PRECANCEROUS].extension[NextVisitDate].valueDateTime = "2024-11-28" - -* activity[PRECANCEROUS].detail.reasonReference[+] = Reference(CervicalCancerHPVPositiveScreeningResultExample) -* activity[PRECANCEROUS].detail.reasonReference[+] = Reference(CervicalCancerVIAPositiveScreeningResultExample) - -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode[DIAGNOSIS_CODE] = $SCT#315266007 -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode[DIAGNOSIS_CODE].text = "Suspected cervical cancer" - -* activity[SUSPICIOUS_CC_TREATMENT].detail.code = $SUSPICIOUS_CANCEROUS_TREAT#treated-at-facility -* activity[SUSPICIOUS_CC_TREATMENT].detail.code.text = "Treated at the facility" -* activity[SUSPICIOUS_CC_TREATMENT].detail.status = #completed -* activity[SUSPICIOUS_CC_TREATMENT].detail.scheduledPeriod.start = "2022-03-21" -* activity[SUSPICIOUS_CC_TREATMENT].extension[NextVisitDate].valueDateTime = "2025-01-28" -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonReference[+] = Reference(CervicalCancerHPVPositiveScreeningResultExample) - Instance: SuppressedViralLoadResultExample InstanceOf: ViralLoadResultObservation Usage: #example @@ -2347,7 +2261,7 @@ Description: "Records the health related activities for patients associated with * identifier[EpisodeOfCareID][=].system = $EpisodeOfCareID * status = #active * type.coding[ART] = $LNC#LP66375-4 -* type.coding[TB] = $LNC#LA6762-4 +* type.coding[TB] = $SCT#171126009 * patient = Reference(GeneralPatientExample) * managingOrganization = Reference(CurrentServiceProviderExample) @@ -2953,7 +2867,7 @@ Description: "Used to record the cotrimoxazole preventive therapy details for th * status = #active * intent = #order * created = "2024-03-20" -* category[+] = $LNC#18998-5 +* category[+] = $LNC#LP173209-0 * category[=].text = "Cotrimoxazole Preventive Therapy" * subject = Reference(GeneralPatientExample) * encounter = Reference(GeneralEncounterExample) @@ -2967,7 +2881,7 @@ Description: "Used to record the cotrimoxazole preventive therapy details for th * status = #active * intent = #order * created = "2024-03-20" -* category[+] = $LNC#18998-5 +* category[+] = $LNC#LP173209-0 * category[=].text = "Cotrimoxazole Preventive Therapy" * subject = Reference(GeneralPatientExample) * encounter = Reference(GeneralEncounterExample) @@ -3790,7 +3704,7 @@ Description: "Used to record the TB treatment details for the patient." * status = #active * intent = #order * created = "2024-03-20" -* category[+] = $LNC#LA6762-4 +* category[+] = $LNC#LP173209-0 * category[=].text = "TB treatment" * subject = Reference(GeneralPatientExample) * encounter = Reference(GeneralEncounterExample) @@ -3830,12 +3744,12 @@ Description: "Used to add the details regarding the request for INH medication t * status = #active * intent = #order * created = "2024-03-20" -* category[+] = $LNC#LA6762-4 +* category[+] = $LNC#LP173209-0 * category[=].text = "TB treatment" * subject = Reference(GeneralPatientExample) * encounter = Reference(GeneralEncounterExample) * activity[+].reference = Reference(TPTMedicationRequestExample) -* activity[=].outcomeReference = Reference(INHAtFollowupCompletedObservationExample) +* activity[=].outcomeReference = Reference(TBProphylaxisTypeINHObservationExample) Instance: TPTMedicationStatementExample InstanceOf: TPTMedicationStatement diff --git a/input/fsh/profiles.fsh b/input/fsh/profiles.fsh index d71ca0bf2..60a52ae2c 100644 --- a/input/fsh/profiles.fsh +++ b/input/fsh/profiles.fsh @@ -339,6 +339,50 @@ Description: "Is used to record the personal information of the person that is r * address.state ^definition = "reason(s) why this should be supported." +Profile: CervicalCancerScreeningServiceRequest +Parent: GenericServiceRequest +Id: cervical-cancer-screening-method-service-request +Title: "Service Request - Cervical Cancer Screening Method" +Description: "Represents the service request for the method of cervical cancer screening." +* code from CervicalCancerScreeningMethodValueSet (required) +* category 1..1 +* category = $LNC#LP114948-5 +* authoredOn 1..1 + +Profile: CervicalCancerDiagnosticReport +Parent: GenericDiagnosticReport +Id: cervical-cancer-diagnostic-report +Title: "Diagnostic Report - Cervical Cancer" +Description: "Represents the results for the cervical cancer screening." +* code = $LNC#72135-7 +* result 1..1 +* result only Reference(CervicalCancerScreeningResult) +* basedOn only Reference(CervicalCancerScreeningServiceRequest) + +Profile: CervicalCancerTreatmentServiceRequest +Parent: GenericServiceRequest +Id: cervical-cancer-treatment-service-request +Title: "Service Request - Cervical Cancer Treatment" +Description: "Represents the service request for the cervical cancer treatment." +* code from CervicalCancerTreatmentReceivedValueSet (required) +* category 1..1 +* category = $LNC#LP114959-2 +* authoredOn 1..1 +* reasonReference 1..1 +* reasonReference only Reference(CervicalCancerDiagnosticReport) + +Profile: CervicalCancerTreatmentReceived +Parent: GenericObservation +Id: cervical-cancer-treatment-received-observation +Title: "Observation - Cervical Cancer Treatment Received" +Description: "This is used to record the date the patient received cervical cancer treatment." +* category 1..1 +* category = $OBSERVATION_CATEGORY#exam +* code = $LNC#LA13405-8 +* value[x] only dateTime +* valueDateTime 1..1 +* basedOn 1..1 +* basedOn only Reference(CervicalCancerScreeningServiceRequest) Profile: CervicalCancerCarePlan Parent: CarePlan @@ -347,79 +391,24 @@ Title: "Care Plan - Cervical Cancer" Description: "Used to record the cervical cancer details for the patient." * status 1..1 * intent 1..1 - -* category 1..* - -* insert Slice(category, reasons why this should be supported, value, coding, open, Slicing the Careplan category based on the system value, false) - -* category contains - CervicalCancer 1..1 - -* category[CervicalCancer] 1..1 -* category[CervicalCancer].coding 1..1 -* category[CervicalCancer].coding = $CARE_PLAN_CC#cervical-cancer-care-plan - +* category 1..1 +* category = $LNC#LP173209-0 * subject 1..1 * subject only Reference(EthPatient) - * encounter 1..1 * encounter only Reference(TargetFacilityEncounter) -* activity 0..* MS -* activity ^definition = "reason(s) why this should be supported." - -* insert Slice(activity, reasons why this should be supported, value, detail.code, open, Slicing the Cervical cancer activities based on the code value, false) - -* activity contains - PRECANCEROUS 0..1 MS and - SUSPICIOUS_CC_TREATMENT 0..1 MS - -* activity.detail.code 0..1 MS -* activity.detail.code ^definition = "reason(s) why this should be supported." -* activity.detail.code 1..1 -* activity.detail.code.coding only StrictCoding -* activity.detail.status 1..1 -* activity.detail.scheduledPeriod 1..1 -* activity.detail.scheduledPeriod.start 1..1 -* activity.detail.reasonReference 1..* -* activity.detail.reasonReference only Reference(CervicalCancerScreeningResult) - -* activity[PRECANCEROUS] ^definition = "reason(s) why this should be supported." - -* insert Slice(activity[PRECANCEROUS].detail.reasonCode, reasons why this should be supported, value, coding, open, Slicing the reasonCode based on the system value, false) - -* activity[PRECANCEROUS].detail.reasonCode contains - DIAGNOSIS_CODE 1..1 - -* activity[PRECANCEROUS].detail.reasonCode 1..1 -* activity[PRECANCEROUS].detail.reasonCode[DIAGNOSIS_CODE].coding 1..1 -* activity[PRECANCEROUS].detail.reasonCode[DIAGNOSIS_CODE].coding = $SCT#285636001 - -* activity[PRECANCEROUS].detail.code 1..1 -* activity[PRECANCEROUS].detail.code from PrecancerousLesionTreatmentReceivedValueSet (required) - -* activity[PRECANCEROUS].extension contains NextVisitDateExtension named NextVisitDate 0..1 MS -* activity[PRECANCEROUS].extension[NextVisitDate] ^definition = "reason(s) why this should be supported." - -* activity[SUSPICIOUS_CC_TREATMENT] ^definition = "reason(s) why this should be supported." - -* insert Slice(activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode, reasons why this should be supported, value, coding, open, Slicing the reasonCode based on the system value, false) -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode - * ^slicing.discriminator[+].type = #exists - * ^slicing.discriminator[=].path = "coding" - -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode contains - DIAGNOSIS_CODE 1..1 - -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode 1..1 -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode[DIAGNOSIS_CODE].coding 1..1 -* activity[SUSPICIOUS_CC_TREATMENT].detail.reasonCode[DIAGNOSIS_CODE].coding = $SCT#315266007 +* activity 1..* MS +* activity.reference 1..1 +* activity.reference only Reference(CervicalCancerScreeningServiceRequest or CervicalCancerTreatmentServiceRequest) -* activity[SUSPICIOUS_CC_TREATMENT].detail.code 1..1 -* activity[SUSPICIOUS_CC_TREATMENT].detail.code from SuspiciousCancerousTreatmentValueSet (required) +* activity.outcomeReference 0..1 MS +* activity.outcomeReference ^definition = + "reason(s) why this should be supported." +* activity.outcomeReference only Reference(CervicalCancerTreatmentReceived) -* activity[SUSPICIOUS_CC_TREATMENT].extension contains NextVisitDateExtension named NextVisitDate 0..1 MS -* activity[SUSPICIOUS_CC_TREATMENT].extension[NextVisitDate] ^definition = "reason(s) why this should be supported." +* activity.extension contains NextVisitDateExtension named NextVisitDate 0..1 MS +* activity.extension[NextVisitDate] ^definition = "reason(s) why this should be supported." Profile: ViralLoadResultObservation Parent: GenericObservation @@ -1324,6 +1313,8 @@ Description: "This is used to record the patient's cervical cancer screening met * value[x] only CodeableConcept * valueCodeableConcept 1..1 * valueCodeableConcept from CervicalCancerScreeningMethodValueSet (required) +* basedOn 1..1 +* basedOn only Reference(CervicalCancerScreeningServiceRequest) Profile: CervicalCancerScreeningResult Parent: GenericObservation @@ -1761,7 +1752,7 @@ Description: "Records the health related activities for patients associated with * type.coding[HIV-Tracking] ^definition = "reason(s) why this should be supported." * type.coding[HIV-Tracking].code 1..1 -* type.coding[HIV-Tracking].code = $LNC#LP102363-1 +* type.coding[HIV-Tracking].code = $LNC#LA28577-7 * type.coding[ART] ^definition = "reason(s) why this should be supported." @@ -1771,17 +1762,17 @@ Description: "Records the health related activities for patients associated with * type.coding[TB] ^definition = "reason(s) why this should be supported." * type.coding[TB].code 1..1 -* type.coding[TB].code = $LNC#LA6762-4 +* type.coding[TB].code = $SCT#171126009 * type.coding[TPT] ^definition = "reason(s) why this should be supported." * type.coding[TPT].code 1..1 -* type.coding[TPT].code = $SCT#1280002000 +* type.coding[TPT].code = $SCT#699618001 * type.coding[Cervical-Cancer] ^definition = "reason(s) why this should be supported." * type.coding[Cervical-Cancer].code 1..1 -* type.coding[Cervical-Cancer].code = $CARE_PLAN_CC#cervical-cancer-care-plan +* type.coding[Cervical-Cancer].code = $SCT#702455009 * patient only Reference(EthPatient) * managingOrganization 1..1 @@ -2190,7 +2181,7 @@ Description: "Used to record the cotrimoxazole preventive therapy details for th * status 1..1 * intent 1..1 * category 1..1 -* category = $LNC#18998-5 +* category = $LNC#LP173209-0 * category.text 1..1 * category.text = "Cotrimoxazole Preventive Therapy" * subject 1..1 @@ -2694,7 +2685,7 @@ Description: "Used to record the TB treatment details for the patient." * status 1..1 * intent 1..1 * category 1..1 -* category = $LNC#LA6762-4 +* category = $LNC#LP173209-0 * category.text 1..1 * category.text = "TB treatment" * subject 1..1 @@ -2747,7 +2738,7 @@ Description: "Used to record the TPT details for the patient." * status 1..1 * intent 1..1 * category 1..1 -* category = $LNC#LA6762-4 +* category = $LNC#LP173209-0 * category.text 1..1 * category.text = "TB treatment" * subject 1..1 @@ -2767,7 +2758,7 @@ Description: "Used to record the TPT details for the patient." * activity.outcomeReference contains TreatmentStatus 1..1 -* activity.outcomeReference[TreatmentStatus] only Reference(INHAtFollowupObservation or AlternateTPTAtFollowupObservation) +* activity.outcomeReference[TreatmentStatus] only Reference(TBProphylaxisTypeObservation) * activity.reference 1..1 * activity.reference only Reference(TPTMedicationRequest) diff --git a/input/fsh/terminology.fsh b/input/fsh/terminology.fsh index 07c897216..242671179 100644 --- a/input/fsh/terminology.fsh +++ b/input/fsh/terminology.fsh @@ -141,13 +141,13 @@ Description: "HIV CarePlan Activities" * $LNC#67723-7 "Date of health-related event" //* include codes from system HIVCarePlanActivitiesCodeSystem*/ -CodeSystem: CervicalCancerCarePlanCodeSystem +/*CodeSystem: CervicalCancerCarePlanCodeSystem Id: cervical-cancer-care-plan-code-system Title: "Cervical Cancer CarePlan" Description: "A list of codes describing the cervical cancer care plan category code" * ^experimental = false * ^caseSensitive = true -* #cervical-cancer-care-plan "Cervical cancer care plan" +* #cervical-cancer-care-plan "Cervical cancer care plan"*/ /*ValueSet: CervicalCancerCarePlanValueSet Id: cervical-cancer-care-plan-value-set @@ -225,12 +225,13 @@ Description: "A list of codes describing the precancerous lesion treatment recei * #referred-for-suspicious-cancer-evaluation "Referred for Suspicious cancer evaluation" //* #other "Other" -ValueSet: PrecancerousLesionTreatmentReceivedValueSet -Id: precancerous-lesion-treatment-received-value-set -Title: "Precancerous Lesion Treatment Received ValueSet" -Description: "Precancerous Lesion Treatment Received ValueSet" +ValueSet: CervicalCancerTreatmentReceivedValueSet +Id: cervical-cancer-treatment-received-value-set +Title: "Cervical Cancer Treatment Received" +Description: "Cervical Cancer Treatment Received" * ^experimental = false * include codes from system PrecancerousLesionTreatmentReceivedCodeSystem +* include codes from system SuspiciousCancerousTreatmentCodeSystem CodeSystem: SuspiciousCancerousTreatmentCodeSystem Id: suspicious-cancerous-treatment-code-system @@ -243,13 +244,6 @@ Description: "A list of codes describing the suspicious Cancerous treatment" * #arrival-in-receiving-facility-confirmed "Arrival in receiving facility confirmed" * #feedback-received-by-referring-hf "Feedback received by referring HF" -ValueSet: SuspiciousCancerousTreatmentValueSet -Id: suspicious-cancerous-treatment-value-set -Title: "Suspicious Cancerous Treatment ValueSet" -Description: "Suspicious Cancerous Treatment ValueSet" -* ^experimental = false -* include codes from system SuspiciousCancerousTreatmentCodeSystem - /*ValueSet: EntryPointValueSet Id: entry-point-value-set Title: "Entry Point" @@ -260,8 +254,8 @@ Description: "Entry Point" /*ValueSet: NutritionalStatusValueSet Id: nutritional-status-value-set -Title: "Nutritional Status ValueSet" -Description: "Nutritional Status ValueSet" +Title: "Nutritional Status" +Description: "Nutritional Status" * ^experimental = false * $SCT#17621005 "Normal" * $SCT#238131007 "Overweight" @@ -274,8 +268,8 @@ Description: "Nutritional Status ValueSet" ValueSet: ARVAdherenceValueSet Id: arv-adherence-value-set -Title: "ARV Adherence ValueSet" -Description: "ARV Adherence ValueSet" +Title: "ARV Adherence" +Description: "ARV Adherence" * ^experimental = false * $LNC#LA8969-3 "Poor" * $LNC#LA8968-5 "Fair" @@ -294,7 +288,7 @@ Description: "A list of codes describing the Cervical Cancer Screening Method" ValueSet: CervicalCancerScreeningMethodValueSet Id: cervical-cancer-screening-method-value-set -Title: "Cervical Cancer Screening Method ValueSet" +Title: "Cervical Cancer Screening Method" Description: "Cervical Cancer Screening Method." * ^experimental = false * include codes from system CervicalCancerScreeningMethodCodeSystem @@ -340,8 +334,8 @@ Description: "A list of codes describing the Cervical Cancer Screening Results" /*ValueSet: HPVDNATestResultValueSet Id: hpv-dna-test-result-value-set -Title: "HPV DNA Test Result ValueSet" -Description: "HPV DNA Test Result ValueSet" +Title: "HPV DNA Test Result" +Description: "HPV DNA Test Result" * ^experimental = false * $SCT#720005005 * $SCT#787724008 From c78cc2f7d8325c5df51a7a63b9cb41e720af13e9 Mon Sep 17 00:00:00 2001 From: rmrlangford Date: Thu, 18 Jul 2024 21:16:23 +0200 Subject: [PATCH 4/7] updated --- input/fsh/examples.fsh | 193 ++++++++++++++++++++++++++++++++++++-- input/fsh/profiles.fsh | 19 ++-- input/fsh/terminology.fsh | 2 +- 3 files changed, 196 insertions(+), 18 deletions(-) diff --git a/input/fsh/examples.fsh b/input/fsh/examples.fsh index 48a28e156..0685af6ef 100644 --- a/input/fsh/examples.fsh +++ b/input/fsh/examples.fsh @@ -1025,7 +1025,7 @@ Title: "Service Request - Referred to PMTCT" Description: "Represents a service request for the patient's referral to PMTCT." * status = #completed * intent = #order -* code = $SCT#3457005 +* code = $LNC#LP173238-9 * code.text = "Patient referral" * subject = Reference(GeneralPatientExample) * encounter = Reference(GeneralEncounterExample) @@ -1464,8 +1464,8 @@ Description: "This is used to record the patient's cervical cancer screening typ Instance: CervicalCancerScreeningMethodExample InstanceOf: CervicalCancerScreeningMethod Usage: #example -Title: "Observation - Cervical Cancer Screening Method" -Description: "This is used to record the patient's cervical cancer screening method." +Title: "Observation - Cervical Cancer Screening HPV Method" +Description: "This is used to record the patient's cervical cancer screening method as HPV." * status = #final * category = $OBSERVATION_CATEGORY#exam * code = $SCT#171149006 @@ -1475,6 +1475,7 @@ Description: "This is used to record the patient's cervical cancer screening met * encounter = Reference(GeneralEncounterExample) * performer = Reference(CurrentServiceProviderExample) * effectiveDateTime = "2024-01-25" +* basedOn = Reference(CervicalCancerScreeningServiceRequestForHPVExample) Instance: CervicalCancerHPVPositiveScreeningResultExample InstanceOf: CervicalCancerScreeningResult @@ -1491,7 +1492,7 @@ Description: "Indicates that the patient has a positive screening for HPV." * performer = Reference(CurrentServiceProviderExample) * effectiveDateTime = "2024-01-25" * derivedFrom = Reference(CervicalCancerScreeningDoneExample) -* basedOn = Reference(CervicalCancerCarePlanFullExample) +* basedOn = Reference(CervicalCancerCarePlanHPVWithTreatmentRequestExample) Instance: CervicalCancerVIAPositiveScreeningResultExample InstanceOf: CervicalCancerScreeningResult @@ -1508,7 +1509,7 @@ Description: "Indicates that the patient has a positive screening for VIA." * performer = Reference(CurrentServiceProviderExample) * effectiveDateTime = "2024-01-25" * derivedFrom = Reference(CervicalCancerScreeningDoneExample) -* basedOn = Reference(CervicalCancerCarePlanFullExample) +* basedOn = Reference(CervicalCancerCarePlanVIAWithTreatmentRequestExample) Instance: CervicalCancerHPVNegtiveScreeningResultExample InstanceOf: CervicalCancerScreeningResult @@ -1896,8 +1897,8 @@ Description: "Used to record the OI medication (Fluconazole) that will be prescr * code = $LNC#18924-1 * code.text = "Fluconazole" -Instance: ReferralWithinFacilitytExample -InstanceOf: ReferralInServiceRequest +Instance: ReferralWithinFacilityExample +InstanceOf: HIVReferralInServiceRequest Usage: #example Title: "Service Request - Incoming Referral From Within Facility - (Existing ART Client)" Description: "Used to capture a pateint's referral information." @@ -1914,7 +1915,7 @@ Description: "Used to capture a pateint's referral information." * reasonCode = $LNC#LA6517-2 Instance: ReferralFromOutsideFacilitytExample -InstanceOf: ReferralInServiceRequest +InstanceOf: HIVReferralInServiceRequest Usage: #example Title: "Service Request - Incoming Referral From Outside Facility - (New ART Client)" Description: "Used to capture a pateint's referral information." @@ -2216,7 +2217,7 @@ Description: "Records the health related activities for patients associated with * type.coding[ART] = $LNC#LP66375-4 * patient = Reference(GeneralPatientExample) * managingOrganization = Reference(CurrentServiceProviderExample) -* referralRequest[Incoming] = Reference(ReferralWithinFacilitytExample) +* referralRequest[Incoming] = Reference(ReferralWithinFacilityExample) Instance: HIVEpisodeOfCareReferralFromOutsideFacilityExample InstanceOf: EthEpisodeOfCare @@ -3761,4 +3762,176 @@ Description: "Adds the prescribed medication of INH to the medication history fo * subject = Reference(GeneralPatientExample) * context = Reference(GeneralEncounterExample) * effectivePeriod.start = "2009-11-24" -* reasonReference = Reference(TBProphylaxisTypeINHObservationExample) \ No newline at end of file +* reasonReference = Reference(TBProphylaxisTypeINHObservationExample) + +Instance: CervicalCancerScreeningServiceRequestForHPVExample +InstanceOf: CervicalCancerScreeningServiceRequest +Usage: #example +Title: "Service Request - Cervical Cancer Screening HPV Method" +Description: "Represents the service request for the HPV method of cervical cancer screening." +* status = #active +* intent = #order +* code = $CERVICAL_CANCER_SCREENING_METHOD#hpv-dna-test +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* authoredOn = "2024-01-25" + +Instance: CervicalCancerDiagnosticReportForHPVExample +InstanceOf: CervicalCancerDiagnosticReport +Usage: #example +Title: "Diagnostic Report - Tested Positive for Cervical Cancer (HPV)" +Description: "Indicates that the patient tested HPV positive for cervical cancer." +* status = #final +* category = $LNC#11502-2 +* code = $LNC#72135-7 +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* result = Reference(CervicalCancerHPVPositiveScreeningResultExample) +* issued = "2024-01-25T11:45:33+11:00" +* basedOn = Reference(CervicalCancerScreeningServiceRequestForHPVExample) +* performer = Reference(CurrentServiceProviderExample) + +Instance: CervicalCancerTreatmentServiceRequestForHPVExample +InstanceOf: CervicalCancerTreatmentServiceRequest +Usage: #example +Title: "Service Request - Request for Cryotherapy as Treatment for Cervical Cancer (HPV Positive)" +Description: "Indicates that a request was made for cryotherapy as the targeted treatment for the HPV positive patient" +* status = #active +* intent = #order +* code = $PRECANCEROUS_TREAT#cryotherapy +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* authoredOn = "2024-01-25" +* reasonReference = Reference(CervicalCancerDiagnosticReportForHPVExample) + +Instance: CervicalCancerTreatmentReceivedForHPVExample +InstanceOf: CervicalCancerTreatmentReceived +Usage: #example +Title: "Observation - Received Cryotherapy Treatment For the HPV+ Diagnosis" +Description: "Indicates that the patient received cryotherapy as treatment after being diagnosed psoitive for cervical cancer (using HPV as the method)." +* status = #final +* category = $OBSERVATION_CATEGORY#therapy +* code = $LNC#LA13405-8 +* code.text = "Treatment received" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* effectiveDateTime = "2023-12-11" +* performer = Reference(CurrentServiceProviderExample) +* valueDateTime = "2023-12-11" +* basedOn = Reference(CervicalCancerScreeningServiceRequestForHPVExample) + +Instance: CervicalCancerCarePlanHPVExample +InstanceOf: CervicalCancerCarePlan +Usage: #example +Title: "Care Plan - Request for Cervical Cancer Screening (HPV Method)" +Description: "Indicates the activity associated with the request for cervical cancer screening using HPV as the method of screening." +* status = #active +* intent = #order +* created = "2024-03-20" +* category[+] = $LNC#LP173209-0 +* category[=].text = "Cervical cancer" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* activity[+].reference = Reference(CervicalCancerScreeningServiceRequestForHPVExample) + +Instance: CervicalCancerCarePlanHPVWithTreatmentRequestExample +InstanceOf: CervicalCancerCarePlan +Usage: #example +Title: "Care Plan - Request for Cervical Cancer Screening (HPV Method) - Incl. the Service Request For Cryotherapy Treatment" +Description: "Indicates the activities associated with the requests for cervical cancer screening (using HPV as the method) and cryotherapy as the received treatment." +* status = #active +* intent = #order +* created = "2024-03-20" +* category[+] = $LNC#LP173209-0 +* category[=].text = "Cervical cancer" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* activity[+].reference = Reference(CervicalCancerScreeningServiceRequestForHPVExample) +* activity[=].reference = Reference(CervicalCancerTreatmentServiceRequestForHPVExample) +* activity[=].outcomeReference = Reference(CervicalCancerTreatmentReceivedForHPVExample) + +Instance: CervicalCancerScreeningServiceRequestForVIAExample +InstanceOf: CervicalCancerScreeningServiceRequest +Usage: #example +Title: "Service Request - Cervical Cancer Screening VIA Method" +Description: "Represents the service request for the VIA method of cervical cancer screening." +* status = #active +* intent = #order +* code = $CERVICAL_CANCER_SCREENING_METHOD#via-test +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* authoredOn = "2024-01-25" + +Instance: CervicalCancerDiagnosticReportForVIAExample +InstanceOf: CervicalCancerDiagnosticReport +Usage: #example +Title: "Diagnostic Report - Tested Positive for Cervical Cancer (VIA)" +Description: "Indicates that the patient tested VIA positive for cervical cancer." +* status = #final +* category = $LNC#11502-2 +* code = $LNC#72135-7 +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* result = Reference(CervicalCancerVIAPositiveScreeningResultExample) +* issued = "2024-01-25T11:45:33+11:00" +* basedOn = Reference(CervicalCancerScreeningServiceRequestForVIAExample) +* performer = Reference(CurrentServiceProviderExample) + +Instance: CervicalCancerTreatmentServiceRequestForVIAExample +InstanceOf: CervicalCancerTreatmentServiceRequest +Usage: #example +Title: "Service Request - Request for Cryotherapy as Treatment for Cervical Cancer (VIA Positive)" +Description: "Indicates that a request was made for cryotherapy as the targeted treatment for the VIA positive patient" +* status = #active +* intent = #order +* code = $PRECANCEROUS_TREAT#cryotherapy +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* authoredOn = "2024-01-25" +* reasonReference = Reference(CervicalCancerDiagnosticReportForVIAExample) + +Instance: CervicalCancerTreatmentReceivedForVIAExample +InstanceOf: CervicalCancerTreatmentReceived +Usage: #example +Title: "Observation - Received Cryotherapy Treatment For the VIA+ Diagnosis" +Description: "Indicates that the patient received cryotherapy as treatment after being diagnosed psoitive for cervical cancer (using VIA as the method)." +* status = #final +* category = $OBSERVATION_CATEGORY#therapy +* code = $LNC#LA13405-8 +* code.text = "Treatment received" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* effectiveDateTime = "2023-12-11" +* performer = Reference(CurrentServiceProviderExample) +* valueDateTime = "2023-12-11" +* basedOn = Reference(CervicalCancerScreeningServiceRequestForVIAExample) + +Instance: CervicalCancerCarePlanVIAExample +InstanceOf: CervicalCancerCarePlan +Usage: #example +Title: "Care Plan - Request for Cervical Cancer Screening (VIA Method)" +Description: "Indicates the activity associated with the request for cervical cancer screening using VIA as the method of screening." +* status = #active +* intent = #order +* created = "2024-03-20" +* category[+] = $LNC#LP173209-0 +* category[=].text = "Cervical cancer" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* activity[+].reference = Reference(CervicalCancerScreeningServiceRequestForVIAExample) + +Instance: CervicalCancerCarePlanVIAWithTreatmentRequestExample +InstanceOf: CervicalCancerCarePlan +Usage: #example +Title: "Care Plan - Request for Cervical Cancer Screening (VIA Method) - Incl. the Service Request For Cryotherapy Treatment" +Description: "Indicates the activities associated with the requests for cervical cancer screening (using VIA as the method) and cryotherapy as the received treatment." +* status = #active +* intent = #order +* created = "2024-03-20" +* category[+] = $LNC#LP173209-0 +* category[=].text = "Cervical cancer" +* subject = Reference(GeneralPatientExample) +* encounter = Reference(GeneralEncounterExample) +* activity[+].reference = Reference(CervicalCancerScreeningServiceRequestForVIAExample) +* activity[=].reference = Reference(CervicalCancerTreatmentServiceRequestForVIAExample) +* activity[=].outcomeReference = Reference(CervicalCancerTreatmentReceivedForVIAExample) \ No newline at end of file diff --git a/input/fsh/profiles.fsh b/input/fsh/profiles.fsh index 60a52ae2c..55e823550 100644 --- a/input/fsh/profiles.fsh +++ b/input/fsh/profiles.fsh @@ -346,7 +346,7 @@ Title: "Service Request - Cervical Cancer Screening Method" Description: "Represents the service request for the method of cervical cancer screening." * code from CervicalCancerScreeningMethodValueSet (required) * category 1..1 -* category = $LNC#LP114948-5 +* category = $LNC#LP94892-4 * authoredOn 1..1 Profile: CervicalCancerDiagnosticReport @@ -366,7 +366,7 @@ Title: "Service Request - Cervical Cancer Treatment" Description: "Represents the service request for the cervical cancer treatment." * code from CervicalCancerTreatmentReceivedValueSet (required) * category 1..1 -* category = $LNC#LP114959-2 +* category = $LNC#89429-5 * authoredOn 1..1 * reasonReference 1..1 * reasonReference only Reference(CervicalCancerDiagnosticReport) @@ -377,7 +377,7 @@ Id: cervical-cancer-treatment-received-observation Title: "Observation - Cervical Cancer Treatment Received" Description: "This is used to record the date the patient received cervical cancer treatment." * category 1..1 -* category = $OBSERVATION_CATEGORY#exam +* category = $OBSERVATION_CATEGORY#therapy * code = $LNC#LA13405-8 * value[x] only dateTime * valueDateTime 1..1 @@ -535,6 +535,8 @@ Parent: GenericServiceRequest Id: tb-screening-service-request Title: "Service Request - TB Screening" Description: "Service request used to examine the specimen taken during TB screening." +* category 1..1 +* category = $LNC#LP94892-4 * code from TBScreeningDiagnosticTestTypeValueSet (required) * reasonReference 1..1 * reasonReference only Reference(TBScreeningResultObservation) @@ -640,6 +642,8 @@ Title: "Service Request - PCR HIV Test" Description: "Represents the service request for PCR HIV testing." * code = $LNC#9836-8 * authoredOn 1..1 +* category 1..1 +* category = $LNC#LP94892-4 Profile: ConfirmedHIVPositive Parent: GenericObservation @@ -939,7 +943,7 @@ Parent: GenericServiceRequest Id: referred-for-pmtct-service-request Title: "Service Request - Patient Referral to PMTCT" Description: "Represents a service request for the patient's referral to PMTCT." -* code = $SCT#3457005 +* code = $LNC#LP173238-9 * authoredOn 1..1 * insert Slice(orderDetail, reasons why this should be supported, value, coding, open, Slicing the items based on the linkId value, false) * orderDetail contains @@ -1497,13 +1501,14 @@ Description: "This is used to record the type for the ARV regimen change categor Profile: ReferralOutServiceRequest Parent: GenericServiceRequest -Id: refferal-out-service-request +Id: referral-out-service-request Title: "Service Request - Request for Referral" Description: "Service request used to make a request for a referral." * intent = #order * code = $LNC#LP173238-9 * locationReference 1..* * authoredOn 1..1 +* reasonReference 1..* Profile: ARVMedicationAdministration Parent: MedicationAdministration @@ -1546,7 +1551,7 @@ Description: "Used to record the OI medication that will be prescribed to the pa * code from OpportunisticInfectionsTreatmentValueSet (required) * code.text 1..1 -Profile: ReferralInServiceRequest +Profile: HIVReferralInServiceRequest Parent: GenericServiceRequest Id: referral-in-service-request Title: "Service Request - Incoming Referral Information" @@ -1790,7 +1795,7 @@ Description: "Records the health related activities for patients associated with * referralRequest[Incoming] ^definition = "reason(s) why this should be supported." -* referralRequest[Incoming] only Reference(ReferralInServiceRequest) +* referralRequest[Incoming] only Reference(HIVReferralInServiceRequest) * referralRequest[Outgoing] ^definition = "reason(s) why this should be supported." diff --git a/input/fsh/terminology.fsh b/input/fsh/terminology.fsh index 242671179..73930718d 100644 --- a/input/fsh/terminology.fsh +++ b/input/fsh/terminology.fsh @@ -223,7 +223,7 @@ Description: "A list of codes describing the precancerous lesion treatment recei * #leep "LEEP" * #referred-for-leep "Referred for LEEP" * #referred-for-suspicious-cancer-evaluation "Referred for Suspicious cancer evaluation" -//* #other "Other" +* #other "Other" ValueSet: CervicalCancerTreatmentReceivedValueSet Id: cervical-cancer-treatment-received-value-set From 71446ba01ed7895225b03ae87a8816c993e10432 Mon Sep 17 00:00:00 2001 From: rmrlangford Date: Thu, 18 Jul 2024 21:59:19 +0200 Subject: [PATCH 5/7] updated --- input/fsh/examples.fsh | 8 ++++---- input/fsh/profiles.fsh | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/input/fsh/examples.fsh b/input/fsh/examples.fsh index 0685af6ef..ab8c02134 100644 --- a/input/fsh/examples.fsh +++ b/input/fsh/examples.fsh @@ -1898,7 +1898,7 @@ Description: "Used to record the OI medication (Fluconazole) that will be prescr * code.text = "Fluconazole" Instance: ReferralWithinFacilityExample -InstanceOf: HIVReferralInServiceRequest +InstanceOf: ReferralInServiceRequest Usage: #example Title: "Service Request - Incoming Referral From Within Facility - (Existing ART Client)" Description: "Used to capture a pateint's referral information." @@ -1912,10 +1912,10 @@ Description: "Used to capture a pateint's referral information." * requester = Reference(GeneralPractitionerExample) * performer = Reference(CurrentServiceProviderExample) * locationReference = Reference(EncounterLocationANCExample) -* reasonCode = $LNC#LA6517-2 +* reasonCode[HIVReferral] = $LNC#LA6517-2 Instance: ReferralFromOutsideFacilitytExample -InstanceOf: HIVReferralInServiceRequest +InstanceOf: ReferralInServiceRequest Usage: #example Title: "Service Request - Incoming Referral From Outside Facility - (New ART Client)" Description: "Used to capture a pateint's referral information." @@ -1929,7 +1929,7 @@ Description: "Used to capture a pateint's referral information." * requester = Reference(GeneralPractitionerExample) * performer = Reference(CurrentServiceProviderExample) * locationReference = Reference(EncounterLocationHIVTestingExample) -* reasonCode = $LNC#LA6517-2 +* reasonCode[HIVReferral] = $LNC#LA6517-2 Instance: HIVStatusDisclosureAtEnrollmentExample InstanceOf: HIVStatusDisclosureAtEnrollment diff --git a/input/fsh/profiles.fsh b/input/fsh/profiles.fsh index 55e823550..8c1e97921 100644 --- a/input/fsh/profiles.fsh +++ b/input/fsh/profiles.fsh @@ -1551,7 +1551,7 @@ Description: "Used to record the OI medication that will be prescribed to the pa * code from OpportunisticInfectionsTreatmentValueSet (required) * code.text 1..1 -Profile: HIVReferralInServiceRequest +Profile: ReferralInServiceRequest Parent: GenericServiceRequest Id: referral-in-service-request Title: "Service Request - Incoming Referral Information" @@ -1559,8 +1559,18 @@ Description: "Used to capture a patient's referral information." * code = $LNC#39267-0 * authoredOn 1..1 * requester 1..1 -* reasonCode 1..1 -* reasonCode from ReferralReasonValueSet (required) +* reasonCode 1..* + +* insert Slice(reasonCode, reasons why this should be supported, value, coding, open, Slicing the reason code based on the coding value, false) + +* reasonCode contains + HIVReferral 0..1 MS + +* valueCodeableConcept[HIVReferral] ^definition = + "reason(s) why this should be supported." +* valueCodeableConcept[HIVReferral] 1..1 +* valueCodeableConcept[HIVReferral] from ReferralReasonValueSet (required) + * locationReference 1..1 Profile: HIVStatusDisclosureAtEnrollment @@ -1795,7 +1805,7 @@ Description: "Records the health related activities for patients associated with * referralRequest[Incoming] ^definition = "reason(s) why this should be supported." -* referralRequest[Incoming] only Reference(HIVReferralInServiceRequest) +* referralRequest[Incoming] only Reference(ReferralInServiceRequest) * referralRequest[Outgoing] ^definition = "reason(s) why this should be supported." From e4eecbf045a61711ed19e0bf26cf38b870cdc744 Mon Sep 17 00:00:00 2001 From: rmrlangford Date: Thu, 18 Jul 2024 22:03:45 +0200 Subject: [PATCH 6/7] Update profiles.fsh --- input/fsh/profiles.fsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/input/fsh/profiles.fsh b/input/fsh/profiles.fsh index 8c1e97921..5c2836c84 100644 --- a/input/fsh/profiles.fsh +++ b/input/fsh/profiles.fsh @@ -1566,10 +1566,10 @@ Description: "Used to capture a patient's referral information." * reasonCode contains HIVReferral 0..1 MS -* valueCodeableConcept[HIVReferral] ^definition = +* reasonCode[HIVReferral] ^definition = "reason(s) why this should be supported." -* valueCodeableConcept[HIVReferral] 1..1 -* valueCodeableConcept[HIVReferral] from ReferralReasonValueSet (required) +* reasonCode[HIVReferral] 1..1 +* reasonCode[HIVReferral] from ReferralReasonValueSet (required) * locationReference 1..1 From e85ad470947a56d3ca01ba534db12a05e99a3a4c Mon Sep 17 00:00:00 2001 From: rmrlangford Date: Thu, 18 Jul 2024 23:01:09 +0200 Subject: [PATCH 7/7] Update profiles.fsh --- input/fsh/profiles.fsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/input/fsh/profiles.fsh b/input/fsh/profiles.fsh index 5c2836c84..a99549375 100644 --- a/input/fsh/profiles.fsh +++ b/input/fsh/profiles.fsh @@ -945,11 +945,11 @@ Title: "Service Request - Patient Referral to PMTCT" Description: "Represents a service request for the patient's referral to PMTCT." * code = $LNC#LP173238-9 * authoredOn 1..1 +* orderDetail 1..* * insert Slice(orderDetail, reasons why this should be supported, value, coding, open, Slicing the items based on the linkId value, false) * orderDetail contains PMTCT 1..1 -* orderDetail[PMTCT] 1..1 * orderDetail[PMTCT].coding 1..1 * orderDetail[PMTCT].coding = $LNC#LA6505-7 @@ -1568,8 +1568,8 @@ Description: "Used to capture a patient's referral information." * reasonCode[HIVReferral] ^definition = "reason(s) why this should be supported." -* reasonCode[HIVReferral] 1..1 -* reasonCode[HIVReferral] from ReferralReasonValueSet (required) +* reasonCode[HIVReferral].coding 1..1 +* reasonCode[HIVReferral].coding from ReferralReasonValueSet (required) * locationReference 1..1