Do I need more than one login location ?

I have set up 2 login locations for example

  1. Normal
  2. Emergency

And several visit locations

  1. Eye
  2. Ear, Throat
  3. Child

I notice when a login using “Normal” location and assign a patient to a eye polyclinic. The patient is only visible in this polyclinic if my login location is still “Normal”, if I change my login location to “Emergency” then the patient is no longer visible for that particular polyclinic.

Why does it behave this way ? Any good use case / scenario when 2 login locations are required ?

where is the patient visible or invisible? Did you configure any separate patient queue or are you using existing queues ?

As you can see in one location “KEBIDANAN(0)”

while in another location “KEBIDANAN(1)”

Each tab will hold a sql query as a global property value. You might have to modify the query based on your use case.

https://bahmni.atlassian.net/wiki/display/BAH/Configure+Patient+Lists

Please paste the query that the tab is using… we will help you find the problem

Actually I am more curious to the necessity of having 2 login location.

In normal use case the flow is pretty straight forward.

front desk > polyclinic / in-patient > end

However for Emergency there’s no polyclinic. Thus when someone login using “Emergency” location, he or she shouldn’t be able to view the list of polyclinics.

one example of query that I use in one of the polyclinic

select distinct concat(pn.given_name," ", pn.family_name) as name,  pi.identifier as identifier,  concat("",p.uuid) as uuid,  concat("",v.uuid) as activeVisitUuid,  IF(va.value_reference = "Admitted", "true", "false") as hasBeenAdmitted  from    visit v join person_name pn on v.patient_id = pn.person_id and pn.voided = 0 and v.voided=0    join patient_identifier pi on v.patient_id = pi.patient_id and pi.voided=0    join patient_identifier_type pit on pi.identifier_type = pit.patient_identifier_type_id    join global_property gp on gp.property="emr.primaryIdentifierType" and gp.property_value=pit.uuid    join person p on p.person_id = v.patient_id  and p.voided=0    join encounter en on en.visit_id = v.visit_id and en.voided=0    left outer join location loc on en.location_id = loc.location_id    join encounter_provider ep on ep.encounter_id = en.encounter_id  and ep.voided=0    join provider pr on ep.provider_id=pr.provider_id and pr.retired=0    join person per on pr.person_id=per.person_id and per.voided=0    left outer join visit_attribute va on va.visit_id = v.visit_id and va.attribute_type_id = (                 select visit_attribute_type_id from visit_attribute_type where name="Admission Status"             )  where    v.date_stopped is null and    loc.uuid=${location_uuid} and    v.visit_type_id = 10    order by en.encounter_datetime desc

Decision of having multiple login locations or not is left to the implementation. There is no compulsion to have multiple login locations.

You have to design your sql query in such a way that it filters the polyclinic patients when logging into emergency.

This query will fetch all the patients who have an active visit whose location is equal to the login location.