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