Skip to content

Patient Management Event Objects

Every Content Block have some respective event objects that are required by the events to be used. These event objects can be referred to as item properties for that event or model/data classes that are required for that event. These objects provide a detailed context to the event about the element they are associated with.

List of Objects

Here's a list of objects that are required in core module events.

Object Name Usability Description
Appointment Item appointment Track the values related to appointment details.
Appointment Update Item update Track the values related to appointment update details.
Appointment Missed Item missed Track the values related to appointment missed details.
Counseling Plan Object counseling_plan_list Track the items recommended to the patient based on the counseling plan selected.
Diagnosis Item diagnosis_item Track the items related to patient diagnosis.
Diagnosis Outcome Item diagnosis_outcome_item Track the items related to outcome of the question.
Diagnosis Question Item diagnosis_question_item Track the items diagnosis question item.
Diagnosis Questionnaire Item diagnosis_questionnaire_item Track the questionnaire being asked to the patient.
Diagnosis Status Item diagnosis_status_item Track the diagnosis status about the patient.
Diagnosis Symptom Item diagnosis_symptom_item Track the diagnosis symptoms about the patient.
Diagnostic Element Item diagnostic_element_object Track the diagnostic element item about the patient.
Encounter Summary Object encounter_summary_object Track the Encounter Summary about the patient.
Investigation Item investigation_item Track the investigation/medical tests item about the patient.
Immunization Item immunization_item Track the immunization item about the patient.
Pregnancy Detail Object pregnancy_detail_object Track the pregnancy details about the patient.
Prescription Item prescription_item Track the Prescribed Medication details about the patient.
Schedule Item schedule_item Track the Schedule Item Details for treatment adherence of the patient.
Treatment Adherence Item treatment_adherence_item Track the treatment adherence item for the patient.
Treatment Plan Item treatment_plan_item Track the treatment plan item for the patient.


Appointment Item

Track the values related to Appointment

Param Usability Overview Enum Values Description
id REQUIRED STRING -- Id of the Appointment.
hcw_id REQUIRED STRING -- Id of the CHW for which the appointment is linked to.
category REQUIRED STRING facility, community, patient_address, virtual, other Category of the site for which the appointment is created.
status REQUIRED STRING upcoming, missed, attended, other Status of the appointment.
time REQUIRED LONG -- TimeInMillis for the appointment.
is_time_sensitive REQUIRED BOOLEAN -- Is the appointment time sensitive or an urgent apppointment.
type_list REQUIRED ARRAY (STRING) medical_review, assessment, other Array of main types of assessments/services included in the appointment
sub_type_list REQUIRED ARRAY (STRING) bio, hiv, ncd, tb, ecd, diabetes, hypertension, pregnancy, mental_health, substance_use_disorder, adolescent_health, general_screening, antenatal, postnatal, cervical_cancer, lifestyle, psychological, gender_based_violence, sexual_behaviour, economic_strengthening, other Array of sub types of assessments/services included in the appointment
update OPTIONAL OBJECT (Appointment Update Item) -- Update Details object for the item, such as reschduling updates.
missed OPTIONAL OBJECT (Appointment Missed Item) -- Missed Details object for the item, such as follup details.
     val appointmentItem = AppointmentItem(
        appointmentId = "sampleAppointmentId",
        hcwId = "sampleHcwId",
        category = HcwSiteCategory.Facility,
        status = AppointmentStatus.Missed,
        appointmentDateTime = System.currentTimeMillis(),
        isTimeSensitive = false,
        typeList = listOf(ScheduleItemType.Assessment),
        subTypeList = listOf(DiagnosisType.HIV),
        update = AppointmentUpdateItem(
            appointmentId = "percipit",
            reason = "percipit",
            prevTime = System.currentTimeMillis().minus(100)
        ),
        missed = AppointmentMissedItem(
            id = "dolorum",
            appointmentFollowUpType = AppointmentFollowupType.WhatsApp,
            followUptime = System.currentTimeMillis().minus(100),
            response = "conceptam"
        )
    )
    let appointmentItem = AppointmentItem(
        appointmentId: "percipit",
        hcwId: "dui",
        category: HcwSiteCategory.Other.rawValue,
        status: AppointmentStatus.Missed.rawValue,
        appointmentDateTime: 123123,
        isTimeSensitive: false,
        typeList: [ScheduleItemType.Assessment.rawValue],
        subTypeList: [DiagnosisType.HIV.rawValue],
        update: AppointmentUpdateItem(
            appointmentId: "percipit",
            reason: "percipit",
            prevTime: 123
                ),
        missed: AppointmentMissedItem(
            id: "dolorum",
            appointmentFollowUpType: AppointmentFollowupType.WhatsApp.rawValue,
            followUptime: 111111,
            response: "conceptam"
        )
    )
    let appointmentItem = AppointmentItem(
        appointmentId: "percipit",
        hcwId: "dui",
        category: HcwSiteCategory.Other.rawValue,
        status: AppointmentStatus.Missed.rawValue,
        appointmentDateTime: 123123,
        isTimeSensitive: false,
        typeList: [ScheduleItemType.Assessment.rawValue],
        subTypeList: [DiagnosisType.HIV.rawValue],
        update: AppointmentUpdateItem(
            appointmentId: "percipit",
            reason: "percipit",
            prevTime: 123
                ),
        missed: AppointmentMissedItem(
            id: "dolorum",
            appointmentFollowUpType: AppointmentFollowupType.WhatsApp.rawValue,
            followUptime: 111111,
            response: "conceptam"
        )
    )
    "appointment": {
        "category": "other",
        "hcw_id": "dui",
        "id": "percipit",
        "is_time_sensitive": false,
        "missed": {
            "id": "dolorum",
            "response": "conceptam",
            "time": 131232,
            "type": "whatsapp"
        },
        "status": "missed",
        "sub_type_list": [
            "hiv"
        ],
        "time": 123123123,
        "type_list": [
            "assessment"
        ],
        "update": {
            "id": "percipit",
            "prev_time": 123123,
            "reason": "percipit"
        }
    }


Appointment Update Item

Track the values related to Appointment Update item.

Param Usability Overview Enum Values Description
id REQUIRED STRING -- Id of the update item.
reason REQUIRED STRING -- Reason for Update.
prev_time REQUIRED STRING -- Previous time in Millis before update.
     val updateItem = AppointmentUpdateItem(
        appointmentId = "percipit",
        reason = "percipit",
        prevTime = System.currentTimeMillis().minus(100)
    )
     let updateItem = AppointmentUpdateItem(
        appointmentId: "percipit",
        reason: "percipit",
        prevTime: 123
    )
    let updateItem = update: {
      id : "percipit",
      reason : "percipit",
      prev_time : 123123
    }
    "update": {
        "id": "percipit",
        "prev_time": 123123,
        "reason": "percipit"
    }


Appointment Missed Item

Track the values related to Appointment Missed item.

Param Usability Overview Enum Values Description
id REQUIRED STRING -- Id of the missed item.
type REQUIRED STRING phone_call, sms, whatsapp, house_visit, other Type of the missed follow up item.
time REQUIRED LONG -- Time in millis for the follow up item.
response REQUIRED STRING -- Response of the missed follow up.
     val missed = AppointmentMissedItem(
        id = "dolorum",
        appointmentFollowUpType = AppointmentFollowupType.WhatsApp,
        followUptime = System.currentTimeMillis().minus(100),
        response = "conceptam"
    )
     let missedItem = AppointmentMissedItem(
        id: "dolorum",
        appointmentFollowUpType: AppointmentFollowupType.WhatsApp.rawValue,
        followUptime: 111111,
        response: "conceptam"
    )
    let missedItem = {
      id : "dolorum",
      type : AppointmentFollowupType.WhatsApp,
      time : 131232,
      response : "conceptam"
    }
    "missed": {
        "id": "dolorum",
        "response": "conceptam",
        "time": 131232,
        "type": "whatsapp"
    }


Counseling Plan Object

Track the items recommended to the patient based on the counseling plan selected.

Param Usability Overview Enum Values Description
name REQUIRED STRING -- Lifestyle plan item being added.
action REQUIRED STRING view, add, update, remove, done Action performed on the lifestyle item for the patient in question.
clinician_notes OPTIONAL STRING -- Notes added by the clinician for the diagnosis item.
assessment_remarks OPTIONAL STRING -- remarks added by the hcw user performing assessment for the diagnosis item.
counselor_notes OPTIONAL STRING -- notes added by the counselor for the diagnosis item.
referral_date OPTIONAL LONG -- TimeInMillis for the referral date for the diagnosis item.
assessment_date OPTIONAL LONG -- TimeInMillis for the assessment date for the diagnosis item.
referred_by OPTIONAL STRING -- Id for the hcw user referring for the diagnosis item.
assessed_by OPTIONAL STRING -- Id for the hcw user assessing for the diagnosis item.
remarks OPTIONAL STRING -- Comments or remarks added by the hcw user for the diagnosis item.
    val counselingPlanItem = CounselingPlanItem(
        name = "someItem2", 
        action = HcwItemAction.Add.name, 
        remarks = "hello World")
    let counselingPlanItem = CounselingPlanItem(
        name : "someItem2", 
        action : HcwItemAction.Add.rawValue, 
        remarks : "hello World"
    )
    const counselingPlanItem = [
        {
          name: "itemName",
          action: HcwItemAction.View,
          remarks: "remarks",
        }
    ]
    {
        "counseling_plan_item": {
            "name": "Some Value Text Here",
            "action": "add",
            "remarks": "Some Remarks"
        }
    }


Diagnosis Item

Track the values related to diagnosis of the patient. Such as blood pressure, glucose, bmi, temperature, etc.

Param Usability Overview Enum Values Description
type REQUIRED STRING bio, hiv, ncd, tb, ecd, diabetes, hypertension, pregnancy, mental_health, substance_use_disorder, adolescent_health, general_screening, antenatal, postnatal, cervical_cancer, lifestyle, psychological, gender_based_violence, sexual_behaviour, economic_strengthening, other type for the Diagnosis Item being considered.
sub_type REQUIRED STRING age, gender, height, weight, smoker, blood_pressure, blood_glucose, hbA1c, temperature, bmi, cvd, phq_4, phq_9, gad_7, pregnancy_status, pregnancy_danger_signs, suicidal_ideation, high_risk_pregnancy, other sub type for the diagnosis.
category REQUIRED STRING computed, given, other category for the diagnosis.
value REQUIRED ANY -- Value for the diagnosis.
unit REQUIRED STRING -- Unit of the value provided for the diagnosis item.
observation_time OPTIONAL LONG -- TimeInMillis when the diagnosis was done.
remarks OPTIONAL STRING -- Comments or remarks added by the hcw user for the diagnosis item.
     val diagnosisValueItem = DiagnosisItem(
        type = DiagnosisType.Bio,
        subType = DiagnosisSubType.Age,
        category = DiagnosisCategory.Given,
        value = "20",
        unit = "years",
        observationTime = System.currentTimeMillis(),
        remarks = "Some Remarks"
    )
     let diagnosisValueItem = DiagnosisItem(
        type: DiagnosisType.Bio.rawValue,
        subType: DiagnosisSubType.Age.rawValue,
        category: DiagnosisCategory.Given.rawValue,
        value: "20",
        unit: "years",
        observationTime: 1234123,
        remarks: "Some Remarks"
    )
    const DiagnosisItemList = [
        {
          type: DiagnosisType.Bio,
          sub_type: DiagnosisSubType.Age,
          category: DiagnosisCategory.Given,
          value: "20",
          unit: "years",
          observation_time: 12321341234,
          remarks: "Some Remarks"
        }
    ]
    {
        "category": "given",
        "observation_time": 12321341234,
        "remarks": "Some Remarks",
        "sub_type": "age",
        "type": "bio",
        "unit": "years",
        "value": "20"
    }


Diagnosis Outcome Item

Track the values related to diagnosis outcome of the patient.

Param Usability Overview Enum Values Description
type REQUIRED STRING risk_status, risk_score, other type for the Diagnosis outcome.
sub_type REQUIRED STRING -- sub type for the diagnosis outcome.
value REQUIRED ANY -- Value for the diagnosis outcome.
remarks OPTIONAL STRING -- Comments or remarks added by the hcw user for the diagnosis outcome item.
     val diagnosisOutcomeItem = DiagnosisOutcomeItem(
        type = DiagnosisQuestionnaireOutcomeType.RiskStatus,
        subType = null,
        value = "high_risk",
        remarks = null
     )
     let diagnosisOutcomeItem = DiagnosisOutcomeItem(
        type : DiagnosisQuestionnaireOutcomeType.RiskStatus.rawValue,
        subType : "sample Sub type",
        value : "high_risk",
        remarks : "some remarks"
     )
    const DiagnosisItemList = {
      type: DiagnosisQuestionnaireOutcomeType.RiskStatus,
      value: "high_risk",
    }
    {
        "type": "risk_status",
        "value": "high_risk"
    }


Diagnosis Question Item

Track the values related to diagnosis question of the patient.

Param Usability Overview Enum Values Description
type REQUIRED STRING open_ended, closed_ended, nominal, likert_scale, rating_scale, yes_no, interview, other type of the question being asked.
question REQUIRED STRING -- question statement being asked.
reply REQUIRED STRING -- answer to the question.
score OPTIONAL FLOAT -- score provided to the answer if any.
full_score OPTIONAL FLOAT -- total score allocated tot he question if any.
remarks OPTIONAL STRING -- comments or remarks added by the hcw user for the item.
section OPTIONAL STRING -- section name of the question being asked.
     val diagnosisQuestionItem = DiagnosisQuestionItem(
        type = QuestionType.ClosedEnded,
        question = "Some Question Text",
        reply = "Some Reply here",
        score = null,
        fullScore = null,
        remarks = null,
        section = null
    )
     let diagnosisQuestionItem = DiagnosisQuestionItem(
        type: QuestionType.ClosedEnded.rawValue,
        question: "Some Question Text",
        reply: "Some Reply here",
        score: nil,
        fullScore: nil,
        section: nil,
        remarks: nil
    )
    const DiagnosisQuestionItem = {
      type: QuestionType.ClosedEnded,
      question: "Some Question Text",
      reply: "Some Reply here",
    }
    {
        "question": "Some Question Text",
        "reply": "Some Reply here",
        "type": "closed_ended"
    }


Diagnosis Questionnaire Item

Track the values related to Questionnaire details for the assessment/service.

Param Usability Overview Enum Values Description
type REQUIRED STRING bio, hiv, ncd, tb, ecd, diabetes, hypertension, pregnancy, mental_health, substance_use_disorder, adolescent_health, general_screening, antenatal, postnatal, cervical_cancer, lifestyle, psychological, gender_based_violence, sexual_behaviour, economic_strengthening, other type of the question being asked.
sub_type REQUIRED STRING age, gender, height, weight, smoker, blood_pressure, blood_glucose, hbA1c, temperature, bmi, cvd, phq_4, phq_9, gad_7, pregnancy_status, pregnancy_danger_signs, suicidal_ideation, high_risk_pregnancy, other sub type for the diagnosis questionnaire.
category REQUIRED STRING medical_review, assessment, diagnostic, other category of the question.
question_list OPTIONAL ARRAY (Diagnosis Question Item) -- list of questions being asked as a part of this questionnaire.
outcome_list OPTIONAL ARRAY (Diagnosis Outcome Item) -- outcome of the questionnaire being asked.
remarks OPTIONAL STRING -- comments or remarks added by the hcw user for the item.
     val diagnosisQuestionItem = DiagnosisQuestionItem(
        type = QuestionType.ClosedEnded,
        question = "Some Question Text",
        reply = "Some Reply here",
        score = null,
        fullScore = null,
        remarks = null,
        section = null
    )
     let diagnosisQuestionItem = DiagnosisQuestionItem(
        type: QuestionType.ClosedEnded.rawValue,
        question: "Some Question Text",
        reply: "Some Reply here",
        score: nil,
        fullScore: nil,
        section: nil,
        remarks: nil
    )
    const DiagnosisQuestionItem = {
      type: QuestionType.ClosedEnded,
      question: "Some Question Text",
      reply: "Some Reply here",
    }
    {
        "question": "Some Question Text",
        "reply": "Some Reply here",
        "type": "closed_ended"
    }


Diagnosis Status Item

Track the values Patient Diagnosis Status Items.

Param Usability Overview Enum Values Description
type REQUIRED STRING bio, hiv, ncd, tb, ecd, diabetes, hypertension, pregnancy, mental_health, substance_use_disorder, adolescent_health, general_screening, antenatal, postnatal, cervical_cancer, lifestyle, psychological, gender_based_violence, sexual_behaviour, economic_strengthening, other type of the question status.
sub_type REQUIRED STRING sub type for the diagnosis status.
action REQUIRED STRING view, add, update, remove, done action performed on the diagnosis status.
status REQUIRED STRING positive, negative, recovered, unknown, n_a, other Status for the diagnosis.
risk REQUIRED STRING low, high, unknown, n_a, other Risk value for the diagnosis.
diagnosis_date REQUIRED LONG -- date of the Diagnosis Status.
is_confirmed OPTIONAL BOOLEAN -- is the status confirmed?
remarks OPTIONAL STRING -- comments or remarks added by the hcw user for the item.
stage OPTIONAL STRING -- stage of the diagnosis status if any.
treatment_status OPTIONAL STRING -- treatment status of the diagnosis status if any.
     val diagnosisQuestionItem = DDiagnosisStatusItem(
        type = DiagnosisType.Diabetes,
        subType = "SampleType",
        action = HcwItemAction.Add,
        status = DiagnosisStatusValueType.Positive,
        risk = DiagnosisStatusRiskType.High,
        diagnosisDate = 123123123,
        isConfirmed = false
    )
     let diagnosisQuestionItem = DDiagnosisStatusItem(
        type : DiagnosisType.Diabetes.rawValue,
        subType : "SampleType",
        action : HcwItemAction.Add.rawValue,
        status = DiagnosisStatusValueType.Positive.rawValue,
        risk = DiagnosisStatusRiskType.High.rawValue,
        diagnosisDate : 123123123,
        isConfirmed : false
    )
    const DiagnosisQuestionItem = {
        type : DiagnosisType.Diabetes,
        subType : "SampleType",
        action : HcwItemAction.Add,
        status = DiagnosisStatusValueType.Positive,
        risk = DiagnosisStatusRiskType.High,
        diagnosisDate : 123123123,
        isConfirmed : false
    }
    {
        "type" : "diabetes",
        "subType" : "SampleType",
        "action" : "add",
        "status" : "positive",
        "risk" : "high",
        "diagnosisDate" : 123123123,
        "isConfirmed" : false
    }


Diagnosis Symptom Item

Track values regarding diagnosis symptoms of the patient.

Param Usability Overview Enum Values Description
type REQUIRED STRING bio, hiv, ncd, tb, ecd, diabetes, hypertension, pregnancy, mental_health, substance_use_disorder, adolescent_health, general_screening, gynecologic, antenatal, postnatal, cervical_cancer, lifestyle, psychological, gender_based_violence, sexual_behaviour, economic_strengthening, other type for the Diagnosis Symptom Item being considered.
symptoms_list OPTIONAL ARRAY(STRING) -- Symptoms for the diagnosis.
remarks OPTIONAL STRING -- Comments or remarks added by the hcw user for the diagnosis item.
    val diagnosisSymptomItem = DiagnosisSymptomItem(
        type = DiagnosisSymptomType.diabetes.name,
        symptomsList = ["symptom 1", "symptom 2"]
    )
    let diagnosisSymptomItem = DiagnosisSymptomItem(
        type : DiagnosisSymptomType.diabetes.rawValue,
        symptoms_list : ["symptom 1", "symptom 2"]
    )
    const DiagnosisSymptomItemList = [
        {
          type: DiagnosisSymptomType.Diabetes,
          symptoms_list: ["hello", "world"],
          remarks: "remarks",
        }
    ]
    {
        "diagnosis_symptom_item": {
            "type": "hypertension",
            "symptoms_list": [
                "Fainting",
                "Seizures"
            ],
            "remarks": "Some Remarks"
        }
    }


Diagnostic Element Object

Track values regarding diagnostic Element Object of the patient.

Param Usability Overview Enum Values Description
id REQUIRED STRING -- id of the diagnostic element of the patient.
investigation_list OPTIONAL ARRAY (Investigation Item) -- Array of the investigation/test items of the patient.
biometric_list OPTIONAL ARRAY (Diagnosis Item) -- Array of the biometric items of the patient.
sign_symptom_list OPTIONAL ARRAY (Diagnosis Symptom Item) -- Array of the diagnostic symptoms of the patient.
treatment_adherence_list OPTIONAL ARRAY (Treatment Adherence Item) -- Array of the Treatment Adherence item of the patient.
health_questionnaire_list OPTIONAL ARRAY (Diagnosis Questionnaire Item) -- Array of the Diagnosis Questionnaire items of the patient.
    val diagnosticElements = DiagnosticElementItem(
        id = "DiagnosticElementItem",
        investigationList = listOf(),
        biometricList = listOf(
            DiagnosisItem(
                type = DiagnosisType.Bio,
                subType = DiagnosisSubType.Age,
                category = DiagnosisCategory.Given,
                value = "20",
                unit = "years",
                observationTime = System.currentTimeMillis(),
                remarks = "Some Remarks"
            )
        ),
        signSymptomList = listOf(),
        treatmentAdherence = listOf(),
        healthQuestionnaire = listOf(
            DiagnosisQuestionnaireObject(
                type = DiagnosisType.HIV,
                subType = DiagnosisSubType.Other,
                category = DiagnosisQuestionnaireCategory.Assessment,
                questionList = listOf(
                    DiagnosisQuestionItem(
                        type = QuestionType.ClosedEnded,
                        question = "Some Question Text",
                        reply = "Some Reply here",
                        score = null,
                        fullScore = null,
                        remarks = null,
                        section = null
                    )
                ),
                outcomeList = listOf(
                    DiagnosisOutcomeItem(
                        type = DiagnosisQuestionnaireOutcomeType.RiskStatus,
                        subType = null,
                        value = "high_risk",
                        remarks = null
                    )
                ),
                remarks = null
            )
        )
    )
    let diagnosticElements: DiagnosticElementObject(
        id: "DiagnosticElementItem",
        investigationList: [],
        biometricList: [
            DiagnosisItem(
                type: DiagnosisType.Bio.rawValue,
                subType: DiagnosisSubType.Age.rawValue,
                category: DiagnosisCategory.Given.rawValue,
                value: "20",
                unit: "years",
                observationTime: 1234123,
                remarks: "Some Remarks"
            )
        ],
        signSymptomList: [],
        treatmentAdherence: [],
        healthQuestionnaire: [
            DiagnosisQuestionnaireObject(
                type: DiagnosisType.HIV.rawValue,
                subType: DiagnosisSubType.Other.rawValue,
                category: DiagnosisQuestionnaireCategory.Assessment.rawValue,
                questionList: [
                    DiagnosisQuestionItem(
                        type: QuestionType.ClosedEnded.rawValue,
                        question: "Some Question Text",
                        reply: "Some Reply here",
                        score: nil,
                        fullScore: nil,
                        section: nil,
                        remarks: nil

                    )
                ],
                outcomeList: [
                    DiagnosisOutcomeItem(
                        type: DiagnosisQuestionnaireOutcomeType.RiskStatus.rawValue,
                        subType: nil,
                        value: "high_risk",
                        remarks: nil
                    )
                ],
                remarks: nil
            )
        ]
    )
    const DiagnosisSymptomItemList = {
      id: "DiagnosticElementItem",
      investigation_list: [],
      biometric_list: [
        {
          type: DiagnosisType.Bio,
          sub_type: DiagnosisSubType.Age,
          category: DiagnosisCategory.Given,
          value: "20",
          unit: "years",
          observation_time: 12321341234,
          remarks: "Some Remarks"
        }
      ],
      sign_symptom_list: [],
      treatment_adherence_list: [],
      health_questionnaire_list: [
        {
          type: DiagnosisType.HIV,
          sub_type: DiagnosisSubType.Other,
          category: DiagnosisQuestionnaireCategory.Assessment,
          question_list: [
            {
              type: QuestionType.ClosedEnded,
              question: "Some Question Text",
              reply: "Some Reply here",
            }
          ],
          outcome_list: [
            {
              type: DiagnosisQuestionnaireOutcomeType.RiskStatus,
              value: "high_risk",
            }
          ],
          remarks: null,
        }
      ]
    }
    "diagnostic_elements": {
        "biometric_list": [
          {
            "category": "given",
            "observation_time": 12321341234,
            "remarks": "Some Remarks",
            "sub_type": "age",
            "type": "bio",
            "unit": "years",
            "value": "20"
          }
        ],
        "health_questionnaire_list": [
          {
            "category": "assessment",
            "outcome_list": [
              {
                "type": "risk_status",
                "value": "high_risk"
              }
            ],
            "question_list": [
              {
                "question": "Some Question Text",
                "reply": "Some Reply here",
                "type": "closed_ended"
              }
            ],
            "sub_type": "other",
            "type": "hiv"
          }
        ],
        "id": "DiagnosticElementItem",
        "investigation_list": [],
        "sign_symptom_list": [],
        "treatment_adherence_list": []
  }


Encounter Summary Object

Track values regarding Encounter Summary Object of the patient.

Param Usability Overview Enum Values Description
id REQUIRED STRING -- id of the encounter for the patient.
appointment_id OPTIONAL STRING -- id of the linked appointment for the encounter, if any.
encounter_time REQUIRED LONG -- time at which the encounter is performed.
hcw_id_list REQUIRED ARRAY (STRING) -- Array of the IDs of the HCWs involved in competing the encounter.
main_complaints_list OPTIONAL ARRAY (STRING) -- Array of the main complaints in the encounter.
prev_diagnosis_status_list OPTIONAL ARRAY (Diagnosis Status Item) -- Array of the previous diagnosis status of the patient.
diagnosis_status_list OPTIONAL ARRAY (Diagnosis Status Item) -- Array of the current diagnosis status of the patient.
prev_treatment_plan OPTIONAL OBJECT (Treatment Plan Item) -- Object of the previous treatment plan item of the patient.
treatment_plan OPTIONAL OBJECT (Treatment Plan Item) -- Object of the current treatment plan item of the patient.
diagnostic_elements OPTIONAL OBJECT (Diagnostic Element Object) -- Object of the diagnostic element details of the patient.
pregnancy_details OPTIONAL OBJECT (Pregnancy Detail Object) -- Object of the pregnancy details of the patient.
counseling_list OPTIONAL ARRAY (Counseling Plan Object) -- Array of the counselling plan of the patient.
immunization_list OPTIONAL ARRAY (Imunization Item) -- Array of the Immunization Items of the patient.
remarks OPTIONAL STRING -- Remarks about the encounter of the patient.
is_followup_id OPTIONAL STRING -- id of the original encounter if this new is a followup of an existing one.
is_referral_id OPTIONAL STRING -- id of the original encounter if this new is a referral of an existing one.
has_followup OPTIONAL BOOLEAN -- if this encounter has a followup encounter.
has_referral OPTIONAL BOOLEAN -- if this encounter has a referral encounter.
    val encounterSummaryObject = EncounterSummaryObject(
        encounterId = "SomeEncounterId222",
        appointmentId = "Some Appointment ID",
        encounterTime = System.currentTimeMillis(),
        hcwIdList = listOf("hello"),
        prevDiagnosisStatus = listOf(DiagnosisStatusItem(
            type = DiagnosisType.SexualBehaviour,
            subType = null,
            action = HcwItemAction.Add,
            value = DiagnosisStatusValueType.NewPatient,
            diagnosisDate = 3329,
            isConfirmed = null,
            remarks = null,
            stage = null,
            treatmentStatus = null
        )),
        diagnosisStatus = listOf(),
        prevTreatmentPlan = null,
        treatmentPlan = null,
        mainComplaints = listOf(),
        diagnosticElements = DiagnosticElementItem(
            id = "DiagnosticElementItem",
            investigationList = listOf(),
            biometricList = listOf(
                DiagnosisItem(
                    type = DiagnosisType.Bio,
                    subType = DiagnosisSubType.Age,
                    category = DiagnosisCategory.Given,
                    value = "20",
                    unit = "years",
                    observationTime = System.currentTimeMillis(),
                    remarks = "Some Remarks"
                )
            ),
            signSymptomList = listOf(),
            treatmentAdherence = listOf(),
            healthQuestionnaire = listOf(
                DiagnosisQuestionnaireObject(
                    type = DiagnosisType.HIV,
                    subType = DiagnosisSubType.Other,
                    category = DiagnosisQuestionnaireCategory.Assessment,
                    questionList = listOf(
                        DiagnosisQuestionItem(
                            type = QuestionType.ClosedEnded,
                            question = "Some Question Text",
                            reply = "Some Reply here",
                            score = null,
                            fullScore = null,
                            remarks = null,
                            section = null
                        )
                    ),
                    outcomeList = listOf(
                        DiagnosisOutcomeItem(
                            type = DiagnosisQuestionnaireOutcomeType.RiskStatus,
                            subType = null,
                            value = "high_risk",
                            remarks = null
                        )
                    ),
                    remarks = null
                )
            )
        ),
        pregnancyDetails = null,
        counselingList = listOf(),
        immunizationList = listOf(),
        remarks = "",
        isFollowupId = "",
        isReferralId = "",
        hasFollowup = false,
        hasReferral = false
    )
    let encounterSummaryObject : EncounterSummaryObject(
        encounterId: "SomeEncounterId",
        appointmentId: "Some Appointment ID",
        encounterTime: 1234234,
        hcwIdList: ["hello"],
        prevDiagnosisStatus: [],
        diagnosisStatus: [],
        prevTreatmentPlan: nil,
        treatmentPlan: nil,
        mainComplaints: [],
        diagnosticElements: DiagnosticElementObject(
            id: "DiagnosticElementItem",
            investigationList: [],
            biometricList: [
                DiagnosisItem(
                    type: DiagnosisType.Bio.rawValue,
                    subType: DiagnosisSubType.Age.rawValue,
                    category: DiagnosisCategory.Given.rawValue,
                    value: "20",
                    unit: "years",
                    observationTime: 1234123,
                    remarks: "Some Remarks"
                )
            ],
            signSymptomList: [],
            treatmentAdherence: [],
            healthQuestionnaire: [
                DiagnosisQuestionnaireObject(
                    type: DiagnosisType.HIV.rawValue,
                    subType: DiagnosisSubType.Other.rawValue,
                    category: DiagnosisQuestionnaireCategory.Assessment.rawValue,
                    questionList: [
                        DiagnosisQuestionItem(
                            type: QuestionType.ClosedEnded.rawValue,
                            question: "Some Question Text",
                            reply: "Some Reply here",
                            score: nil,
                            fullScore: nil,
                            section: nil,
                            remarks: nil

                        )
                    ],
                    outcomeList: [
                        DiagnosisOutcomeItem(
                            type: DiagnosisQuestionnaireOutcomeType.RiskStatus.rawValue,
                            subType: nil,
                            value: "high_risk",
                            remarks: nil
                        )
                    ],
                    remarks: nil
                )
            ]
        ),
        pregnancyDetails: nil,
        counselingList: [],
        immunizationList: [],
        remarks: "",
        isFollowupId: "",
        isReferralId: "",
        hasFollowup: false,
        hasReferral: false
    )
    const encounter_summary: {
        id: "SomeEncounterId",
        appointment_id: "Some Appointment ID",
        encounter_time: 123123123,
        hcw_id_list: ["hello", "world"],
        prev_diagnosis_status_list: [],
        diagnosis_status_list: [],
        prev_treatment_plan: null,
        treatment_plan: null,
        main_complaints_list: [],
        diagnostic_elements: {
          id: "DiagnosticElementItem",
          investigation_list: [],
          biometric_list: [
            {
              type: DiagnosisType.Bio,
              sub_type: DiagnosisSubType.Age,
              category: DiagnosisCategory.Given,
              value: "20",
              unit: "years",
              observation_time: 12321341234,
              remarks: "Some Remarks"
            }
          ],
          sign_symptom_list: [],
          treatment_adherence_list: [],
          health_questionnaire_list: [
            {
              type: DiagnosisType.HIV,
              sub_type: DiagnosisSubType.Other,
              category: DiagnosisQuestionnaireCategory.Assessment,
              question_list: [
                {
                  type: QuestionType.ClosedEnded,
                  question: "Some Question Text",
                  reply: "Some Reply here",
                }
              ],
              outcome_list: [
                {
                  type: DiagnosisQuestionnaireOutcomeType.RiskStatus,
                  value: "high_risk",
                }
              ],
              remarks: null,
            }
          ]
        },
        pregnancy_details: null,
        counseling_list: [],
        immunization_list: [],
        remarks: "",
        is_followup_id: "",
        is_referral_id: "",
        has_followup: false,
        has_referral: false,
      }
    "encounter_summary": {
      "appointment_id": "Some Appointment ID",
      "counseling_list": [],
      "diagnosis_status_list": [],
      "diagnostic_elements": {
        "biometric_list": [
          {
            "category": "given",
            "observation_time": 12321341234,
            "remarks": "Some Remarks",
            "sub_type": "age",
            "type": "bio",
            "unit": "years",
            "value": "20"
          }
        ],
        "health_questionnaire_list": [
          {
            "category": "assessment",
            "outcome_list": [
              {
                "type": "risk_status",
                "value": "high_risk"
              }
            ],
            "question_list": [
              {
                "question": "Some Question Text",
                "reply": "Some Reply here",
                "type": "closed_ended"
              }
            ],
            "sub_type": "other",
            "type": "hiv"
          }
        ],
        "id": "DiagnosticElementItem",
        "investigation_list": [],
        "sign_symptom_list": [],
        "treatment_adherence_list": []
      },
      "encounter_time": 123123123,
      "has_followup": false,
      "has_referral": false,
      "hcw_id_list": [
        "hello",
        "world"
      ],
      "id": "SomeEncounterId",
      "immunization_list": [],
      "is_followup_id": "",
      "is_referral_id": "",
      "main_complaints_list": [],
      "prev_diagnosis_status_list": [],
      "remarks": ""
    }


Investigation Item

Track the medical tests prescribed to the patient based on the diagnosis.

Param Usability Overview Enum Values Description
name REQUIRED STRING -- Name of test item being added.
test_value OPTIONAL STRING -- Value of the test item being concluded.
test_unit OPTIONAL STRING -- Unit for value of the test item being concluded.
ordered_date OPTIONAL LONG -- Date as TimeInMillis for when the test is being ordered.
tested_date OPTIONAL LONG -- Date as TimeInMillis for when the test is conducted.
action REQUIRED STRING view, add, update, remove Action performed on the prescribed test item for the patient in question.
remarks OPTIONAL STRING -- Comments or remarks added by the hcw user for the diagnosis item.
    val investigationItem = InvestigationItem(
            name = "someItem2", 
            test_value = 22.3f,
            test_unit = "mg", 
            ordered_date = 1682143333566,
            tested_date = 1683293370996,
            action = HcwItemAction.Add.name, 
            remarks = "hello World"
        )
    let investigationItem = InvestigationItem(
            name : "someItem2", 
            test_value : 22.3f,
            test_unit " "mg", 
            ordered_date : 1682143333566,
            tested_date : 1683293370996,
            action : HcwItemAction.Add.rawValue, 
            remarks : "hello World"
        )
    const InvestigationItemList = [
        {
          name: "itemName",
          test_value: 22,
          test_unit: "value",
          ordered_date: Date.now(),
          tested_date: Date.now(),
          action: HcwItemAction.View,
          remarks: "remarks",
        }
    ]
    {
        "prescribed_test_item": {
            "name": "Some Value Text Here",
            "test_value": 22.3,
            "test_unit": "mg",
            "ordered_date": 1681900368890,
            "tested_date": 1681909368890,
            "action": "add",
            "remarks": "Some Remarks"
        }
    }


Pregnancy Detail Object

Track the elements observed regarding pregnancy of the patient.

Param Usability Overview Enum Values Description
pregnancy_status REQUIRED BOOLEAN --- If the patient is pregnant or not.
last_menstrual_period OPTIONAL LONG -- TimeInMillis Date for the last menstrual period.
high_risk OPTIONAL BOOLEAN -- If the patient is a high risk.
gravida OPTIONAL INT -- Gravida for patient details.
parity OPTIONAL INT -- Parity for patient details.
n_fetus OPTIONAL INT -- Number of fetus for patient.
neonatal_outcome OPTIONAL STRING still_birth, live_birth, neonatal_death, other Neonatal Outcome for the patient.
maternal_outcome OPTIONAL STRING alive_well, maternal_death, other Maternal Outcome for the patient.
     val pregnancyDetailObject = PregnancyDetailObject(
        pregnancy_status = false,
        high_risk = false,
    )
     let pregnancyDetailObject = PregnancyDetailObject(
        pregnancy_status : false,
        high_risk " false,
    )
    const pregnancyDetailObject = {
            pregnancy_status: false,
            high_risk:false,
        }
    {
        "pregnancy_details": {
            "pregnancy_status": true,
            "high_risk": false,
            "n_fetus": 1
        }
    }


Prescription Item

Track the meds prescribed to the patient along with dosage values based on the diagnosis.

Param Usability Overview Enum Values Description
id REQUIRED STRING -- Drug Id for the med being prescribed.
name REQUIRED STRING -- Drug Name for the med being prescribed.
dosage_value REQUIRED FLOAT -- number of tablets being prescribed.
dosage_unit REQUIRED STRING -- Unit for the Drug being prescribed.
formulation REQUIRED STRING tablet, syrup, injection, contraceptive, insulin, capsule, other Formulation for the drug being prescribed.
type REQUIRED STRING bio, hiv, ncd, tb, ecd, diabetes, hypertension, pregnancy, mental_health, substance_use_disorder, adolescent_health, general_screening, gynecologic, antenatal, postnatal, cervical_cancer, lifestyle, psychological, gender_based_violence, sexual_behaviour, economic_strengthening, other Type for the drug being prescribed.
frequency REQUIRED STRING OD, BD, TDS, QDS, OM, ON, CC, PC, AC, PRN, AM, PM, other Frequency for the drug being prescribed. once a day, twice a day, ...
prescribed_days REQUIRED INTEGER -- The number of days the patient is being prescribed the usage of meds/drug.
dispensed_days REQUIRED INTEGER -- The number of days the patient is being dispensed for meds/drug.
prescription_date REQUIRED LONG -- TimeInMillis Date for the patient is being provided the prescription for meds/drug.
action REQUIRED STRING view, add, update, remove action being performed on the prescription item.
remarks OPTIONAL STRING -- Comments or remarks added by the hcw user for the diagnosis item.
     val prescriptionItem = PrescriptionItem(
            drug_id = "drug_id", 
            name = "metaformin2",
            dosage_value = 3, 
            dosage_unit = "mg", 
            formulation = PrescriptionItemType.Tablet.name,
            type = DiagnosisType.HIV.name,
            frequency = PrescriptionItemFrequency.BD.name, 
            prescribed_days = 2,
            action = HcwItemAction.Add.name
        )
     let prescriptionItem = PrescriptionItem(
            drug_id : "drug_id", 
            name : "metaformin2",
            dosage_value : 3, 
            dosage_unit : "mg", 
            formulation : PrescriptionItemType.Syrup.rawValue,
            type : DiagnosisType.HIV.rawValue,
            frequency : PrescriptionItemFrequency.BD.rawValue, 
            prescribed_days : 2,
            action : HcwItemAction.Add.rawValue
        )
    const PrescriptionItemList = [
        {
          id: "itemId",
          name: "itemName",
          dosage_value: 22,
          dosage_unit: "value",
          formulation : PrescriptionItemType.Syrup,
          type : DiagnosisType.HIV.rawValue,
          frequency: PrescriptionItemFrequency.AC,
          prescribed_days: 2,
          action: HcwItemAction.View,
          remarks: "remarks",
        },
    ]
    {
        "prescription_item": {
            "id": "drugId",
            "name": "Some Value Text Here",
            "dosage_value": 2,
            "dosage_unit": "mg",
            "formulation": "tablet",
            "type": "hiv",
            "frequency": "OD",
            "prescribed_days": 2,
            "action": "add",
            "remarks": "Some Remarks"
        }
    }


Immunization Item

Track the Immunization Items assigned to the Patient.

Param Usability Overview Enum Values Description
id REQUIRED STRING -- Id for the immunization record.
action REQUIRED STRING view, add, update, remove Action being performed on the immunization item.
type REQUIRED STRING -- Type for the immunization item being prescribed.
dose REQUIRED INTEGER -- Dose provided/prescribed in the immunization item.
status REQUIRED BOOLEAN -- Status of the immunization item.
date OPTIONAL LONG -- Date at which the immunization is provided (if applicable)
remarks OPTIONAL STRING -- Comments or remarks added by the hcw user for the diagnosis item.
     val immunizationItem = ImmunizationItem(
            id = "item_id", 
            action = HcwItemAction.Add.name,
            type = "SomeType",
            dose = 3, 
            status = true
        )
    let immunizationItem = ImmunizationItem(
        id = "item_id",
        action = HcwItemAction.Add.rawValue,
        type = "SomeType",
        dose = 3,
        status = true
    )
    let immunizationItem = ImmunizationItem(
    const PrescriptionItemList = [
        {
            id = "item_id",
            action = HcwItemAction.Add,
            type = "SomeType",
            dose = 3,
            status = true
        },
    ]
    {
        "immunization_item": {
            "id": "item_id",
            "type": "SomeType",
            "dose": 2,
            "status": true
        }
    }


Schedule Item

Track the Scheduling related items of the Patient for treatment adherence.

Param Usability Overview Enum Values Description
type REQUIRED STRING medical_review, assessment, other Type for the treatment adherence Scheduling item.
sub_type REQUIRED STRING bio, hiv, ncd, tb, ecd, diabetes, hypertension, pregnancy, mental_health, substance_use_disorder, adolescent_health, general_screening, gynecologic, antenatal, postnatal, cervical_cancer, lifestyle, psychological, gender_based_violence, sexual_behaviour, economic_strengthening, other Sub type of the treatment adherence scheduling item.
value REQUIRED INTEGER -- value for the scheduling item.
frequency REQUIRED STRING daily, days, weeks, months, other Frequency for the scheduling.
start_date OPTIONAL LONG -- Start Date from which the scheduling is starting.
end_date OPTIONAL LONG -- End Date on which the scheduling is ending.
action REQUIRED STRING view, add, update, remove action being performed on the scheduling item.
remarks OPTIONAL STRING -- Comments or remarks added by the hcw user for the scheduling item.
     val schedulingItem = SchedulingItem(
            type = ScheduleItemType.Assessment, 
            subType = DiagnosisType.HIV, 
            value = 3, 
            frequency = FrequencyType.Weeks, 
            action = HcwItemAction.Add.name
        )
     let schedulingItem = SchedulingItem(
        type : ScheduleItemType.Assessment.rawValue, 
        subType : DiagnosisType.HIV.rawValue, 
        value : 3, 
        frequency : FrequencyType.Weeks.rawValue, 
        action : HcwItemAction.Add.rawValue
    )
    const schedulingItem = {
        type : ScheduleItemType.Assessment, 
        sub_type : DiagnosisType.HIV, 
        value : 3, 
        frequency : FrequencyType.Weeks, 
        action : HcwItemAction.Add
    },
    {
        "scheduling_item": {
            "type": "assessment",
            "sub_type": "hiv",
            "value": 2,
            "frequency": "weeks",
            "action": "add",
        }
    }


Treatment Adherence Item

Track the items regarding the Patient for treatment adherence.

Param Usability Overview Enum Values Description
type REQUIRED STRING -- type of the treatement adherence.
medication_adherence REQUIRED STRING -- medication Adherence status of the patient.
lack_adherence_reason OPTIONAL STRING -- reason for lack of adherence of the patient if any.
remarks OPTIONAL STRING -- remarks on treatment adherence.
     val adherenceObject = TreatmentAdherenceItem(
            type = "Some Value Here", 
            medicationAdherence = "Some Value Here", 
            lackAdherenceReason = "Some Optional Value here"
            remarks = "Some Remarks"
        )
     let adherenceObject = TreatmentAdherenceItem(
        medicationAdherence : "Some Value Here", 
        lackAdherenceReason : "Some Optional Value here"
    )
    let adherenceObject = {
        medicationAdherence : "Some Value Here", 
        lackAdherenceReason : "Some Optional Value here"
    }
    {
        "treatment_adherence_list": {
            "medication_adherence": "Some Value Here", 
            "lack_adherence_reason": "Some Optional Value here"
        }
    }


Treatment Plan Item

Track the items regarding the treatment plan of the Patient.

Param Usability Overview Enum Values Description
followup_list OPTIONAL ARRAY (Schedule Item) -- followup items for treatment plan of the patient if any.
prescription_list OPTIONAL ARRAY (Prescription Item) -- prescribed medication list for treatment plan of the patient if any.
investigation_list OPTIONAL ARRAY (Investigation Item) -- medical tests list for treatment plan of the patient if any.
     val treatmentplanItem = TreatmentPlanItem(
            followupList = [...], 
            prescriptionList = [...], 
            investigationList = [...], 
        )
     let treatmentplanItem = TreatmentPlanItem(
            followupList : [...], 
            prescriptionList : [...], 
            investigationList : [...], 
        )
    let treatmentplanItem = {
            followupList : [...], 
            prescriptionList : [...], 
            investigationList : [...], 
        }
    {
        "treatment_plan": {
            "followup_list": [...], 
            "prescription_list": [...], 
            "investigation_list": [...], 
        }
    }