Hi everyone,
Some patients don’t know their exact date of birth. When that happens, staff can register the patient with an estimated age instead, and OpenMRS works out an approximate birthdate from it.
The problem
The same patient’s birthdate is shown differently in different parts of O3. For example, a patient registered on 14 October as “about 33 years old” shows the same age everywhere (33 yrs), but:
- The patient header shows 1993
- Patient search results show 14-Oct-1993
The day and month in search results aren’t real. The system fills them in when an age is estimated — in this case with the date the patient was registered; on other records it may be 1 January. The result looks like a genuine birthday (here it even suggests the patient’s birthday is today, 14-Oct), which can mislead staff who use date of birth to confirm they have the right patient. (Tracked in O3-6099.)
Why the two screens disagree
They get the patient’s details from two different places in the system:
- The patient header uses the FHIR API (
/ws/fhir2/R4/Patient/{uuid}). For an estimated birthdate, it only gives the year, e.g."birthDate": "1993". - Patient search (both the search page and the search box in the top bar) uses the REST API (
/ws/rest/v1/patient?q=…). It gives the full stored date (1993-10-14) together with a separate “estimated” flag. The search screen shows the full date and doesn’t use that flag.
(Search results are converted to FHIR format in the browser for display, but the underlying data comes from REST.)
Why this isn’t a quick fix
- OpenMRS stores every birthdate as a full date, plus a simple yes/no flag saying whether it’s estimated. It doesn’t record which part is uncertain — the day, the month, or the year.
- Earlier design ideas, such as showing question marks for the unknown parts, never made it into the product.
So, we’d like to agree on the right behaviour with the community first.
What we’d like to hear from you
- How should an estimated birthdate look? For example:
- Year only:
1993 - With a marker:
~1993or1993 (est.) - Question marks for unknown parts:
??-??-1993(this would need the data model change in question 3) - Age only:
~33 yrs - Something else?
- Year only:
- Should the age also show it’s estimated (e.g.
~33 yrs)? - Is “estimated: yes/no” enough? Or do you need to record partial knowledge, such as knowing the month and year but not the day?
- Where does it need to be consistent? Patient header, search results, registration, printed labels and forms?
- How do you handle this today? Paper conventions, local customisations, or national requirements?
- Does anything clinical depend on it at your sites, such as children’s dosing or growth charts?
