Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Work in Progress

This is a work in progress and we will remove this info box when complete.

The OpenLMIS reporting architecture requires an understanding of the microservice APIs. This document is a large scope based on the OpenLMIS v3.3 architecture and includes identifying each microservice, taking a snapshot of the API endpoint, identifying if data changes over time and identifying whether this endpoint needs to be considered for reporting ingestion. Further documentation is available on the components page. This analysis includes 

What's included:

  • All endpoints that have a GET method

What's not included:

  • Auth Service - The auth service focuses on authenticating users. The reporting stack does not have a clear use case for this information.
  • Reference UI - The reference UI component does not have endpoints that can be consumed.
  • Report Service - The report service primarily focuses on building reports for consumption within the Reference UI. There is no clear use case for this information.
  • Notification Service - The notification service only presents an interface for other microservices to send notifications to users. There is no clear use case for this information.
  • Endpoints with POST, PUT or DELETE methods will not be included because the reporting stack only consumes data.

Fulfillment Service

Fulfillment Service provides RESTful API endpoints for orders, shipments, and proofs of delivery. It supports fulfillment within OpenLMIS as well as external fulfillment using external ERP warehouse systems.

Resource
/api/
DescriptionFrequency
of Change

Consider
For Ingestion?

Notes
orderFileTemplatesGet the template of the order fileRarely

No


orderNumberConfigurationsGet the configuration for the order numberRarely

No


ordersGet an array of all orders. Minimal order details are presentedFrequentlyYesThis endpoint is used to get a list of orders so we can query each order by id
orders/requestingFacilitiesReturn UUIDs of all the available, distinct requesting facilities.
The supplying facility when provided, it will also filter the available requesting facilities by the supplying facility of the order.
RarelyNoThis may be interesting for streamlined reporting, but if we are consuming each order, we can derive this list in the reporting system.
orders/{id}Get chosen order with detailsFrequentlyYesThis Entity changes over time as orders change.
Note that there is an "expand" query parameter that could be valuable as well.
orders/{id}/exportExport Order to CSVFrequentlyNo
orders/{id}/retryManually retry for transferring order file via FTP after updating or checking the FTP transfer properties.RarelyNo
orders/{id}/printPrint all order line items from an order to a csv or pdf file.FrequentlyNo
proofOfDeliveryTemplatesDownload Proof Of Delivery report template with jrxml format.RarelyNo
proofsOfDeliveryGet an array of proofs of delivery.FrequentlyYesThis endpoint is used to get a list of all proofs of delivery so we can query each proof of delivery by id
proofsOfDelivery/{id}Get chosen proofOfDeliveryFrequentlyYesThis Entity changes over time as proofsOfDelivery change.
Note that there is an "expand" query parameter that could be valuable as well.
proofsOfDelivery/{id}/auditLogReturns all or part of the resource's audit logFrequentlyYesThis will be valuable for seeing how a proof of delivery has changed over time.
proofsOfDelivery/{id}/printPrint proof of delivery to a pdf file. RarelyNo
reports/templates/fulfillmentGet an array of all fulfillment report templatesRarelyYesThis gets a list of all report templates.This may be useful if we need to display any information to users in a similar way.
reports/templates/fulfillment/{id}Get a specific report templateRarelyYes
shipmentDraftsGet an array of all shipment Drafts, which are shipment files that have not been submitted.FrequentlyNo
shipmentDrafts/{id}Get a specific shipment DraftFrequentlyNo
shipmentsGet an array of all shipmentsFrequentlyYesThis endpoint is used to get a list of all shipments so we can query each shipment by id
shipments/{id}Get a specific shipmentFrequentlyYesThis Entity changes over time as shipments change.
Note that there is an "expand" query parameter that could be valuable as well.
transferProperties/searchFind transfer properties by facility id (transferProperties are used for FTP and local settings that help the system interact with a third party fulfillment service)RarelyNo
transferProperties/{id}Get a specific transfer propertyRarelyNo


CCE Service

The Cold Chain Equipment (CCE) Service provides RESTful API endpoints for managing a CCE catalog, inventory (tracking equipment at locations) and functional status. The catalog can use the WHO PQS.

Resource
/api/
Description

Frequency
of Change

Consider
For Ingestion?
Notes
catalogItemsReturns all CCE catalog items that are matching given request parameters by conjunction.InfrequentlyInThis endpoint is used to get a list of all catalog items so we can query each catalog item by id 
catalogItems/{id}Get a specific CCE catalog itemFrequentlyYesThis Entity changes over time as the CCE item reports it's status
cceAlertsGet an array of all CCE alertsFrequentlyYes
DeviceGet local resources (like inventory items) as FHIR Device instances.InfrequentlyYesWe should consider this if we wish to consume FHIR resources compared to catalogItems/{id}
Note that this just lists the device specifics, not the status.
inventoryItemsGet an array of all CCE inventory itemsInfrequentlyYesThis endpoint is used to get a list of all inventory items so we can query each inventory item by id
inventoryItems/{id}Get a specific CCE inventory itemFrequentlyYesThis Entity changes over time as the inventory item is updated.
cceGet the version of the CCE endpointInfrequentlyRarely

Reference Data Service

The Reference Data Service provides RESTful API endpoints that provide master lists of reference data including users, facilities, programs, products, schedules, and more. Most other OpenLMIS services depend on Reference Data Service. Many of these master lists can be loaded into OpenLMIS in bulk using the Reference Data Seed Tool or can be added and edited individually using the Reference Data Service APIs.

Resource
/api/
DescriptionFrequency
of Change
Consider
For Ingestion?
Notes
commodityTypesReturns an array of all commodityTypes in the systemInfrequentlyYesThis endpoint is used to get a list of all commodityTypes so we can query each commodityType by id
commodityTypes/{id}Returns a specific commodityTypeInfrequentlyYes(Not currently in the API documentation)
commodityTypes/{id}/auditLogReturns the auditLog for a specific commodityTypeInfrequentlyYesThis could help us parse changes to the commodityType
commodityTypes/{id}/tradeItemsReturns an array of Trade Item UUIDs that may fulfill for the given commodityTypeFrequentlyYes
currencySettingsReturns the currency settings for OpenLMISRarelyNo
facilitiesReturns an array of facilities.InfrequentlyYes
facilities/minimalReturns an array of facilities with id and name onlyInfrequentlyNo
facilities/supplyingReturns an array of facilities that are supplied by the same supervisory nodeInfrequentlyNo(This API endpoint has poor documentation and no schema)
facilities/{id}Returns a specific facilityInfrequentlyYes
facilities/{id}/approvedProductsReturns an array of full or non-full supply approved products for this facilityRarelyYes
facilities/{id}/auditLogReturns all or part of the resource's audit logInfrequentlyYes

This could help us understand the changes to a particular facility over time

facilityOperatorsReturns an array of all Facility OperatorsRarelyYes
facilityOperators/{id}Returns a specific Facility OperatorRarelyYes
facilityOperators/{id}/auditLogReturns all or part of the resource's audit logInfrequentlyYes











































  • No labels