ohcnetwork / care_fe

Care is a Digital Public Good enabling TeleICU & Decentralised Administration of Healthcare Capacity across States.
https://care.ohc.network
MIT License
204 stars 372 forks source link

Update range of diastolic blood pressure in detailed log update #8397

Open rithviknishad opened 3 weeks ago

rithviknishad commented 3 weeks ago

Describe the bug Currently normal log update has 0-250 as the range for both systolic and diastolic blood pressure fields. However, detailed log update has range 30-180 for diastolic and 0-250 for systolic.

(Ranges confirmed with @aparnacoronasafe)

To Reproduce Steps to reproduce the behavior:

  1. From the consultation dashboard, file a normal log update with blood pressure (observe the ranges).
  2. Also file a detailed log update, and enter vitals section. Observe the ranges for the blood pressure field.

https://care.ohc.network/facility/0c95c7f0-e1d2-4aff-83fa-933cef60d3a8/patient/7e8fc20f-02da-47f7-8c33-f2d8c7e52dd8/consultation/edfe0bd6-0f50-4a4c-8cd0-2d4ad0e9cea1/daily_rounds/06b17319-7ec3-4c56-a1f0-ffbceaa7d4a5/update

Expected behavior

Screenshots

image image
rithviknishad commented 3 weeks ago

@aparnacoronasafe We decided to restrict the range to a more restrictive value than allowing 0 to 250 as it's very unlikely to fill a zero in dia/sys field. Can we get a more acceptable / useful range?

cc: @gigincg

gigincg commented 3 weeks ago

@aparnacoronasafe Can we do

Systolic pressure between 50 and 250 mmHg. Diastolic pressure between 20 and 180 mmHg. Also, ensure that systolic pressure is always greater than diastolic pressure before submission.

aparnacoronasafe commented 3 weeks ago

We can add validation to make sure that systolic pressure is always greater than diastolic pressure

However, Systolic BP can go below 50 in heart attack patients nearing death and other extreme cases. so it is not wise to only allow values above 50. Same with diastolic BP.

I believe we need to increase the higher ceiling of both systolic and diastolic BP. A published in 1995 has recorded a maximum blood pressure of 370/360 mmHg. I recommend we allow values between 0 to 400 for both systolic and diastobil BP

rithviknishad commented 2 weeks ago

@aparnacoronasafe

Dr. @athulmanuel had mentioned the acceptable values for an EMR would be 30-300 mmHg for both systolic and diastolic and had also said that there would be scenarios where systolic or diastolic would be "non-recordable" and hence need the option to specify such instances explicitly.

rithviknishad commented 2 weeks ago

@vigneshhari

Wanted to confirm if it'd be okay to store BP in the JSON column in the following way, or should non-recordable be stored as a separate attribute/field?

# Indicates BP was not measured by the client.
bp = None

# Indicates both sys. and dia. are "Non-recordable"
bp = { 
  "systolic": None,
  "diastolic": None,
}

# Indicates sys was measured with a value and dia was "Non-recordable"
bp = { 
  "systolic": 100,
  "diastolic": None,
}

cc: @sainak

aparnacoronasafe commented 2 weeks ago

We need to keep the range of values more liberal. We can't look at the majority use case and choose to not acknowledge the edge cases.

We must keep the range more open.

The issue here is the UI component - slider. Athul doc is worried that if the allowed range is too wide, the slider becomes extended where the usable (commonly used) range will be a small section within the slider.

So my recommendation is:

@gigincg please comment

rithviknishad commented 2 weeks ago

As discussed, we'll allow 30-300 mmHg (or a more frequently used range) through the slider, however, to input values beyond the range, we'll allow 0-400 mmHg through the numeric input field, and will add descriptive text to indicate "too low" or "too high" beside in the component.

Also would be adding a checkbox for marking either being "Non-recordable"

cc: @aparnacoronasafe