Viewing records

The code used to present views of records is also the same code that renders forms - FormDisplayAction. Instead of rendering a widget, it presents the value. If encounterId is passed as a parameter, it fetches the records from the db. Enumerations are stored in the db by enumeration id; therefore, the human-friendly text values need to be teased out:

encMap = PatientRecordUtils.getEncounterMap(encounterForm, encounter, "fieldId");

If you add a new widget to the Zcore codebase, you may need to add support for it in PatientRecordUtils. resolveValue.

Many of the forms use collapsing sections. If there are values in a section, FormDisplayAction uses DynaSiteObjects.getFormDependencies() (which is stored in memory when ZEPRs app starts) to toggle open that section.