Skip to content

Commit

Permalink
updated
Browse files Browse the repository at this point in the history
  • Loading branch information
rmrlangford committed Jul 18, 2024
1 parent 95d1e73 commit b296090
Show file tree
Hide file tree
Showing 3 changed files with 157 additions and 18 deletions.
55 changes: 42 additions & 13 deletions input/fsh/examples.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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"
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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)
* 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)
111 changes: 106 additions & 5 deletions input/fsh/profiles.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
* 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)
9 changes: 9 additions & 0 deletions input/fsh/terminology.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit b296090

Please sign in to comment.