Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info
titleWork in Progress

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

Table of Contents

The OpenLMIS reporting architecture requires an understanding of the service APIs in order to better understand which components of the system should be considered for ingestion. 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.

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

...


Info
titleWork in Progress

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

Table of Contents

The OpenLMIS reporting architecture requires an understanding of the service APIs in order to better understand which components of the system should be considered for ingestion. 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.

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 proof of deliveryFrequentlyYesThis 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?

NotesorderFileTemplatesGet 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 presentedFrequently
ChangeConsider
For Ingestion?
Notes
commodityTypesReturns an array of all commodityTypes in the systemInfrequentlyYesThis endpoint is used to get a list of
orders
all commodityTypes so we can query each
order 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 idproofsOfDelivery/{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
commodityType 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 CSVFrequentlyNoorders/{id}/retryManually retry for transferring order file via FTP after updating or checking the FTP transfer properties.RarelyNoorders/{id}/printPrint all order line items from an order to a csv or pdf file.FrequentlyNoproofOfDeliveryTemplatesDownload Proof Of Delivery report template with jrxml format.RarelyNo
commodityTypes/{id}Returns a specific commodity typeInfrequentlyYes(Not currently in the API documentation)
commodityTypes/{id}/auditLogReturns all or part of the resource's audit logInfrequentlyYesThis 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
facilityTypeApprovedProductsReturns an array of approved products by facility typeInfrequentlyNo
facilityTypeApprovedProducts/{id}Returns a specific facility type approved productInfrequentlyNo
facilityTypeApprovedProducts/{id}/auditLogReturns all or part of the resource's audit logInfrequently
FrequentlyproofsOfDelivery
No
YesThis will be valuable for seeing how a proof of delivery has changed over time.

facilityTypesReturns an array of facilityTypesRarelyYes
facilityTypes/{id}
/printPrint proof of delivery to a pdf file. RarelyNoreports/templates/fulfillmentGet an array of all fulfillment report templatesreports/templates/fulfillment/
Returns a specificy facility typeRarelyYes
This gets a list of all report templates.This may be useful if we need to display any information to users in a similar way.

facilityTypes/{id}
Get a specific report template
/auditLogReturns all or part of the resource's audit logRarelyYes
shipmentDraftsshipmentDrafts

geographicLevels
Get an array of all shipment Drafts, which are shipment files that have not been submitted.FrequentlyNo
Returns an array of geographicLevelsRarelyYes
geographicLevels/{id}
Get
Returns a specific
shipment Draft
geographic level
Frequently

...

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 ChangeConsider
For Ingestion?NotescommodityTypesReturns 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 idcommodityTypes/{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 commodityTypecommodityTypes/{id}/tradeItemsReturns an array of Trade Item UUIDs that may fulfill for the given commodityTypeFrequentlyYescurrencySettingsReturns the currency settings for OpenLMISRarelyNofacilitiesReturns an array of facilities.InfrequentlyYesfacilities/minimalReturns an array of facilities with id and name onlyInfrequentlyNofacilities/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 facilityInfrequentlyYesfacilities/{id}/approvedProductsReturns an array of full or non-full supply approved products for this facilityRarelyYesfacilities
Rarely
NoshipmentsGet an array of all shipmentsFrequentlyYesThis endpoint is used to get a list of all shipments so we can query each shipment by idshipments/{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)RarelyNotransferProperties/{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.

...

Frequency
of Change

...

Yes
geographicLevels/{id}/auditLogReturns all or part of the resource's audit logRarelyYes
idealStockAmountsReturns an array of idealStockAmountsRarelyYesThis may change quarterly or annually depending on the country's policy
LocationGet local resources (like geographic zones, facilities) as FHIR Location instances.InfrequentlyYesWe may want to ingest this if we want to ingest FHIR resources. Otherwise, all information is available in other resources.
lotsExperimental resource to find lots in the systemFrequentlyNoWe will not ingest this endoint until it's no longer experimental. (This resource does not have a schema)
lots/{id}Experimental resource to find a specific lotFrequentlyNoWe will not ingest this endoint until it's no longer experimental. (This resource does not have documentation)
lots/{id}/auditLogExperimental resource to get all or part of hte resource's audit logFrequentlyNoWe will not ingest this endoint until it's no longer experimental.
orderableDisplayCategoriesReturns an array of orderableDisplayCategoriesInfrequentlyNoWe need to review this. I'm not sure how it's used.
orderableDisplayCategories/searchFind orderable categories with matched code. Returns an array.InfrequentlyNoThis resource uses a GET method and all other search endpoints use a POST method
orderableDisplayCategories/{id}Returns a specific orderable display categoryInfrequentyNo
orderableDisplayCategories/{id}/auditLogReturns all or part of the resource's audit logInfrequentlyNo
processingPeriodsGet all processing periods that match the given parameters. The processingScheduleId parameter should not be used together with facilityId and programId parameters because all of them are used to find a processing schedule. Also the facilityId and programId parameters must be used together. This returns an array.RarelyYesThis changes annually depending on the country's policy
processingPeriods/{id}Returns a specific processing periodRarelyYes
processingPeriods/{id}/auditLogReturns all or part of the resource's audit logRarelyYes
processingPeriods/{id}/durationReturns an integer of the total months in the processing periodRarelyYes
processingSchedulesReturns an array of all processingSchedulesRarelyYesThis resource does not have a schema. We need to review this. I'm not sure how it's used.
processingSchedules/searchRetrieve processing schedule based on the provided parameters.RarelyNoThis resource uses a GET method and all other search endpoints use a POST method
processingSchedules/{id}Returns a specific processing scheduleRarelyYes
processingSchedules/{id}/auditLogReturns all or part of the resource's audit logRarelyYes
programsReturns an array of all programsRarelyYes
programs/searchReturns an array of programsRarelyNoThis resource uses a GET method and all other search endpoints use a POST method
programs/{id}Returns a specific programRarelyYes
programs/{id}/auditLogReturns all or part of the resource's audit logRarelyYes
requisitionGroupsReturns an array of requisitionGroupsRarelyYesThis resource does not have a schema.
requisitionGroups/{id}Returns a specific requisition groupRarelyYes
requisitionGroups/{id}/auditLogReturns all or part of the resource's audit log
InfrequentlyYes

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

facilityOperators
RarelyYes
rightsReturns an array of user rights (permissions)RarelyYesYes, assuming we need to replicate rights in the reporting stack.
rights/searchReturns an array of
all Facility Operators
user rights based on search criteriaRarely
YesfacilityOperators
NoThis resource uses a GET method and all other search endpoints use a POST method
rights/{id}Returns a specific
Facility Operator
user rightRarelyYes
facilityOperators

rights/{id}/auditLogReturns all or part of the resource's audit log
Infrequently
RarelyYes
facilityTypeApprovedProducts

rolesReturns an array of
approved products by facility typeInfrequentlyNofacilityTypeApprovedProducts
user rolesRarelyYesYes, assuming we need to replicate rights in the reporting stack.
roles/{id}Returns a specific
facilityTypeApprovedProductInfrequentlyNofacilityTypeApprovedProducts
user roleRarelyYesThe documentation has this resource listed as /roles/{roleId} which doesn't follow the other syntax
roles/{id}/auditLogReturns all or part of the resource's audit log
InfrequentlyNofacilityTypesReturns an array of facilityTypes
RarelyYes
facilityTypes

serviceAccounts/{
id
token}Returns a
specificy facilityTypeRarelyYesfacilityTypes/{id}/auditLogReturns all or part of the resource's audit log
specific service accountFrequentlyNo
stockAdjustmentReasonsReturns an array of stockAdjustmentReasonsRarelyYes
geographicLevels

stockAdjustmentReasons/searchReturns an array of
geographicLevels
stockAdjustmentReasons based on search criteriaRarely
Yes
No
geographicLevels

stockAdjustmentReasons/{id}Returns a specific
geographicLevel
stock adjustment reasonRarelyYes
geographicLevels

stockAdjustmentReasons/{id}/
auditLogReturns all or part of the resource's audit logRarelyYesidealStockAmountsReturns an array of idealStockAmountsRarelyYesThis may change quarterly or annually depending on the country's policyLocationGet local resources (like geographic zones, facilities) as FHIR Location instances.InfrequentlyYesWe may want to ingest this if we want to ingest FHIR resources. Otherwise, all information is available in other resources.lotsExperimental resource to find lots in the systemFrequentlyNoWe will not ingest this endoint until it's no longer experimental. (This resource does not have a schema)lots/{id}Experimental resource to find a specific lotFrequentlyNoWe will not ingest this endoint until it's no longer experimental. (This resource does not have documentation)lots
auditLogReturns all or part of the resource's audit logRarelyYes
supervisoryNodesReturns an array of supervisoryNodesRarelyYes
supervisoryNodes/{id}Returns a specific supervisory nodeRarelyYes
supervisoryNodes/{id}/supervisoryUsersReturns a specific supervisory nodeInfrequentlyNo
supervisoryNodes/{id}/auditLog
Experimental resource to get
Returns all or part of
hte
the resource's audit log
FrequentlyorderableDisplayCategories
Rarely
NoWe will not ingest this endoint until it's no longer experimental.
Yes
supplyLinesReturns an array
of orderableDisplayCategoriesorderableDisplayCategories/searchFind orderable categories with matched code. Returns an array.Infrequently
of supplyLines
InfrequentlyNoWe need to review this. I'm not sure how it's used.
RarelyYes
supplyLines/searchByUUIDReturns an array of supplyLines based on search criteriaRarelyNoThis resource uses a GET method and all other search endpoints
use a POST methodorderableDisplayCategories
use a POST method
supplyLines/{id}Returns a specific supply lineRarelyYes
supplyLines/{id}/auditLogReturns all or part of the resource's audit logRarelyYes
tradeItemsReturns an array of tradeItemsInfrequentlyYes
tradeItems/{id}Returns a
specific orderableDisplayCategoryInfrequentyNoorderableDisplayCategories
specific trade itemInfrequentlyYesThis resource is not documented
tradeItems/{id}/auditLogReturns all or part of the resource's audit logInfrequently
NoprocessingPeriodsGet all processing periods that match the given parameters. The processingScheduleId parameter should not be used together with facilityId and programId parameters because all of them are used to find a processing schedule. Also the facilityId and programId parameters must be used together. This returns an array.RarelyYesThis changes annually depending on the country's policyprocessingPeriods
Yes
usersReturns an array of usersInfrequently

users/rightSearchReturns an array of users based on search criteriaInfrequentlyNo
users/{id}Returns a specific
processingPeriodRarelyYesprocessingPeriodsReturns an array of user roles
userInfrequentlyYesThis resource is not documented and may not exist due to the /users/{userId} endpoint.
users/{id}/auditLogReturns all or part of the resource's audit log
RarelyYesprocessingPeriods/{id}/durationReturns an integer of the total months in the processing periodRarelyYesprocessingSchedulesReturns an array of all processingSchedulesRarelyYesThis resource does not have a schema. We need to review this. I'm not sure how it's used.processingSchedules/searchRetrieve Processing Schedule based on the provided parameters.RarelyNoThis resource uses a GET method and all other search endpoints use a POST methodprocessingSchedules/{id}Returns a specific processingScheduleRarelyYesprocessingSchedules/{id}/auditLogReturns all or part of the resource's audit logRarelyYesprogramsReturns an array of all programsRarelyYesprograms/searchReturns an array of programsRarelyNoThis resource uses a GET method and all other search endpoints use a POST methodprograms/{id}Returns a specific programRarelyYesprograms/{id}/auditLogReturns all or part of the resource's audit logRarelyYesrequisitionGroupsReturns an array of requisitionGroupsRarelyYesThis resource does not have a schema.requisitionGroups/{id}Returns a specific requisition groupRarelyYesrequisitionGroups/{id}/auditLogReturns all or part of the resource's audit logRarelyYesrightsReturns an array of user rights (permissions)RarelyYesYes, assuming we need to replicate rights in the reporting stack.rights/searchReturns an array of user rights based on search criteriaRarelyNoThis resource uses a GET method and all other search endpoints use a POST methodrights/{id}Returns a specific user rightRarelyYesrights/{id}/auditLogReturns all or part of the resource's audit logRarelyYesroles
InfrequentlyYes
users/{userId}Returns a specific userInfrequentlyYesThis assumes we need to consumer user in
users/{userId}/facilitiesReturns an array of all supervision facilities associated with a user. To determine which facilities work with which right and program, please use /permissionStrings for mappings.InfrequentlyYes
users/{userId}/fulfillmentFacilitiesReturns an array of facilities the associated user can fulfill.InfrequentlyYes
users/{userId}/hasRightReturns a boolean. Check if the user has a right with certain criteria.InfrequentlyYes
users/{userId}/permissionStringsReturns an array of all permissions (in string format) associated with a user. The format is as follows; RightName|FacilityUUID|ProgramUUID for supervision rights, RightName|FacilityUUID for fulfillment rights, and RightName for general rights.InfrequentlyYes
users/{userId}/programsReturns an array of programs the associated user supervises.InfrequentlyYes
users/{userId}/roleAssignmentsReturns an array of full information about user's roles and rights.InfrequentlyYes
users/{userId}/supervisedFacilitiesDepricatedInfrequentlyNo
users/{userId}/supportedProgramsReturns an array of supported programs the associated user supervises through the home facility.InfrequentlyYes

Requisition Service

The Requisition Service provides RESTful API endpoints for a robust requisition workflow used in pull-based supply chains for requesting more stock on a schedule through an administrative hierarchy. Requisitions are initiated, filled out, submitted, and approved based on configuration. Requisition Templates control what information is collected on the Requisition form for different programs and facilities.

need to replicate rights in the reporting stack.roles user rolerolesauditLog all or part of the resource's audit logstockAdjustmentReasons stockAdjustmentReasons RarelystockAdjustmentReasons/auditLog all or part of the resource's audit logsupervisoryNodes supervisory nodeRarelyYessupervisoryNodessupervisoryUsers a specific supervisory nodesupervisoryNodes/auditLog all or part of the resource's audit logtradeItems
Resource
/api/
DescriptionFrequency
of Change
Consider
For Ingestion?
Notes
availableRequisitionColumnsReturns an array of availableRequisitionColumnsRarelyYesYes, assuming we want to dynamically display requisition information
reports/templates/requisitionsReturns an array of requisition report templatesRarelyNo
reports/templates/requisitions/{id}Returns a specific requisition report templateRarelyYesThe documentation has this resource listed as /roles/{roleId} which doesn't follow the other syntaxNo
reports/templates/requisitions/{id}/{format}Returns RarelyYesserviceAccounts/{token}Returns a specific service accountFrequentlyNostockAdjustmentReasonsReturns an array of stockAdjustmentReasonsRarelyYesa generated report based on the template id and formatRarelyNo
requisitionsReturns an array of requisitionsFrequentlyYes
requisitions/periodsForInitiateReturns a single processing period DTO that's available to initiate the requisitionFrequentlyNo
requisitions/requisitionsForApprovalReturns an array of requisitions that are currently awaiting approvalFrequentlyYes
requisitions/requisitionsForConvertReturns an array of requisitions that are currently awaiting to be converted to ordersFrequentlyYes
requisitions/searchReturns an array of requisitions based on search criteriaFrequentlyNostockAdjustmentReasons/{id}Returns a specific stock adjustment reasonRarelyYesThis resource uses a GET method and all other search endpoints use a POST method
requisitions/submittedReturns an array of requisitions that currently have "SUBMITTED" statusFrequentlyYes
requisitions/{id}Returns RarelyYessupervisoryNodesReturns an array of supervisoryNodesRarelyYesa specific requisitionFrequentlyYes
requisitions/{id}/printReturns a PDF of a specific requisitionFrequentlyNo
requisitions/{id}/statusMessagesReturns InfrequentlyNoan array of status messages for a specific requisitionFrequentlyNo
requisitiontemplatesReturns an array of requisitionTemplatesRarelyYes
requisitiontemplates/{id}Returns a specific requsitionTemplateRarelyYessupplyLinesReturns an array of supplyLinesRarelyYes
supplyLines/searchByUUIDReturns an array of supplyLines based on search criteriaRarelyNoThis resource uses a GET method and all other search endpoints use a POST method
supplyLines/{id}Returns a specific supply lineRarelyYessupplyLines/{id}/auditLogReturns all or part of the resource's audit logRarelyYestradeItemsReturns an array of tradeItemsInfrequentlyYes

Stock Management Service

The Stock Management Service provides RESTful API endpoints for creating electronic stock cards and recording stock transactions over time.

trade itemInfrequentlyusers specific userusers/{userId userInfrequentlyusersuserIdfacilities an array of all supervision facilities associated with a user. To determine which facilities work with which right and program, please use /permissionStrings for mappings.Infrequently
Resource
/api/
DescriptionFrequency
of Change
Consider
For Ingestion?
Notes
organizationsReturns an array of organizations.
This is for administrators only.
It requires the permission STOCK_ORGANIZATIONS_MANAGE.
Regular users can get the list of sources or destinations they can use through /api/validSources and /api/validDestinations.
RarelyNo
physicalInventoriesReturns an array of saved physical inventory. If inventories do not exist, will return empty list.FrequentlyYes
physicalInventories/{id}Returns a specific physical inventoryFrequentlyYesThis resource is not documentedtradeItems/{id}/auditLogReturns all or part of the resource's audit logInfrequentlyYesusersReturns an array of usersInfrequentlyusers/rightSearchReturns an array of users based on search criteriaInfrequentlyNo
physicalInventoryTemplatesReturns a jrxml physical inventory report templateRarelyNo
reasonCategoriesReturns an array of reason categories to choose from, for admin user to configure reasons.RarelyYes
reasonTypesReturns an array of reason types to choose from, for admin user to configure reasons.RarelyYes
stockCardLineItemReasonsReturns an array of stockCardLineItemReasonsRarelyYes
stockCardLineItemReasons/{id}Returns a InfrequentlyYesThis resource is not documented and may not exist due to the /users/{userId} endpoint.users/{id}/auditLogReturns all or part of the resource's audit logInfrequentlyYesspecific stock card line item reasonRarelyYes
stockCardLineItemReasonTagsReturns an array of stockCardLineItemReasonTagsRarelyNo
stockCardsReturns an array of stock cards, result is an intersection of user rights and request parameters.FrequentlyYes
stockCards/{id}Returns a specific stock cardFrequentlyYes
stockCards/{id}/printReturns InfrequentlyYesusers/{userId}/fulfillmentFacilitiesReturns an array of facilities the associated user can fulfill.InfrequentlyYesusers/{userId}/hasRightReturns a boolean. Check if the user has a right with certain criteria.InfrequentlyYesusers/{userId}/permissionStringsReturns an array of all permissions (in string format) associated with a user. The format is as follows; RightName|FacilityUUID|ProgramUUID for supervision rights, RightName|FacilityUUID for fulfillment rights, and RightName for general rights.InfrequentlyYesusers/{userId}/programsReturns an array of programs the associated user supervises.InfrequentlyYesusers/{userId}/roleAssignmentsReturns an array of full information about user's roles and rights.InfrequentlyYesusers/{userId}/supervisedFacilitiesDepricatedInfrequentlyNousers/{userId}/supportedProgramsReturns an array of supported programs the associated user supervises through the home facility.a PDF of the stock cardFrequentlyNo
stockCardSummariesDepricatedFrequentlyNo
stockCardSummaries/printReturns a stock card summary report in PDF format to print.FrequentlyNo
stockCardSummaries/noCardsReturns an array of dummy stock card summaries for approved products and lots that don't have cards yet. This can be used by front end to determine what new stock cards can be created.RarelyNo
stockCardTemplatesReturns a stock card template given the parametersRarelyNoI think this is used for UI related display and may be applicable for display in the reporting stack
v2/stockCardSummariesReturns an array of summaries of stock cards, which contains SOH, product name, and other essential information. This will NOT return any line items. (This could be used by front end for list view.)FrequentlyYes
validDestinationsReturns an array of valid destinations of a program and a facility type.RarelyYes
validReasonsReturns an array of valid reasons based on program and facility type.RarelyYes
validSourcesReturns an array of valid sources based on program and facility type.RarelyYes

Sample API Improvements from Ona

...