Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete tb form #3

Merged
merged 5 commits into from
Jul 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"
Loading