Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

iii ) Hiding the specified section

...

...

Failing a field:

The failsWhenExpression action is used to define custom validation logic that determines when a form input should fail validation. This is useful for scenarios where default validation rules are not sufficient and you need to create more complex, condition-based validations.

...

  • Expression: The logical condition that must be met for the validation to fail.

  • Message: The error message displayed to the user when the validation fails.

FailsWhenExpression.mov

Calculation Expression:

The purpose of the calculation expression is to automatically calculate values without requiring any manual effort.

i) Body Mass Index (BMI)

Example Scenario:

Consider a scenario where a doctor wants to calculate a patient's BMI using their height and weight as inputs. Typically, the doctor would need to perform the mathematical calculation manually each time, increasing their workload. It would be more efficient if the doctor could simply enter the patient's height and weight, and the patient's BMI would be automatically calculated and displayed in the BMI field.

...

Code Block
languagejson
"calculate": {
    "calculateExpression": "calcBSAcalcBMI('height', 'weight')"
}

Calculate BMI.mov

ii) Body Surface Area (BSA) Calculation:

This function takes the height and weight values and returns the Body Surface Area (BSA).

...

Code Block
{
  "calculate": {
    "calculateExpression": "calcBSA('height','weight')"
  }
}

Calculate BSA.mov

iii) Calculate Gravida :

The calcGravida function calculates the total number of pregnancies (gravida) based on the number of term pregnancies and abortions/miscarriages. This function ensures that the inputs are valid numbers and returns the sum of the term pregnancies and abortions.

Code Example
Code Block
{
  "calculate": {
    "calculateExpression": "calcGravida('parityTerm','parityAbortion')"
  }
}

...

Does not Match Expression

This helper allows users to validate fields against regular expressions eg. in the failsWhenExpression as below

...

Time Calculation

Calculate Time Difference in days/weeks/months/years

...

Date Calculation:

i) Expected Date of Delivery (EDD) Calculation:

...

Consider a scenario where a doctor needs to determine the expected date of delivery (EDD) for a pregnant patient. By inputting the patient's last menstruation date, the function can automatically calculate and provide the EDD, eliminating the need for manual calculation and ensuring accuracy.

Code Example
Code Block
languagejson
{
  "calculate": {
    "calculateExpression": "calcEDD('LMP')"
  }
}

...

Field Validation with Regular Expressions:

This helper allows users to validate fields against regular expressions.

...

ii) Next Visit Date Calculation :

In a healthcare setting, particularly in the management of HIV patients, it is crucial to ensure that patients adhere to their antiretroviral (ARV) therapy. Patients are typically dispensed a specific number of days' worth of ARV medication, and their next clinic visit is scheduled based on the dispensed medication duration. The calcNextVisitDate function helps calculate the next visit date based on the follow-up date and the number of days for which ARV medication is dispensed.

Example Scenario

A patient visits a clinic on July 10, 2024, for their routine follow-up. During this visit, they are given a supply of ARV medication for the next 10 days. The healthcare provider needs to schedule the patient's next visit based on this information.

Code Example
Code Block
languagejson
{
  "calculate": {
    "calculateExpression": "calcNextVisitDate('followUpDate', 'arvDispensedInDays')"
  }
}

...

iii) Treatment End Date Calculation:

For instance, a patient with a particular medical condition (indicated by a specific status code) might be given additional days beyond the regular ARV dispensed days to ensure better health outcomes.

Example Scenario

A patient visits a clinic on July 10, 2024, for their routine follow-up. They are given a supply of ARV medication for the next 10 days. The patient has a status code '160429AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', indicating a need for extended treatment.

Code Example
Code Block
languagejson
{
  "calculate": {
    "calculateExpression": "calcTreatmentEndDate('followUpDate', 'arvDispensedInDays', 'patientStatus')"
  }
}

...

Date Validation

This helper function ( isDateBefore, isDateAfter ) allows users to validate the date field by checking whether the selected date is in the past or future by comparing it with a base date.

Example:

Consider a scenario where a patient wishes to book an appointment with a doctor. The appointment date should be in the future and not in the past. If the patient mistakenly books an appointment for a past date, it leads to an invalid appointment. To prevent this, the date field should be validated to ensure the selected date is not in the past, thereby guiding the patient to choose a valid appointment date.

Code Example
Code Block
languagejson
"validators": [
  {
    "type": "js_expression",
    "failsWhenExpression": "isDateBefore(appointment, '2024-07-13')",
    "message": "Appointment cannot be in the past"
  }
]

isDateBefore appointment.mov

Historical Expression

The historical Expression gives ability to retrieve the patient’s most recent data, and copy the same into another form field.

Example

Consider a patient who needs to calculate the weight difference between the most recent visit and the current visit. In this scenario, a historical expression will be helpful as it retrieves the patient's previous visit details, including the patient's biometric data. This allows us to fetch the patient's weight and compare the weight difference.

historical expression.mov

References:

i) Expression helper functions

ii) Date validation

iii) Hiding fields