Higher-level APIs to support building EMR functionality in OpenMRS, to supplement the data-level APIs in the OpenMRS core.
- 2.2.1
- event
- metadatamapping
- webservices.rest
- fhir2
- metadatasharing
- providermanagement
- reporting
- EmrApiProperties + EmrApiConstants wraps much of the configuration, much of which is in GPs and metadata mappings
- Creates a role named "Privilege Level: Full", if it doesn't exist, and ensures it has every privilege that does not start with "App:" or "Task:"
- Creates a role named "Privilege Level: High", if it doesn't exist, and ensures it has every privilege that does not start with "App:" or "Task:" and is not in a list of "unsafe" privileges
- Creates metadata source, metadata mappings, and metadata sets that are required for the configuration
- Creates an "Unknown Provider" provider if it does not exist
- Sets default visit assignment handler via global property
- Sets up the patient viewed event listener subscription
- Ensures the person image folder exists
See https://github.com/openmrs/openmrs-contrib-rest-api-docs
- AccountDomainWrapper - wrapper for Person + User + Provider with methods for getting and manipulating account-related data
- AccountService - CRUD operations for AccountDomainWrapper and opinionated methods for getting roles and privileges
- AccountValidator - validates an AccountDomainWrapper
- ProviderIdentifierGenerator - interface for generating a provider identifier
- Provides higher level APIs around Admission, Discharge, and Transfer
- These are based on the "Disposition" configuration in DispositionService / DispositionDescriptor and metadata in EmrApiProperties
- A/D/T based around specific encounter type and optional form
- Provides an implementation of automatically creating visits and assigning encounters to visits with appropriate visit types, if no visit is associated with the encounter
- Provides an implementation of closing "stale" visits and a scheduled task to automate this
- Provides additional service methods to manage visits, ensure active visit, deal with overlapping visits, manage visit locations, enter retrospective visits
- Provides implementations for merging patients and merging visits
- Provides APIs for creating checkin encounters, adt encounters, and identify and get inpatient visits
- Provides additional service methods for getting and searching for concepts
- Various utility classes for dealing with DB and Hibernate queries and access and DAO implementations in support of other services
- Utilities for working defining concept sets and members and creating and manipulating obs groups
- Diagnosis and CodedOrFreeTextAnswer wrapper classes to represent a diagnosis as a concept set / obs group
- Deprecated services and utility classes (is core as of 2.2) related to Diagnosis
- Concept Set / Obs Group specification for modeling a disposition
- Configuration relating disposition to Admission / Discharge / Transfer
- Json parsing and handling specification for reading in a dispositionConfig.json that determines how disposition obs behave
- Services and DispositionAction interface and implementations for performing operations as a result of a disposition
- Utility classes for creating and manaing domain wrapper classes
- EncounterTransaction that provides a json model object for encounter, obs, order, diagnosis, disposition, providers, and additional extensions and context
- Mappers to convert to/from data and EncounterTransaction / json
- Matcher interface and base implementations to find an existing Encounter given a set of parameters
- Processor interface for reading and saving Encounter and EncounterTransaction
- Service methods to leverage the other entities to enable saving/finding/retrieving encounters based on the EncounterTransaction construct
- Logic for handling evolution of Orders through to OpenMRS 1.9
- Basic interface and implementation for publishing events with the event module whenever a user views a patient
- Event listener on patient view events to track in the user's property of emrapi.lastViewedPatientIds
- Service with methods to close/reopen programs, visits, patient death information
- Interfaces for PatientMergeAction and VisitMergeAction, used within the merge methods in the adt package
- Should really have this and the service methods in the adt package together
- Utility classes for mds import specifications, likely no longer used
- PatientDomainWrapper - convenience methods around Patient and related tables, including primary identifier, telephone number, unknown patient, and test patient
- EmrPatientProfileService - allows associating a patient with a PersonImage
- EmrPatientService - methods to find patients by visit location or primary identifier
- (reporting module) definitions and evaluators for getting patient Primary Identifier
- Services and convenience entities for saving person images to a configurable directory
- Convenience classes for constructing concepts, concept data types, and obs
- Utility classes / functions in support of the other packages as needed
- Service and parameter objects to find visits and return associated EncounterTransactions in that visit
- Service methods to get diagnoses obs and patients with particular diagnoses
- VisitDomainWrapper - convenience wrapper to get info around active / open status, encounters contained, diagnoses, dispositions, ADT status