Patient Monitoring Tool


Purpose

There are several programs that require the patient to adhere to a particular order of visits, tests or other checks as per a schedule.  In such scenarios, the patient monitoring flowsheet is helpful.It gives a visual representation of the planned treatment schedule for the patient, the patient's current position in the treatment schedule and missed or erroneously captured data.This flowsheet is driven by a trigger that would define the beginning of the schedule. For instance, this could be a date like the date of enrolling the patient into a program or it could be an event, for instance birth of a child.

Configuration

Patient Monitoring Flowsheet can be configured in two ways based on the requirement

  • Patient monitoring flowsheet for Treatment
  • Patient monitoring flowsheet for Drugs

Configuring Patient monitoring flowsheet for Treatment

Add to clinical/dashboard.json for it to appear on the patient dashboard
"patientMonitoringWithTreatmentStartDate": {
  "displayByDefault": true,
  "maxRecentlyViewedPatients": 1,
  "printing": {
    "title": "EndTB General Patient Monitoring",
    "header": "Patient Monitoring",
    "logo": "../images/bahmniLogo.png",
    "showNameAndImage": true
  },
  "sections": {
    "patientMonitoring": {
      "type": "custom",
      "displayType": "Full-Page",
      "config": {
        "startDateObsConcept" : "TUBERCULOSIS DRUG TREATMENT START DATE",
        "endDateConcept": "EOT, End of Treatment Outcome date",
        "title": "SUMMARY_TITLE_PATIENT_OBSERVATION_CHART",
        "template": "<patient-monitoring-tool section='section' patient='patient' enrollment='{{enrollment}}'></patient-monitoring-tool>"
      }
    }
 
  },
  "translationKey": "DASHBOARD_TAB_PATIENT_MONITORING_TREATMENT_START_DATE_KEY"
}
KeyInfoValue Type
startDateObsConceptFully specified name of the concept like treatment start date or the new drug start date. This is the trigger for the normal milestones of the Flowsheet.Text
endDateConceptFully specified name of the concept that would mark the end of the flowsheet monitoring. After this the data would no longer be monitored for the patient for the normal milestones.Text

Screenshot of the Patient Monitoring Flowsheet for Treatment


Configuring Patient monitoring flowsheet for Drugs

Multiple flowsheets can be created on the patient dashboard, each with a different start date concept. In the config below, the drug start date has been used as the start date concept.

Add to clinical/dashboard.json for it to appear on the patient dashboard
"patientMonitoringWithDrugsStartDate": {
  "displayByDefault": true,
  "maxRecentlyViewedPatients": 1,
  "printing": {
    "title": "EndTB General Patient Monitoring",
    "header": "Patient Monitoring",
    "logo": "../images/bahmniLogo.png",
    "showNameAndImage": true
  },
  "sections": {
    "patientMonitoring": {
      "type": "custom",
      "displayType": "Full-Page",
      "config": {
        "startDateDrugConcepts": ["Bedaquiline"],
        "endDateConcept": "EOT, End of Treatment Outcome date",
        "title": "SUMMARY_TITLE_PATIENT_OBSERVATION_CHART",
        "template": "<patient-monitoring-tool section='section' patient='patient' enrollment='{{enrollment}}'></patient-monitoring-tool>"
      }
    }
  },
  "translationKey": "DASHBOARD_TAB_PATIENT_MONITORING_DRUGS_START_DATE_KEY"
}
KeyInfoValue Type
nameThis is the name that will be displayed on the flowsheet rowsText
conceptsFully specified names of concepts whose observations are required to be present for the question to be marked as available (green)Text
type

"Obs" for all observations and bacteriology results. "Drugs" for drugs

Text

Screenshot of the Patient Monitoring Flowsheet for Drugs


Milestones: There are two types of milestones in the config: Fixed milestones and floating/variable milestones.

For fixed milestones, we define the upper and lower bound with respect to the  date "startDateObsConcept". 

Floating milestones get activated or start tracking questions only after a "handler" is specified. For such milestones, we define the upper and lower bound with respect to a "handler". Also, the floating milestones are independent of this "endDateConcept".

KeyInfoValue Type
nameThis is the name that will be displayed on the flowsheet columnsText
min,maxThe upper and lower bound of with respect to the handler/startDateObsConceptNumeric
handlerCurrently we support only two handlers: "org.bahmni.flowsheet.definition.impl.TreatmentEndDateHandler" for the End of Treatment milestone. The handler gives the value of "EOT, End of Treatment Outcome date" . "org.bahmni.flowsheet.definition.impl.SixMonthPostTreatmentOutcomeHandler" for the Post treatment 6 months outcome milestone. This handler gives a date 180 days after the end of treatment date, if it is present.Text
questions"name" of the questions we want to track for the particular milestoneText


Add the configurations in openmrs/apps/clinical/patientMonitoringConfig.json

Below is the content of sample configuration file

patientMonitoringConfig.json file
{
  "questions": [
    {
      "name": "BMI",
      "concepts": [
        "Height (cm)",
        "Weight (kg)"
],
      "type": "Obs"
},
    {
      "name": "Delamanid",
      "concepts": [
        "Delamanid"
],
      "type": "Drug"
},
    {
      "name": "Prison",
      "concepts": [
        "Baseline, Prison"
],
      "type": "Obs"
},
    {
      "name": "MTBDRsl Fluoroquinolone",
      "concepts": [
        "Bacteriology, Fluoroquinolone"
],
      "type": "Obs"
},
    {
      "name": "Isoniazid",
      "concepts": [
        "Isoniazid"
],
      "type": "Drug"
},
    {
      "name": "Hemoglobin g/l",
      "concepts": [
        "Lab, Hemoglobin g/dl"
],
      "type": "Obs"
},
    {
      "name": "Culture result",
      "concepts": [
        "Bacteriology, Culture results"
],
      "type": "Obs"
}
  ],
  "milestones": [
    {
      "name": "M1",
      "config": {
        "min": 0,
        "max": 30
},
      "questions" : [
        "BMI", "Culture result", "Delamanid", "Prison","MTBDRsl Fluoroquinolone","Isoniazid", "Hemoglobin g/l"
]
    },
    {
      "name": "M2",
      "config": {
        "min": 31,
        "max": 60
},
      "questions": [
        "BMI", "Culture result", "Delamanid"
]
    },
    {
      "name": "M3",
      "config": {
        "min": 61,
        "max": 90
},
      "questions": [
        "BMI", "Culture result", "Delamanid", "Prison","MTBDRsl Fluoroquinolone","Isoniazid"
]
    },
    {
      "name": "M4",
      "config": {
        "min": 91,
        "max": 120
},
      "questions": [
        "BMI", "Culture result", "Delamanid","Isoniazid"
]
    },
    {
      "name": "M5",
      "config": {
        "min": 121,
        "max": 150
},
      "questions": [
        "BMI", "Culture result", "Delamanid"
]
    },
    {
      "name": "M6",
      "config": {
        "min": 151,
        "max": 180
},
      "questions": [
        "BMI", "Culture result", "Delamanid"
]
    },
    {
      "name": "MTx",
      "config": {
        "min": -15,
        "max": 15
},
      "handler": "org.bahmni.flowsheet.definition.impl.TreatmentEndDateHandler",
      "questions": [
        "BMI", "Culture result", "Delamanid", "Isoniazid"
]
    },
    {
      "name": "M6M",
      "config": {
        "min": -30,
        "max": 30
},
      "handler": "org.bahmni.flowsheet.definition.impl.SixMonthPostTreatmentOutcomeHandler",
      "questions": [
        "BMI", "Culture result", "Delamanid", "Isoniazid"
]
    }
  ]
}

 Internationalisation of Flowsheet Tab name

Add the value for key in respective home/ locale_${en,fr, .. }.json.

Add to home/locale_en.json
{
   "DASHBOARD_TAB_PATIENT_MONITORING_TREATMENT_START_DATE_KEY": "Patient Monitoring (T)",
   "DASHBOARD_TAB_PATIENT_MONITORING_DRUGS_START_DATE_KEY": "Patient Monitoring (D)"
}

 Internationalisation of column headers


Add the values for the following keys in respective clinical/locale_${en, fr, .. }.json. Sample values for the keys are provided below:


In clinical/locale_en.json
{
     "PATIENT_MONITORING_SCHEDULE_TOOL_TITLE": "Patient Monitoring Schedule Tool",
     "PATIENT_MONITORING_REGISTRATION_NUMBER": "Registration Number",
     "PATIENT_MONITORING_REPORT_DATE": "Report Date",
     "PATIENT_MONITORING_EMR_ID": "Patient EMR ID",
     "PATIENT_MONITORING_START_DATE_OF_NEW_DRUG_TREATMENT": "Start date of new drug treatment",
     "PATIENT_MONITORING_START_DATE_OF_MDRTB_TREATMENT": "Start date of MDRTB Treatment",
     "PATIENT_MONITORING_ACTIVE_DRUG_REGIMEN": "Active Drug Regimen",
     "PATIENT_MONITORING_CURRENT_MONTH_OF_NEW_DRUG_TREATMENT": "Current Month of new drug treatment",
     "PATIENT_MONITORING_CURRENT_MONTH_OF_MDRTB_TREATMENT": "Current Month of MDRTB treatment",
     "PATIENT_MONITORING_CURRENT_MONTH": "Current Month",
     "PATIENT_MONITORING_END_OF_TREATMENT": "End of Treatment",
     "PATIENT_MONITORING_PLANNED_MONITORING_SCHEDULE": "Planned Monitoring Schedule",
     "PATIENT_MONITORING_DATE_ADDED": "Data Added",
     "PATIENT_MONITORING_PENDING_DATA_ENTRY": "Pending Data Entry",
     "PATIENT_MONITORING_LEGENDS": "Legends"
 
}