From c188dab6b202b9712190c4280f9965522351a3e9 Mon Sep 17 00:00:00 2001 From: sonzsara Date: Mon, 25 May 2026 15:02:30 +0530 Subject: [PATCH 1/2] Add purchase report documentation for Pallium --- Care/Operations/purchase_report_pallium.md | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Care/Operations/purchase_report_pallium.md diff --git a/Care/Operations/purchase_report_pallium.md b/Care/Operations/purchase_report_pallium.md new file mode 100644 index 0000000..fbc4abf --- /dev/null +++ b/Care/Operations/purchase_report_pallium.md @@ -0,0 +1,56 @@ + +# Purchase Report - Pallium + +> Detailed line-level purchase / supply delivery report with supplier, destination, batch, expiry and purchase value + +## Purpose + +Line-by-line view of stock received via supply deliveries at Pallium. Each row represents one supply delivery and shows the supplier, destination location, product, batch / expiry details, unit purchase price, quantity delivered and the total purchase value. + +## Parameters + +| Parameter | Type | Description | Example | +|-----------|------|-------------|---------| +| `date` | DATE / range | Metabase date filter (typically bound to `sd.created_date`) | `'2026-05-01'` | +| `supplier_name` | TEXT | Filter by supplier organisation name (exact match) | `'ABC Pharma'` | +| `stock_name` | TEXT | Filter by product / stock name (exact match) | `'Paracetamol'` | + +--- + +## Query + +```sql +SELECT + sd.created_date AS supply_date, + org.name AS supplier_name, + fl.name AS destination, + p.batch->>'lot_number' AS lot_number, + p.expiration_date, + pk.name AS product_name, + p.purchase_price, + sd.supplied_item_quantity * p.purchase_price AS total_purchase, + sd.supplied_item_quantity AS quantity_delivered +FROM emr_supplydelivery sd +JOIN emr_inventoryitem ii ON sd.supplied_inventory_item_id = ii.id +JOIN emr_product p ON ii.product_id = p.id +JOIN emr_productknowledge pk ON p.product_knowledge_id = pk.id +JOIN emr_deliveryorder d ON sd.order_id = d.id +JOIN emr_organization org ON d.supplier_id = org.id +JOIN emr_facilitylocation fl ON d.destination_id = fl.id +WHERE sd.status NOT IN ('entered_in_error', 'abandoned') + --[[AND {{date}}]] + --[[AND org.name = {{supplier_name}}]] + --[[AND pk.name = {{stock_name}}]] +ORDER BY supplier_name; +``` + +## Notes + +- **Metabase filters:** + - `[[AND {{date}}]]` is a field filter — bind it to `sd.created_date` (or whatever date column you want filterable) in the Metabase variable settings. + - `[[AND org.name = {{supplier_name}}]]` and `[[AND pk.name = {{stock_name}}]]` are exact-match text filters on supplier and product name. + +*Last updated: 2026-05-25* + +```` + From b20ec4f089e07735245860f7f3923a6c96828210 Mon Sep 17 00:00:00 2001 From: sonzsara Date: Tue, 26 May 2026 12:09:21 +0530 Subject: [PATCH 2/2] Add medication dispense report documentation for Pallium --- .../medication_dispense_report_pallium.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Care/Operations/medication_dispense_report_pallium.md diff --git a/Care/Operations/medication_dispense_report_pallium.md b/Care/Operations/medication_dispense_report_pallium.md new file mode 100644 index 0000000..a03d1fc --- /dev/null +++ b/Care/Operations/medication_dispense_report_pallium.md @@ -0,0 +1,59 @@ + +# Medication Dispense Report - Pallium + +> Line-level medication dispense report with location, batch, expiry, dispensing staff, charge details. + +## Purpose + +Detailed view of completed medication dispenses at Pallium. Each row is one dispense and includes the inventory location, product / batch / expiry, who dispensed it, the linked charge item (status, quantity, total price). + +## Parameters + +| Parameter | Type | Description | Example | +|-----------|------|-------------|---------| +| `date` | DATE / range | Metabase date filter (typically bound to `md.created_date`) | `'2026-05-25'` | +| `location_filter` | TEXT | Filter by inventory location name (exact match) | `'Pharmacy'` | +| `medicine_filter` | TEXT | Filter by medicine / product name (exact match) | `'Paracetamol'` | + +--- + +## Query + +```sql +SELECT + fl.name AS location_name, + pk.name AS medicine_name, + p.batch->>'lot_number' AS batch, + p.expiration_date AS expiry, + md.created_date, + TRIM(u.first_name || ' ' || COALESCE(u.last_name, '')) AS created_by_name, + md.quantity AS dispensed_quantity, + ci.status AS charge_status, + ci.quantity AS charge_quantity, + ci.total_price AS charge_total_price +FROM emr_medicationdispense md +JOIN emr_inventoryitem ii ON md.item_id = ii.id +JOIN emr_product p ON ii.product_id = p.id +JOIN emr_productknowledge pk ON p.product_knowledge_id = pk.id +JOIN emr_facilitylocation fl ON ii.location_id = fl.id +JOIN users_user u ON md.created_by_id = u.id +JOIN emr_chargeitem ci ON md.charge_item_id = ci.id +WHERE md.status = 'completed' + --[[AND {{date}}]] + --[[AND fl.name = {{location_filter}}]] + --[[AND pk.name = {{medicine_filter}}]] +ORDER BY md.created_date DESC; +``` + +## Notes + + +- **Metabase filters:** + - `[[AND {{date}}]]` is a field filter — bind it to `md.created_date` in the Metabase variable settings. + - `[[AND fl.name = {{location_filter}}]]` and `[[AND pk.name = {{medicine_filter}}]]` are exact-match text filters on inventory location and medicine name. + + +*Last updated: 2026-05-25* + +```` +