# Supply chain

Receive cold chain telemetry from remote temperature monitoring vendors, write it to DHIS2 and confirm consignment receipts upstream.

Vaccine refrigerators and freezers in health facilities are watched by remote temperature monitoring devices, whose vendors deliver the data to a server of the vendor's own. The [WHO PQS E006/DS01.2](https://extranet.who.int/prequal/sites/default/files/document_files/PQS%20E006%20DS01.2_0.pdf) data standard requires these vendors to send the data on, as JSON in HTTPS POST requests, to an endpoint and with credentials the country defines - an API the country pulls from does not satisfy it on its own. Zato is that endpoint. It accepts the data of every vendor, writes the readings to DHIS2 and alerts the district of an alarm.

Further down the chain, facilities acknowledge the consignments they receive from the medical store in DHIS2, and Zato confirms each receipt to the warehouse system on the other side. This is the arrangement DHIS2 itself sets out for logistics, with facility data in DHIS2 connected through an integration layer to the national logistics management information system.

## Processing flow {#processing-flow}

```yaml
name: Cold chain telemetry and consignment receipts
actors:
  - id: vendor
    label: Monitoring vendor
  - id: zato
    label: Zato
  - id: dhis2
    label: DHIS2
  - id: district
    label: District
  - id: store
    label: Central store
steps:
  - from: vendor
    to: zato
    label: POST - PQS E006 readings and alarms of one appliance
    align: left
  - from: zato
    to: dhis2
    label: POST /api/dataValueSets - minimum, current and maximum
  - from: zato
    to: district
    label: Email and SMS for a new alarm
  - from: zato
    to: vendor
    kind: return
    label: The report is accepted
    align: left
  - from: zato
    to: dhis2
    label: GET /api/tracker/events - receipts since the last run
  - from: zato
    to: store
    label: POST - the receipt of each consignment
```

## The DHIS2 side {#the-dhis2-side}

The integration assumes a DHIS2 instance with two of the DHIS2 logistics packages:

- The [Temperature Monitoring Tool](https://docs.dhis2.org/en/implement/logistics/temperature-monitoring-tool-tmt.html), a daily data set with one data element per refrigerator or freezer of a facility and a minimum, current and maximum temperature for the morning and the afternoon.
- The [Consignment Receipt Acknowledgement](https://docs.dhis2.org/en/implement/logistics/consignment-receipt-acknowledgement-cra.html) program, an event program in which a facility scans the consignment number on the packing list of what it received.

## Pages in this section {#pages-in-this-section}

- [Setup](https://zato.io/docs/dev/healthcare/dhis2/supply-chain/setup.html) - A channel per vendor, the connections and the appliance mapping
- [Temperature readings](https://zato.io/docs/dev/healthcare/dhis2/supply-chain/readings.html) - Readings of each half-day into the Temperature Monitoring Tool
- [Alarms](https://zato.io/docs/dev/healthcare/dhis2/supply-chain/alarms.html) - The district notified once per alarm
- [Consignment receipts](https://zato.io/docs/dev/healthcare/dhis2/supply-chain/consignments.html) - Acknowledged consignments confirmed to the central store

## See also {#see-also}

- [DHIS2 overview](https://zato.io/docs/dev/healthcare/dhis2/index.html) - All DHIS2 integration pages
- [REST channels](https://zato.io/docs/dev/rest/channels.html) - Endpoints that external systems call

## Learn more {#learn-more}

- [Healthcare interface engine](https://zato.io/docs/dev/healthcare/) - Clinical messages, FHIR, conversion and operations
- [HL7 v2 parsing](https://zato.io/docs/dev/healthcare/hl7/v2/parsing/) - Messages as typed objects, with field access and validation
- [MLLP channels](https://zato.io/docs/dev/healthcare/hl7v2/mllp/) - Receiving and sending HL7 v2 over MLLP sockets
- [FHIR integrations](https://zato.io/docs/dev/healthcare/hl7/fhir/) - Read and write FHIR resources, with paths, bundles and extensions
- [HL7 v2 to FHIR](https://zato.io/docs/dev/healthcare/hl7/to-fhir/) - Converting v2 messages into FHIR bundles, codes and references included
- [EDIFACT](https://zato.io/docs/dev/healthcare/edifact/) - Parsing interchanges, dialects and the transports they arrive on
- [Transformation](https://zato.io/docs/dev/healthcare/transformation/) - One message in, another standard out, in ordinary Python
- [Audit log](https://zato.io/docs/dev/healthcare/audit-log.html) - Every message with its acknowledgment, searchable by patient identifier
- [AI in clinical interfaces](https://zato.io/docs/dev/healthcare/ai/) - Services calling LLMs and AI agents calling clinical services as tools
