Skip to content

Commit

Permalink
HIV testing and teatment User scenarios (#48)
Browse files Browse the repository at this point in the history
  • Loading branch information
abertnamanya authored Aug 18, 2024
1 parent a2b0687 commit 72499c1
Show file tree
Hide file tree
Showing 3 changed files with 330 additions and 0 deletions.
73 changes: 73 additions & 0 deletions input/fsh/scenarios/HIV.A.Registration.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
Instance: HIV.A.REGISTRATION
InstanceOf: ExampleScenario
Usage: #definition
* url = "http://smart.who.int/hiv/ExampleScenario/HIV.A.REGISTRATION.SCENARIO"
* status = #active
* name = "HIV.A.REGISTRATION SCENARIO"
* actor[0].actorId = "patient"
* actor[=].type = #person
* actor[=].name = "Patient"
* actor[+].actorId = "healthcareprovider"
* actor[=].type = #person
* actor[=].name = "Health Care Provider"
* actor[+].actorId = "emr"
* actor[=].type = #entity
* actor[=].name = "EMR"
* instance[0].resourceId = "patientResource"
* instance[=].resourceType = #Patient
* instance[=].name = "Patient Resource"
* instance[=].description = "The Patient involved in the scenario."
* instance[+].resourceId = "searchBundleResource"
* instance[=].resourceType = #SearchParameter
* instance[=].name = "SearchParameter Bundle Resource"
* instance[=].description = "List patient search bundle"
* instance[+].resourceId = "encounterResource"
* instance[=].resourceType = #Encounter
* instance[=].name = "Encounter Resource"
* instance[=].description = "The Encounter where the patient meets with the health worker."

* process.title = "HIV.A. Registration"
* process.description = "The patient visits the clinician for an initial consultation."
* process.step[0].process.title = "Visit Health facility"
* process.step[=].process.description = "Description of Step 1"
* process.step[=].process.step[0].operation.number = "1"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Create an visit appointment"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "patient"
* process.step[=].process.step[=].operation.request.resourceId = "encounterResource"
* process.step[=].process.step[+].operation.number = "2"
* process.step[=].process.step[=].operation.name = "Gather client details"
* process.step[=].process.step[=].operation.initiator = "patient"
* process.step[=].process.step[=].operation.receiver = "healthcareprovider"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].process.title = "Validate Client details"
* process.step[=].process.description = "Description of Step 2"
* process.step[=].process.step[0].operation.number = "3"
* process.step[=].process.step[=].operation.type = "search"
* process.step[=].process.step[=].operation.name = "Search for client record"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "emr"
* process.step[=].process.step[=].operation.request.resourceId = "searchBundleResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.name = "Create new client Record"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "emr"
* process.step[=].process.step[=].operation.initiatorActive = true
* process.step[=].process.step[+].operation.number = "5"
* process.step[=].process.step[=].operation.name = "Review sociodemographic data with client"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "emr"
* process.step[=].process.step[+].operation.number = "6"
* process.step[=].process.step[=].operation.type = "update"
* process.step[=].process.step[=].operation.name = "update Client details"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "emr"
* process.step[=].alternative.title = "Alternative 1 for Step 1"
* process.step[=].alternative.description = "First alternative to Step 1"
* process.step[+].operation.number = "7"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Check In Client"
* process.step[=].operation.initiator = "emr"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
155 changes: 155 additions & 0 deletions input/fsh/scenarios/HIV.B.HIVtesting.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
Instance: HIV.B.HIVtesting
InstanceOf: ExampleScenario
Usage: #definition
* url = "http://smart.who.int/hiv/ExampleScenario/HIV.B.HIVtesting"
* status = #active
* name = "HIV.B. HIV testing services"
* actor[0].actorId = "patient"
* actor[=].type = #person
* actor[=].name = "Patient"
* actor[+].actorId = "healthcareprovider"
* actor[=].type = #person
* actor[=].name = "Health Care Provider"
* actor[+].actorId = "laboratory"
* actor[=].type = #entity
* actor[=].name = "Laboratory"
* instance[0].resourceId = "patientResource"
* instance[=].resourceType = #Patient
* instance[=].name = "Patient Resource"
* instance[=].description = "The Patient involved in the scenario."
* instance[+].resourceId = "encounterResource"
* instance[=].resourceType = #Encounter
* instance[=].name = "Encounter Resource"
* instance[=].description = "The Encounter where the patient meets with the clinician."
* instance[+].resourceId = "observationResource"
* instance[=].resourceType = #Observation
* instance[=].name = "HIV Test Result"
* instance[=].description = "The Observation resource capturing the HIV test result."
* instance[+].resourceId = "diagnosisResource"
* instance[=].resourceType = #Condition
* instance[=].name = "HIV Diagnosis"
* instance[=].description = "The Condition resource representing the HIV diagnosis."
* instance[+].resourceId = "medicationRequestResource"
* instance[=].resourceType = #MedicationRequest
* instance[=].name = "ART Medication Request"
* instance[=].description = "The MedicationRequest for Antiretroviral Therapy (ART)."
* instance[+].resourceId = "appointmentResource"
* instance[=].resourceType = #Appointment
* instance[=].name = "Follow-up Appointment"
* instance[=].description = "The Appointment resource for follow-up care."
* process.title = "HIV.B. HIV testing services visit"
* process.description = "The patient visits the clinician for an initial consultation."
* process.step[0].operation.number = "1"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Determine reason for visit"
* process.step[=].operation.initiator = "patient"
* process.step[=].operation.receiver = "healthcareprovider"
* process.step[=].operation.request.resourceId = "encounterResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Check for signs of serious illness"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Capture or update client history"
* process.step[=].operation.initiator = "patient"
* process.step[=].operation.receiver = "healthcareprovider"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = " Take vital signs"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Provide pretest information"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Test for HIV using testing algorithm"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "laboratory"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Provide posttest counselling"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Determine recommended services"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "healthcareprovider"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Counsel on benefits of ART and disclosure"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Discuss voluntary disclosure and partner services options"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Make an informed decision on care"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "healthcareprovider"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Arrange for active ART referral"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Arrange follow-up"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Provide voluntary partner and family services"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Schedule retest"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Offer prevention options"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Offer other support services"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Offer sexual and reproductive health services"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].operation.number = "4"
* process.step[=].operation.type = "create"
* process.step[=].operation.name = "Offer other clinical services"
* process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].operation.receiver = "patient"
* process.step[=].operation.request.resourceId = "patientResource"
102 changes: 102 additions & 0 deletions input/fsh/scenarios/HIV.PrEP.VISIT.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
Instance: HIV.PrEP.Visit.Scenario
InstanceOf: ExampleScenario
Usage: #definition
* url = "http://smart.who.int/hiv/ExampleScenario/HIV.PrEP.Visit.Scenario"
* status = #active
* name = "ExampleScenarioForProcess"
* actor[0].actorId = "patient"
* actor[=].type = #person
* actor[=].name = "Patient"
* actor[+].actorId = "healthcareprovider"
* actor[=].type = #person
* actor[=].name = "Health Care Provider"
* actor[+].actorId = "emr"
* actor[=].type = #entity
* actor[=].name = "EMR"
* actor[+].actorId = "laboratory"
* actor[=].type = #entity
* actor[=].name = "Laboratory"
* instance[0].resourceId = "patientResource"
* instance[=].resourceType = #Patient
* instance[=].name = "Patient Resource"
* instance[=].description = "The Patient involved in the scenario."
* instance[+].resourceId = "encounterResource"
* instance[=].resourceType = #Encounter
* instance[=].name = "Encounter Resource"
* instance[=].description = "The Encounter where the patient meets with the clinician."
* instance[+].resourceId = "observationResource"
* instance[=].resourceType = #Observation
* instance[=].name = "HIV Test Result"
* instance[=].description = "The Observation resource capturing the HIV test result."
* instance[+].resourceId = "diagnosisResource"
* instance[=].resourceType = #Condition
* instance[=].name = "HIV Diagnosis"
* instance[=].description = "The Condition resource representing the HIV diagnosis."
* instance[+].resourceId = "medicationRequestResource"
* instance[=].resourceType = #MedicationRequest
* instance[=].name = "ART Medication Request"
* instance[=].description = "The MedicationRequest for Antiretroviral Therapy (ART)."
* instance[+].resourceId = "appointmentResource"
* instance[=].resourceType = #Appointment
* instance[=].name = "Follow-up Appointment"
* instance[=].description = "The Appointment resource for follow-up care."
* process.title = "HIV.C. PrEP visit"
* process.description = "The patient visits the clinician for an initial consultation."
* process.step[0].process.title = "Step 1"
* process.step[=].process.description = "Description of Step 1"
* process.step[=].process.step[0].operation.number = "1"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Determine reason for visit"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "patient"
* process.step[=].process.step[=].operation.request.resourceId = "encounterResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Take vital signs"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "patient"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Capture or update client history"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "emr"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Test for HIV using testing algorithm"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "laboratory"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Testing may be performed by a lay provider or self-test"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "healthcareprovider"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Post-test package of services"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "emr"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Check suitability for PrEP or PEP"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "patient"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Discuss PrEP or PEP"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "patient"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[=].process.step[+].operation.number = "4"
* process.step[=].process.step[=].operation.type = "create"
* process.step[=].process.step[=].operation.name = "Counsel on risk and prevention"
* process.step[=].process.step[=].operation.initiator = "healthcareprovider"
* process.step[=].process.step[=].operation.receiver = "patient"
* process.step[=].process.step[=].operation.request.resourceId = "patientResource"
* process.step[+].process.title = "Step 2"
* process.step[=].process.description = "Description of Step 2"

0 comments on commit 72499c1

Please sign in to comment.