Pregnancies

The concept of pregnancy is central to the ZEPRS application - it affects how the patient record is viewed, because the clinician is usually interested in records relating to a particular pregnancy (usually the current one). Most persistence operations should keep this in mind. For example, if you are doing a search for values to populate the patient chart, make sure you’re filtering by the correct pregnancy. Even though the patient is currently pregnant, the user may be viewing records from a previous pregnancy.

Since women can have multiple pregnancies, there is a Pregnancy object to track these situations. Each EncounterRecord (metadata for each form), outcome, and problem has a pregnancy property. Whenever a form is submitted, the patient’s current pregnancy is persisted in the encounters table, in PatientStatusRecord (patient_status, as current_pregnancy_id). If there is not a pregnancy object for a mother when a form is submitted, a new instance is persisted and linked via patientStatusReport. datePregnancyBegin is set to the encounter.getDateVisit(); however, it would be better to use LMP or similar.

When an encounter is edited, it does not matter if the pregnancy has ended - don’t mistakenly create a new pregnancy. In fact, we’re not even checking getPatientStatusreport().getCurrentPregnancy() for EncounterCorrections.

Need to check getPatientStatusreport().getCurrentPregnancy() for every new form submission, because it is not certain which will the first form used when starting a new pregnancy. This avoids hard-coding form id's into the system.

Do not assume that all patients are pregnant - a child of a patient cannot be pregnant (at least for the next 10-13 years).

The following forms are updated from pregnancy-to-pregnancy:

  • Demographics (patient registration)
  • Previous Pregnancy
    • This chart lists all non-ZEPRS pregnancies as well as ZEPRS pregnancies.
  • Medical/Surgical History
  • Current Medicine
  • SMC