As is:
Visit is selected by the visitUuid sent in the EncounterTransaction. Within the visit, the encounter is filtered based on the following logic, in that order
Regular Consultation
- by encounterType
- by sessionTime
- by user and provider
- by location
Retrospective
- by encounterType
- by user and provider
- by date
Visit Document
- by encounterType
- by provider
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
To be:
Objectives:
- Single consistent way to match encounters for regular encounters, retrospective encounter, on behalf of encounters and encounter edits.
- To support non providers to be able to use bahmni and create encounters.
- by encounterUuid if sent by the client.
- by encounterType
- by sessionTime (for retrospective entry, the client should send the date as 12:00)
- by provider if provider or on behalf of provider
- by user if not a provider
Note: Visit Document matching can be modelled as onBehalfOf and the time fixed to one specific time of a day as in retrospective