Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions Care/Operations/medication_dispense_report_pallium.md
Original file line number Diff line number Diff line change
@@ -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*

````

56 changes: 56 additions & 0 deletions Care/Operations/purchase_report_pallium.md
Original file line number Diff line number Diff line change
@@ -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*

````