Skip to content

Commit

Permalink
Merge pull request #3 from jembi/complete-tb-form
Browse files Browse the repository at this point in the history
Complete tb form
  • Loading branch information
rmrlangford authored Jul 20, 2024
2 parents 02932b8 + ab098c1 commit c07c955
Show file tree
Hide file tree
Showing 5 changed files with 196 additions and 5 deletions.
5 changes: 4 additions & 1 deletion input/fsh/alias.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,7 @@ Alias: $EpisodeOfCareID = http://moh.gov.et/fhir/hiv/identifier/episode-of-care
Alias: $EACGiven = http://moh.gov.et/fhir/hiv/CodeSystem/eac-given-code-system
Alias: $TBScreeningDiagnosticTest = http://moh.gov.et/fhir/hiv/CodeSystem/tb-screening-diagnostic-test-type-code-system
Alias: $ReferenceRangeMeaning = http://terminology.hl7.org/CodeSystem/referencerange-meaning
Alias: $TPTAlternateProphylaxisType = http://moh.gov.et/fhir/hiv/CodeSystem/tpt-alternate-prophylaxis-type-code-system
Alias: $TPTAlternateProphylaxisType = http://moh.gov.et/fhir/hiv/CodeSystem/tpt-alternate-prophylaxis-type-code-system
Alias: $ListCodeCodeSystem = http://terminology.hl7.org/CodeSystem/list-example-use-codes
Alias: $ConditionCategoryCodeSystem = http://terminology.hl7.org/CodeSystem/condition-category
Alias: $ConditionClinicalStatusCodeSystem = http://terminology.hl7.org/CodeSystem/condition-clinical
85 changes: 84 additions & 1 deletion input/fsh/examples.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -3934,4 +3934,87 @@ Description: "Indicates the activities associated with the requests for cervical
* encounter = Reference(GeneralEncounterExample)
* activity[+].reference = Reference(CervicalCancerScreeningServiceRequestForVIAExample)
* activity[=].reference = Reference(CervicalCancerTreatmentServiceRequestForVIAExample)
* activity[=].outcomeReference = Reference(CervicalCancerTreatmentReceivedForVIAExample)
* activity[=].outcomeReference = Reference(CervicalCancerTreatmentReceivedForVIAExample)

Instance: OpportunisicInfectionsPulmonaryTBExample
InstanceOf: OpportunisicInfections
Usage: #example
Title: "Condition - Pulmonary Tuberculosis"
Description: "Indicates that the patient suffering from pulmonary tuberculosis."
* code = $SCT#154283005
* category = $ConditionCategoryCodeSystem#problem-list-item
* subject = Reference(GeneralPatientExample)
* encounter = Reference(GeneralEncounterExample)
* recordedDate = "2024-03-20"
* clinicalStatus = $ConditionClinicalStatusCodeSystem#active

Instance: OpportunisicInfectionsChronicDiarrheaExample
InstanceOf: OpportunisicInfections
Usage: #example
Title: "Condition - Chronic Diarrhea"
Description: "Indicates that the patient suffering from chronic diarrhea."
* code = $SCT#236071009
* category = $ConditionCategoryCodeSystem#problem-list-item
* subject = Reference(GeneralPatientExample)
* encounter = Reference(GeneralEncounterExample)
* recordedDate = "2024-03-20"
* clinicalStatus = $ConditionClinicalStatusCodeSystem#active

Instance: OIMedicalHistoryExample
InstanceOf: MedicalHistory
Usage: #example
Title: "List - Medical History"
Description: "Documents the medical history for the patient"
* code = $ListCodeCodeSystem#problems
* subject = Reference(GeneralPatientExample)
* encounter = Reference(GeneralEncounterExample)
* date = "2024-03-20"
* source = Reference(GeneralPractitionerExample)
* entry[+].item = Reference(OpportunisicInfectionsPulmonaryTBExample)
* entry[+].item = Reference(OpportunisicInfectionsChronicDiarrheaExample)

Instance: NotAssessedForPainObservationExample
InstanceOf: AssessedForPainObservation
Usage: #example
Title: "Observation - Not Assessed for Pain"
Description: "Indicates that the patient has not been assessed for pain."
* status = #final
* category = $OBSERVATION_CATEGORY#exam
* code = $LNC#LP428833-0
* code.text = "Assessed for pain"
* subject = Reference(GeneralPatientExample)
* encounter = Reference(GeneralEncounterExample)
* effectiveDateTime = "2023-12-11"
* performer = Reference(CurrentServiceProviderExample)
* valueCodeableConcept = $YesNoCodeSystem#false

Instance: AssessedForPainObservationExample
InstanceOf: AssessedForPainObservation
Usage: #example
Title: "Observation - Assessed for Pain"
Description: "Indicates that the patient has been assessed for pain."
* status = #final
* category = $OBSERVATION_CATEGORY#exam
* code = $LNC#LP428833-0
* code.text = "Assessed for pain"
* subject = Reference(GeneralPatientExample)
* encounter = Reference(GeneralEncounterExample)
* effectiveDateTime = "2023-12-11"
* performer = Reference(CurrentServiceProviderExample)
* valueCodeableConcept = $YesNoCodeSystem#true
* hasMember = Reference(LevelOfPainObservationExample)

Instance: LevelOfPainObservationExample
InstanceOf: LevelOfPainObservation
Usage: #example
Title: "Observation - Level of Pain"
Description: "Indicates the level of pain the patient is experiencing."
* status = #final
* category = $OBSERVATION_CATEGORY#exam
* code = $LNC#LL5953-6
* code.text = "Pain interpretation"
* subject = Reference(GeneralPatientExample)
* encounter = Reference(GeneralEncounterExample)
* effectiveDateTime = "2023-12-11"
* performer = Reference(CurrentServiceProviderExample)
* valueCodeableConcept = $YesNoCodeSystem#true
7 changes: 6 additions & 1 deletion input/fsh/invariant-constraints.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -151,4 +151,9 @@ Severity: #error
Invariant: Observation-alternate-tpt-Follow-Up-2
Description: "If Observation.valueCodeableConcept.coding.code is \"182992009\" then Observation.hasMember for slice \"TPTCompleted\" SHALL be present."
Expression: "value.coding.where(system = 'http://snomed.info/sct' and code = '182992009').exists() implies hasMember.slice('http://moh.gov.et/fhir/hiv/StructureDefinition/alternate-tpt-at-follow-up-observation', 'TPTCompleted').exists()"
Severity: #error
Severity: #error

Invariant: Observation-Assessed-For-Pain-1
Description: "If Observation.valueCodeableConcept.coding.code is \"true\" then hasMember SHALL be present."
Expression: "value.coding.where(system = 'http://moh.gov.et/fhir/hiv/CodeSystem/yes-no-code-system' and code = 'true').exists() implies hasMember.exists()"
Severity: #error
68 changes: 67 additions & 1 deletion input/fsh/profiles.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -2786,4 +2786,70 @@ Description: "Records the medication history for the patient receiving TPT medic
* medication[x] only Reference
* medicationReference only Reference(TPTMedication)
* reasonReference 1..1
* reasonReference only Reference(TBProphylaxisTypeObservation)
* reasonReference only Reference(TBProphylaxisTypeObservation)

Profile: OpportunisicInfections
Parent: Condition
Id: opportunisic-infections
Title: "Condition - Opportunisic Infection"
Description: "Captures the opportunisic infections that the patient suffering from."
* code 1..1
* code from OpportunisticInfectionsValueSet (required)
* category 1..1
* category = $ConditionCategoryCodeSystem#problem-list-item
* subject 1..1
* subject only Reference(EthPatient)
* encounter 1..1
* encounter only Reference(TargetFacilityEncounter)
* recordedDate 1..1
* clinicalStatus 1..1

Profile: MedicalHistory
Parent: List
Id: medical-history
Title: "List - Medical History"
Description: "Documents the medical history for the patient"
* status = #current
* mode = #working
* title 1..1
* title = "Medical History"
* code 1..1
* code = $ListCodeCodeSystem#problems
* subject 1..1
* subject only Reference(EthPatient)
* encounter 1..1
* encounter only Reference(TargetFacilityEncounter)
* date 1..1
* source 1..1
* source only Reference(GeneralPractitioner)
* entry 1..*
* entry.item only Reference(OpportunisicInfections)

Profile: AssessedForPainObservation
Parent: GenericObservation
Id: assessed-for-pain-observation
Title: "Observation - Assessed for Pain"
Description: "Documents whether the patient has been assessed for pain."
* obeys Observation-Assessed-For-Pain-1
* category 1..1
* category = $OBSERVATION_CATEGORY#exam
* code = $LNC#LP428833-0
* value[x] only CodeableConcept
* valueCodeableConcept 1..1
* valueCodeableConcept from YesNoValueSet (required)
* hasMember 0..1 MS
* hasMember ^definition =
"reason(s) why this should be supported."
* hasMember only Reference(LevelOfPainObservation)

Profile: LevelOfPainObservation
Parent: GenericObservation
Id: level-of-pain-observation
Title: "Observation - Level of Pain"
Description: "Indicates the level of pain the patient is experiencing."
* category 1..1
* category = $OBSERVATION_CATEGORY#exam
* code = $LNC#LL5953-6
* value[x] only CodeableConcept
* valueCodeableConcept 1..1
* valueCodeableConcept from YesNoValueSet (required)
36 changes: 35 additions & 1 deletion input/fsh/terminology.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -2011,4 +2011,38 @@ Id: eac-given-value-set
Title: "EAC Given"
Description: "Codes used for representing the EAC given."
* ^experimental = false
* include codes from system EACGivenCodeSystem
* include codes from system EACGivenCodeSystem

ValueSet: OpportunisticInfectionsValueSet
Id: oi-value-set
Title: "Opportunistic Infections"
Description: "Codes used for representing opportunistic infections."
* ^experimental = false
* $SCT#4740000 "Herpes zoster"
* $SCT#423997002 "Tuberculosis, extrapulmonary"
* $SCT#154283005 "Pulmonary tuberculosis"
* $SCT#72934000 "Candidiasis of vagina"
* $SCT#236071009 "Chronic diarrhea"
* $SCT#192701001 "Toxoplasma encephalitis"
* $SCT#109385007 "Kaposi's sarcoma"
* $SCT#415125002 "Pneumocystosis jirovecii pneumonia"
* $SCT#95589007 "Ulcers of male genital organs"
* $SCT#95595008 "Ulcers of female genital organs"
* $SCT#53084003 "Bacterial pneumonia"
* $SCT#20639004 "Candidiasis of the esophagus"
* $SCT#26284000 "Ulcer of mouth"
* $SCT#409966000 "Acute diarrhea"
* $SCT#14232007 "Cryptococcal meningitis"
* $SCT#363354003 "Malignant tumor of cervix"
* $SCT#79740000 "Candidiasis of mouth"
* $SCT#118601006 "Non-Hodgkin's lymphoma"

ValueSet: PainScaleValueSet
Id: pain-scale-value-set
Title: "Pain Scale"
Description: "Codes used for representing level of pain (pain scale)."
* ^experimental = false
* $LNC#LA131-5 "No pain"
* $LNC#LA15111-0 "Mild pain"
* $LNC#LA135-6 "Moderate pain"
* $LNC#LA15109-4 "Severe pain"

0 comments on commit c07c955

Please sign in to comment.