Is there a way for providers to remove patients they are consulting from the active queue, so that other providers know they are already being tended to?
Or is there some other workflow in Bahmni which can achieve this?
Is there a way for providers to remove patients they are consulting from the active queue, so that other providers know they are already being tended to?
Or is there some other workflow in Bahmni which can achieve this?
In a straight forward manner - no. the queues are not really queues as such - nothing goes out. One way to do this, is to capture some value against some concept in a form which the provider needs to fill up. Then you can use that to take into consideration in your SQLs that is used for a “queue”.
I think one must understand the data model, I tried to follow up on the data model detail and I come up with the following query.
> select distinct
concat(pn.given_name,' ',ifnull(pn.middle_name,''),' ', ifnull(pn.family_name,'')) as name, pi.identifier as identifier, concat("",p.uuid) as uuid, concat("",v.uuid) as activeVisitUuid, "false" as hasBeenAdmitted, pa.value from visit v inner join person_name pn on v.patient_id = pn.person_id and pn.voided = 0 inner join patient_identifier pi on v.patient_id = pi.patient_id and pi.identifier NOT IN ( select distinct( identifier) from wh_order_sumUp,wh_order_line,patient_identifier where patient_identifier.patient_id=wh_order_sumUp.patient_id and wh_order_line.order_id=wh_order_sumUp.order_id and wh_order_sumUp.paid_status = 0 and wh_order_sumUp.cancelled_statues = 0 and wh_order_line.location_id NOT IN (18,17,33) and wh_order_line.payment_category=1 and item_type IN ('consultation') ) inner join patient_identifier_type pit on pi.identifier_type = pit.patient_identifier_type_id inner join global_property gp on gp.property="bahmni.primaryIdentifierType" and gp.property_value=pit.uuid inner join person p on p.person_id = v.patient_id inner join person_attribute pa on pa.person_id=pn.person_id and pa.person_attribute_type_id=(SELECT person_attribute_type_id FROM openmrs.person_attribute_type where name='providerInCharge') where v.date_stopped is null AND v.voided = 0 and v.visit_id not in (select visit_id from visit_attribute where attribute_type_id = (select visit_attribute_type_id from visit_attribute_type where name="Admission Status" ) and voided = 0 and value_reference = "Admitted") and pa.value=(select name from location loc where loc.uuid=${location_uuid}) AND v.visit_id IN (select visit_id from encounter, obs where encounter.encounter_id=obs.encounter_id AND encounter_type=1)