1387: Skip a product lineItem


Test Case #:1387

Test Case Name:   Skip a product lineItem

System: OpenLMIS

Subsystem: blue

Test case designed by: Paulina Borowa

Design Date:10.01.2017

Short description

Description
As a storeroom manage, who is a submitter or an authorizer, I should have the ability to skip or unskip selected products in an R&R. Skipping a product makes the product visibly greyed out and non editable, where as unskipping it would turn it back to life and editable. Once the R&R which has skipped products is authorized then all the data values of the skipped products have to be nulled.

Same behavior for both Regular and Emergency R&R

Also, this impacts printing create a new story Mary Jo Kochendorfer to clean up so that a user can either print all products or hide the skipped ones.
Also, we need to address adding products back if skipped previously.

This ticket is an API ticket for implementing the ability to skip product line items in the Requisition API. The corresponding UI task is OLMIS-1084 In Progress .

Acceptance criteria for API part

  • Skipping/Unskipping line items is possible only when requisition is INITIATED or SUBMITTED
  • Skipping line item is indicated by the "skipped" flag on the requisition line item
  • When authorizing the requisition with skipped line items, all the values of the skipped line item must be nulled
  • Skipping is only possible if the skip column is enabled in the requisition template
  • This works the same way for regular and emergency requisitions
  • Skipped line item can be submitted/authorized/approved with empty user input fields
  • Calculations are not performed on skipped line items

                                                                                                                                                   

Pre – conditions:

                                                                                                                                                                                                                                                       

 

 

Step

Action

Expected system response

Comment

1

Requisition Temp0ate with skipped part: 

    {
  "id": "5a268780-fafd-4243-9551-5c7daa824913",
  "createdDate": [
    2016,
    6,
    14,
    12,
    0
  ],
  "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",
  "columnsMap": {
    "adjustedConsumption": {
      "name": "adjustedConsumption",
      "label": "Adjusted Consumption",
      "indicator": "N",
      "displayOrder": 20,
      "isDisplayed": true,
      "source": "CALCULATED",
      "columnDefinition": {
        "id": "720dd95b-b765-4afb-b7f2-7b22261c32f3",
        "name": "adjustedConsumption",
        "sources": [
          "CALCULATED"
        ],
        "options": [],
        "label": "adjustedConsumption",
        "indicator": "N",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "numberOfNewPatientsAdded": {
      "name": "numberOfNewPatientsAdded",
      "label": "Number Of New Patients Added",
      "indicator": "F",
      "displayOrder": 18,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "5708ebf9-9317-4420-85aa-71b2ae92643d",
        "name": "numberOfNewPatientsAdded",
        "sources": [
          "USER_INPUT"
        ],
        "options": [
          {
            "id": "34b8e763-71a0-41f1-86b4-1829963f0704",
            "optionName": "newPatientCount",
            "optionLabel": "New Patient Count"
          },
          {
            "id": "4957ebb4-297c-459e-a291-812e72286eff",
            "optionName": "dispensingUnitsForNewPatients",
            "optionLabel": "Dispensing units for new patients"
          }
        ],
        "label": "Number Of New Patients Added",
        "indicator": "F",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": {
        "id": "34b8e763-71a0-41f1-86b4-1829963f0704",
        "optionName": "newPatientCount",
        "optionLabel": "New Patient Count"
      }
    },
    "beginningBalance": {
      "name": "beginningBalance",
      "label": "Beginning Balance",
      "indicator": "A",
      "displayOrder": 4,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "33b2d2e9-3167-46b0-95d4-1295be9afc22",
        "name": "beginningBalance",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "Beginning Balance",
        "indicator": "A",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "dispensingUnit": {
      "name": "orderableProduct.dispensable.dispensingUnit",
      "label": "Unit/Unit of Issue",
      "indicator": "U",
      "displayOrder": 15,
      "isDisplayed": true,
      "source": "REFERENCE_DATA",
      "columnDefinition": {
        "id": "61e6d059-10ef-40c4-a6e3-fa7b9ad741ec",
        "name": "dispensingUnit",
        "sources": [
          "REFERENCE_DATA"
        ],
        "options": [],
        "label": "Unit/Unit of Issue",
        "indicator": "U",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      },
      "option": null
    },
    "totalLossesAndAdjustments": {
      "name": "totalLossesAndAdjustments",
      "label": "Total Losses And Adjustments",
      "indicator": "D",
      "displayOrder": 7,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "cd57f329-f549-4717-882e-ecbf98122c38",
        "name": "totalLossesAndAdjustments",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "Total Losses And Adjustments",
        "indicator": "D",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "totalStockoutDays": {
      "name": "totalStockoutDays",
      "label": "Total Stockout Days",
      "indicator": "X",
      "displayOrder": 13,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "750b9359-c097-4612-8328-d21671f88920",
        "name": "totalStockoutDays",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "Total Stockout Days",
        "indicator": "X",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "packsToShip": {
      "name": "packsToShip",
      "label": "Packs To Ship",
      "indicator": "V",
      "displayOrder": 16,
      "isDisplayed": true,
      "source": "CALCULATED",
      "columnDefinition": {
        "id": "dc9dde56-593d-4929-81be-d1faec7025a8",
        "name": "packsToShip",
        "sources": [
          "CALCULATED"
        ],
        "options": [],
        "label": "Packs To Ship",
        "indicator": "V",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "productName": {
      "name": "orderableProduct.name",
      "label": "Product",
      "indicator": "N",
      "displayOrder": 3,
      "isDisplayed": true,
      "source": "REFERENCE_DATA",
      "columnDefinition": {
        "id": "e53e80de-fc63-4ecb-b6b2-ef376b34c926",
        "name": "productName",
        "sources": [
          "REFERENCE_DATA"
        ],
        "options": [],
        "label": "Product",
        "indicator": "N",
        "mandatory": false,
        "isDisplayRequired": true,
        "canChangeOrder": false,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      },
      "option": null
    },
    "approvedQuantity": {
      "name": "approvedQuantity",
      "label": "Approved Quantity",
      "indicator": "K",
      "displayOrder": 11,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "a62a5fed-c0b6-4d49-8a96-c631da0d0113",
        "name": "approvedQuantity",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "Approved Quantity",
        "indicator": "K",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "skipped": {
      "name": "skipped",
      "label": "Skip",
      "indicator": "S",
      "displayOrder": 1,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "c6dffdee-3813-40d9-8737-f531d5adf420",
        "name": "skipped",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "skipped",
        "indicator": "S",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": false,
        "canBeChangedByUser": false,
        "columnType": "BOOLEAN"
      },
      "option": null
    },
    "totalReceivedQuantity": {
      "name": "totalReceivedQuantity",
      "label": "Total Received Quantity",
      "indicator": "B",
      "displayOrder": 5,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "5ba8b72d-277a-4da8-b10a-23f0cda23cb4",
        "name": "totalReceivedQuantity",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "Total Received Quantity",
        "indicator": "B",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "total": {
      "name": "total",
      "label": "Total",
      "indicator": "Y",
      "displayOrder": 14,
      "isDisplayed": true,
      "source": "CALCULATED",
      "columnDefinition": {
        "id": "ef524868-9d0a-11e6-80f5-76304dec7eb7",
        "name": "total",
        "sources": [
          "CALCULATED"
        ],
        "options": [],
        "label": "Total",
        "indicator": "Y",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "productCode": {
      "name": "orderableProduct.productCode",
      "label": "Product Code",
      "indicator": "O",
      "displayOrder": 2,
      "isDisplayed": true,
      "source": "REFERENCE_DATA",
      "columnDefinition": {
        "id": "bde01507-3837-47b7-ae08-cec92c0c3cd2",
        "name": "productCode",
        "sources": [
          "REFERENCE_DATA"
        ],
        "options": [],
        "label": "Product Code",
        "indicator": "O",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": false,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      },
      "option": null
    },
    "totalConsumedQuantity": {
      "name": "totalConsumedQuantity",
      "label": "Total Consumed Quantity",
      "indicator": "C",
      "displayOrder": 6,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "9e825396-269d-4873-baa4-89054e2722f4",
        "name": "totalConsumedQuantity",
        "sources": [
          "CALCULATED",
          "USER_INPUT"
        ],
        "options": [],
        "label": "Total Consumed Quantity",
        "indicator": "C",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "pricePerPack": {
      "name": "pricePerPack",
      "label": "Price Per Pack",
      "indicator": "T",
      "displayOrder": 17,
      "isDisplayed": true,
      "source": "REFERENCE_DATA",
      "columnDefinition": {
        "id": "df524868-9d0a-18e6-80f5-76304ded7ab9",
        "name": "pricePerPack",
        "sources": [
          "REFERENCE_DATA"
        ],
        "options": [],
        "label": "Price Per Pack",
        "indicator": "T",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "requestedQuantity": {
      "name": "requestedQuantity",
      "label": "Requested Quantity",
      "indicator": "J",
      "displayOrder": 9,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "4a2e9fd3-1127-4b68-9912-84a5c00f6999",
        "name": "requestedQuantity",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "Requested Quantity",
        "indicator": "J",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "requestedQuantityExplanation": {
      "name": "requestedQuantityExplanation",
      "label": "Requested Quantity Explanation",
      "indicator": "W",
      "displayOrder": 10,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "6b8d331b-a0dd-4a1f-aafb-40e6a72ab9f5",
        "name": "requestedQuantityExplanation",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "Requested Quantity Explanation",
        "indicator": "W",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      },
      "option": null
    },
    "stockOnHand": {
      "name": "stockOnHand",
      "label": "Stock On Hand",
      "indicator": "E",
      "displayOrder": 8,
      "isDisplayed": true,
      "source": "CALCULATED",
      "columnDefinition": {
        "id": "752cda76-0db5-4b6e-bb79-0f531ab78e2c",
        "name": "stockOnHand",
        "sources": [
          "CALCULATED",
          "USER_INPUT"
        ],
        "options": [],
        "label": "Stock On Hand",
        "indicator": "E",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    },
    "remarks": {
      "name": "remarks",
      "label": "Remarks",
      "indicator": "L",
      "displayOrder": 12,
      "isDisplayed": true,
      "source": "USER_INPUT",
      "columnDefinition": {
        "id": "2ed8c74a-f424-4742-bd14-cfbe67b6e7be",
        "name": "remarks",
        "sources": [
          "USER_INPUT"
        ],
        "options": [],
        "label": "Remarks",
        "indicator": "L",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "TEXT"
      },
      "option": null
    },
    "totalCost": {
      "name": "totalCost",
      "label": "Total Cost",
      "indicator": "Q",
      "displayOrder": 19,
      "isDisplayed": true,
      "source": "CALCULATED",
      "columnDefinition": {
        "id": "e3a0c1fc-c2d5-11e6-af2d-3417eb83144e",
        "name": "pricePerPack",
        "sources": [
          "CALCULATED"
        ],
        "options": [],
        "label": "Total Cost",
        "indicator": "Q",
        "mandatory": false,
        "isDisplayRequired": false,
        "canChangeOrder": true,
        "canBeChangedByUser": false,
        "columnType": "NUMERIC"
      },
      "option": null
    }
  }
}

                                                                                                                            

                                                 

2

 try to skipping/unskipping line item  on requisition with status INITIATED and SUBMITTED

In URL 10.222.17.205//api/requisitions/6167e65c-6f56-4aeb-bff5-fdfe84e01a21/?access_token=f3f194f8-e307-4add-809a-18efb286ffb0

Body:

 {

    "id": "6167e65c-6f56-4aeb-bff5-fdfe84e01a21",

    "createdDate": [

      2016,

      5,

      10,

      15,

      43,

      16

    ],

    "creatorId": null,

    "requisitionLineItems": [

      {

        "id": "8c8026b8-0ae8-4adb-b2ca-bfb0dfb030a5",

        "orderableProduct": {

          "id": "d602d0c6-4052-456c-8ccd-61b4ad77bece",

          "productCode": "C100",

          "name": "Levora",

          "packSize": 84,

          "packRoundingThreshold": 42,

          "roundToZero": false,

          "programs": [

            {

              "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

              "productId": "d602d0c6-4052-456c-8ccd-61b4ad77bece",

              "productCategoryId": "15b8ef1f-a5d6-42dd-95bf-bb68a4504e82",

              "productCategoryDisplayName": "Oral Contraceptive",

              "productCategoryDisplayOrder": 6,

              "active": true,

              "fullSupply": true,

              "displayOrder": 1,

              "maxMonthsOfStock": 1000,

              "dosesPerMonth": 1,

              "pricePerPack": null

            }

          ],

          "dispensable": {

            "dispensingUnit": "10 tab strip"

          }

        },

        "beginningBalance": 50,

        "totalReceivedQuantity": 0,

        "totalLossesAndAdjustments": 0,

        "stockOnHand": null,

        "requestedQuantity": 0,

        "totalConsumedQuantity": 0,

        "requestedQuantityExplanation": null,

        "remarks": null,

        "approvedQuantity": null,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": true,

        "adjustedConsumption": null,

        "stockAdjustments": []

      },

      {

        "id": "552eb0f7-fc57-4916-bb54-0c3c9540420a",

        "orderableProduct": {

          "id": "23819693-0670-4c4b-b400-28e009b86b51",

          "productCode": "C200",

          "name": "Ortho-Novum",

          "packSize": 63,

          "packRoundingThreshold": 31,

          "roundToZero": false,

          "programs": [

            {

              "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

              "productId": "23819693-0670-4c4b-b400-28e009b86b51",

              "productCategoryId": "15b8ef1f-a5d6-42dd-95bf-bb68a4504e82",

              "productCategoryDisplayName": "Oral Contraceptive",

              "productCategoryDisplayOrder": 6,

              "active": true,

              "fullSupply": true,

              "displayOrder": 2,

              "maxMonthsOfStock": 1000,

              "dosesPerMonth": 1,

              "pricePerPack": "15.94"

            }

          ],

          "dispensable": {

            "dispensingUnit": "each"

          }

        },

        "beginningBalance": 0,

        "totalReceivedQuantity": 0,

        "totalLossesAndAdjustments": 0,

        "stockOnHand": null,

        "requestedQuantity": 0,

        "totalConsumedQuantity": 0,

        "requestedQuantityExplanation": null,

        "remarks": null,

        "approvedQuantity": null,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": true,

        "adjustedConsumption": null,

        "stockAdjustments": []

      },

      {

        "id": "bcbd9a7c-6068-40d9-90ab-cb090fd6ed8c",

        "orderableProduct": {

          "id": "bfde33c3-83f1-4feb-a27c-842852f66b71",

          "productCode": "C400",

          "name": "Male Condom",

          "packSize": 1,

          "packRoundingThreshold": 0,

          "roundToZero": false,

          "programs": [

            {

              "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

              "productId": "bfde33c3-83f1-4feb-a27c-842852f66b71",

              "productCategoryId": "3bfe0282-732b-4ce8-b4f9-aa7ffb297758",

              "productCategoryDisplayName": "Barrier Method",

              "productCategoryDisplayOrder": 7,

              "active": true,

              "fullSupply": true,

              "displayOrder": 3,

              "maxMonthsOfStock": 20,

              "dosesPerMonth": 1,

              "pricePerPack": "25.46"

            }

          ],

          "dispensable": {

            "dispensingUnit": "each"

          }

        },

        "beginningBalance": 90,

        "totalReceivedQuantity": 0,

        "totalLossesAndAdjustments": 0,

        "stockOnHand": null,

        "requestedQuantity": 0,

        "totalConsumedQuantity": 0,

        "requestedQuantityExplanation": null,

        "remarks": null,

        "approvedQuantity": null,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": false,

        "adjustedConsumption": null,

        "stockAdjustments": []

      },

      {

        "id": "502eb011-27bc-4f7f-bb1f-6425ae66a5d5",

        "orderableProduct": {

          "id": "880cf2eb-7b68-4450-a037-a0dec1a17987",

          "productCode": "C500",

          "name": "Implanon",

          "packSize": 1,

          "packRoundingThreshold": 0,

          "roundToZero": false,

          "programs": [

            {

              "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

              "productId": "880cf2eb-7b68-4450-a037-a0dec1a17987",

              "productCategoryId": "06606981-67cc-42d1-87ed-21f22fb0ea58",

              "productCategoryDisplayName": "Implantable Contraceptive",

              "productCategoryDisplayOrder": 8,

              "active": true,

              "fullSupply": false,

              "displayOrder": 4,

              "maxMonthsOfStock": 20,

              "dosesPerMonth": 1,

              "pricePerPack": "30.98"

            }

          ],

          "dispensable": {

            "dispensingUnit": "10 tab strip"

          }

        },

        "beginningBalance": 0,

        "totalReceivedQuantity": 0,

        "totalLossesAndAdjustments": 0,

        "stockOnHand": null,

        "requestedQuantity": 0,

        "totalConsumedQuantity": 0,

        "requestedQuantityExplanation": null,

        "remarks": null,

        "approvedQuantity": null,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped":false,

        "adjustedConsumption": null,

        "stockAdjustments": []

      },

      {

        "id": "5b449a32-aedf-4a8b-a9d7-c3b665ad76e2",

        "orderableProduct": {

          "id": "7b9b66e0-f008-4c38-93ec-7a5f4868cca9",

          "productCode": "C600",

          "name": "Levonorgestrel ",

          "packSize": 1,

          "packRoundingThreshold": 0,

          "roundToZero": false,

          "programs": [

            {

              "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

              "productId": "7b9b66e0-f008-4c38-93ec-7a5f4868cca9",

              "productCategoryId": "06606981-67cc-42d1-87ed-21f22fb0ea58",

              "productCategoryDisplayName": "Implantable Contraceptive",

              "productCategoryDisplayOrder": 8,

              "active": true,

              "fullSupply": true,

              "displayOrder": 5,

              "maxMonthsOfStock": 20,

              "dosesPerMonth": 1,

              "pricePerPack": "5.10"

            }

          ],

          "dispensable": {

            "dispensingUnit": "10 tab strip"

          }

        },

        "beginningBalance": 50,

        "totalReceivedQuantity": 0,

        "totalLossesAndAdjustments": 0,

        "stockOnHand": null,

        "requestedQuantity": 0,

        "totalConsumedQuantity": 0,

        "requestedQuantityExplanation": null,

        "remarks": null,

        "approvedQuantity": null,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": true,

        "adjustedConsumption": null,

        "stockAdjustments": []

      },

      {

        "id": "89e46600-aa5a-4cc9-8bfd-67be8e907778",

        "orderableProduct": {

          "id": "7f7b83db-580d-4269-88d2-7f9c80a591a9",

          "productCode": "C300",

          "name": "Depo-Estradiol",

          "packSize": 5,

          "packRoundingThreshold": 2,

          "roundToZero": false,

          "programs": [

            {

              "programId": "66032ea8-b69b-4102-a1eb-844e57143187",

              "productId": "7f7b83db-580d-4269-88d2-7f9c80a591a9",

              "productCategoryId": "74f39ab7-b5ce-4087-a6ea-65799a35e79b",

              "productCategoryDisplayName": "Injectable Hormonal Contraceptive",

              "productCategoryDisplayOrder": 9,

              "active": true,

              "fullSupply": true,

              "displayOrder": 6,

              "maxMonthsOfStock": 20,

              "dosesPerMonth": 1,

              "pricePerPack": "4.34"

            },

            {

              "programId": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

              "productId": "7f7b83db-580d-4269-88d2-7f9c80a591a9",

              "productCategoryId": "74f39ab7-b5ce-4087-a6ea-65799a35e79b",

              "productCategoryDisplayName": "Injectable Hormonal Contraceptive",

              "productCategoryDisplayOrder": 9,

              "active": true,

              "fullSupply": false,

              "displayOrder": 6,

              "maxMonthsOfStock": 20,

              "dosesPerMonth": 1,

              "pricePerPack": "20.77"

            }

          ],

          "dispensable": {

            "dispensingUnit": "each"

          }

        },

        "beginningBalance": 0,

        "totalReceivedQuantity": 0,

        "totalLossesAndAdjustments": 0,

        "stockOnHand": null,

        "requestedQuantity": 0,

        "totalConsumedQuantity": 0,

        "requestedQuantityExplanation": null,

        "remarks": null,

        "approvedQuantity": null,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": false,

        "adjustedConsumption": null,

        "stockAdjustments": []

      }

    ],

    "comments": [],

    "facility": {

      "id": "e6799d64-d10d-4011-b8c2-0e4d4a3f65ce",

      "code": "HC01",

      "name": "Comfort Health Clinic",

      "description": null,

      "active": true,

      "goLiveDate": null,

      "goDownDate": null,

      "comment": null,

      "enabled": true,

      "openLmisAccessible": true,

      "supportedPrograms": [

        {

          "id": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

          "code": "PRG001",

          "name": "Family Planning",

          "description": null,

          "programActive": true,

          "periodsSkippable": true,

          "showNonFullSupplyTab": true,

          "supportActive": true,

          "supportStartDate": null

        },

        {

          "id": "10845cb9-d365-4aaa-badd-b4fa39c6a26a",

          "code": "PRG002",

          "name": "Essential Meds",

          "description": null,

          "programActive": true,

          "periodsSkippable": false,

          "showNonFullSupplyTab": false,

          "supportActive": true,

          "supportStartDate": null

        }

      ],

      "geographicZone": {

        "id": "bf2b810b-cdbf-48b2-b569-149b3cf42387",

        "code": "M-So-Bal-Bal",

        "name": "Balaka",

        "level": {

          "id": "90e35999-a64f-4312-ba8f-bc13a1311c75",

          "code": "City",

          "name": null,

          "levelNumber": 4

        },

        "parent": null

      },

      "operator": {

        "id": "9456c3e9-c4a6-4a28-9e08-47ceb16a4121",

        "code": "moh",

        "name": "Ministry of Health"

      },

      "type": {

        "id": "ac1d268b-ce10-455f-bf87-9c667da8f060",

        "code": "health_center",

        "name": "Health Center",

        "description": null,

        "displayOrder": 1,

        "active": true

      }

    },

    "program": {

      "id": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

      "code": "PRG001",

      "name": "Family Planning",

      "description": null,

      "active": true,

      "periodsSkippable": true,

      "showNonFullSupplyTab": true

    },

    "processingPeriod": {

      "id": "c9287c65-67fa-4958-adb6-52069f2b1379",

      "processingSchedule": {

        "id": "9c15bd6e-3f6b-4b91-b53a-36c199d35eac",

        "code": "SCH001",

        "description": null,

        "modifiedDate": [

          2015,

          12,

          31,

          23,

          59,

          59

        ],

        "name": "Monthly"

      },

      "name": "Apr2017",

      "description": null,

      "startDate": [

        2017,

        4,

        1

      ],

      "endDate": [

        2017,

        4,

        30

      ]

    },

    "status": "INITIATED",

    "emergency": false,

    "supplyingFacility": "e6799d64-d10d-4011-b8c2-0e4d4a3f65ce",

    "supervisoryNode": null,

    "template": "5a268780-fafd-4243-9551-5c7daa824913"

  }

for requisition with INITIATED status: Status 200 OK


for requisition with SUBMITTED status: Status 200 OK

 

3

 Try to change value of skipped to true/false in requisition with status: APPROVE

Body:

 {

    "id": "21d138bc-f2c2-4188-adf3-a3aae381abde",

    "createdDate": [

      2016,

      5,

      30,

      17,

      0,

      56

    ],

    "creatorId": null,

    "requisitionLineItems": [

      {

        "id": "a6d8a940-4172-4fb9-9c5b-2ac238851dab",

        "orderableProduct": {

          "id": "2400e410-b8dd-4954-b1c0-80d8a8e785fc",

          "productCode": "C1",

          "name": "Acetylsalicylic Acid",

          "packSize": 16,

          "packRoundingThreshold": 8,

          "roundToZero": false,

          "programs": [

            {

              "programId": "10845cb9-d365-4aaa-badd-b4fa39c6a26a",

              "productId": "2400e410-b8dd-4954-b1c0-80d8a8e785fc",

              "productCategoryId": "6805dd74-ec00-4697-9a5d-5b78414fcaf6",

              "productCategoryDisplayName": "Antibiotics",

              "productCategoryDisplayOrder": 1,

              "active": true,

              "fullSupply": true,

              "displayOrder": 1,

              "maxMonthsOfStock": 1000,

              "dosesPerMonth": 10,

              "pricePerPack": "3.16"

            }

          ],

          "dispensable": {

            "dispensingUnit": "10 tab strip"

          }

        },

        "beginningBalance": 1000,

        "totalReceivedQuantity": 30000,

        "totalLossesAndAdjustments": null,

        "stockOnHand": 30000,

        "requestedQuantity": 35000,

        "totalConsumedQuantity": 31000,

        "requestedQuantityExplanation": null,

        "remarks": null,

        "approvedQuantity": 0,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": null,

        "adjustedConsumption": null,

        "stockAdjustments": []

      },

      {

        "id": "7bfa442a-88c8-4004-917b-fe0d6c979591",

        "orderableProduct": {

          "id": "103396e1-f5e4-4754-bb7b-1c799097dfea",

          "productCode": "C2",

          "name": "Glibenclamide",

          "packSize": 40,

          "packRoundingThreshold": 20,

          "roundToZero": false,

          "programs": [

            {

              "programId": "10845cb9-d365-4aaa-badd-b4fa39c6a26a",

              "productId": "103396e1-f5e4-4754-bb7b-1c799097dfea",

              "productCategoryId": "6805dd74-ec00-4697-9a5d-5b78414fcaf6",

              "productCategoryDisplayName": "Antibiotics",

              "productCategoryDisplayOrder": 1,

              "active": false,

              "fullSupply": true,

              "displayOrder": 2,

              "maxMonthsOfStock": 10,

              "dosesPerMonth": 3,

              "pricePerPack": "2.13"

            }

          ],

          "dispensable": {

            "dispensingUnit": "each"

          }

        },

        "beginningBalance": 1000,

        "totalReceivedQuantity": 30000,

        "totalLossesAndAdjustments": null,

        "stockOnHand": 30000,

        "requestedQuantity": 35000,

        "totalConsumedQuantity": 31000,

        "requestedQuantityExplanation": null,

        "remarks": null,

        "approvedQuantity": 0,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": true,

        "adjustedConsumption": null,

        "stockAdjustments": []

      }

    ],

    "comments": [],

    "facility": {

      "id": "44a29ccb-ed55-4c26-9eca-7e5759269b25",

      "code": "FAC003",

      "name": "Facility Inactive Enabled",

      "description": null,

      "active": false,

      "goLiveDate": null,

      "goDownDate": null,

      "comment": null,

      "enabled": true,

      "openLmisAccessible": false,

      "supportedPrograms": [],

      "geographicZone": {

        "id": "0bbd69c1-e20f-48f5-aae4-26dcd8aa7602",

        "code": "Mal-So",

        "name": "Southern Region",

        "level": {

          "id": "9b497d87-cdd9-400e-bb04-fae0bf6a9491",

          "code": "Region",

          "name": null,

          "levelNumber": 2

        },

        "parent": null

      },

      "operator": {

        "id": "1074353d-7364-4618-a127-708d7303a231",

        "code": "dwb",

        "name": "Doctors without Borders"

      },

      "type": {

        "id": "663b1d34-cc17-4d60-9619-e553e45aa441",

        "code": "dist_hosp",

        "name": "District Hospital",

        "description": null,

        "displayOrder": 2,

        "active": true

      }

    },

    "program": {

      "id": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

      "code": "PRG001",

      "name": "Family Planning",

      "description": null,

      "active": true,

      "periodsSkippable": true,

      "showNonFullSupplyTab": true

    },

    "processingPeriod": {

      "id": "7880be4f-6582-472a-9ea5-a6baed71e6e5",

      "processingSchedule": {

        "id": "057921bd-1841-4748-8523-dbe5ebb58368",

        "code": "SCH002",

        "description": null,

        "modifiedDate": null,

        "name": "Quarterly"

      },

      "name": "Q4",

      "description": null,

      "startDate": [

        2017,

        10,

        1

      ],

      "endDate": [

        2017,

        12,

        31

      ]

    },

    "status": "APPROVED",

    "emergency": false,

    "supplyingFacility": "e6799d64-d10d-4011-b8c2-0e4d4a3f65ce",

    "supervisoryNode": "fb38bd1c-beeb-4527-8345-900900329c10",

    "template": "5a268780-fafd-4243-9551-5c7daa824913"

  }

Status 500 Internal Server Error


 

the same behavior is with requisition with status SKIPPED and RELEASED

4

  Try to change value of skipped from null to true/false in requisition with status:

AUTHORIZED

    "id": "8c7f1a6d-d139-483a-ad60-4288016f3d23",

    "createdDate": [

      2016,

      4,

      30,

      16,

      21,

      33

    ],

    "creatorId": null,

    "requisitionLineItems": [

      {

        "id": "ac49b686-c74c-4684-a635-d777ee298cd2",

        "orderableProduct": {

          "id": "103396e1-f5e4-4754-bb7b-1c799097dfea",

          "productCode": "C2",

          "name": "Glibenclamide",

          "packSize": 40,

          "packRoundingThreshold": 20,

          "roundToZero": false,

          "programs": [

            {

              "programId": "10845cb9-d365-4aaa-badd-b4fa39c6a26a",

              "productId": "103396e1-f5e4-4754-bb7b-1c799097dfea",

              "productCategoryId": "6805dd74-ec00-4697-9a5d-5b78414fcaf6",

              "productCategoryDisplayName": "Antibiotics",

              "productCategoryDisplayOrder": 1,

              "active": false,

              "fullSupply": true,

              "displayOrder": 2,

              "maxMonthsOfStock": 10,

              "dosesPerMonth": 3,

              "pricePerPack": "2.13"

            }

          ],

          "dispensable": {

            "dispensingUnit": "each"

          }

        },

        "beginningBalance": 50,

        "totalReceivedQuantity": 250,

        "totalLossesAndAdjustments": null,

        "stockOnHand": null,

        "requestedQuantity": 250,

        "totalConsumedQuantity": 300,

        "requestedQuantityExplanation": "Some test explanation",

        "remarks": null,

        "approvedQuantity": null,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": true,

        "adjustedConsumption": null,

        "stockAdjustments": []

      },

      {

        "id": "1d0d970f-c619-40db-ae81-6d8990505502",

        "orderableProduct": {

          "id": "103396e1-f5e4-4754-bb7b-1c799097dfea",

          "productCode": "C2",

          "name": "Glibenclamide",

          "packSize": 40,

          "packRoundingThreshold": 20,

          "roundToZero": false,

          "programs": [

            {

              "programId": "10845cb9-d365-4aaa-badd-b4fa39c6a26a",

              "productId": "103396e1-f5e4-4754-bb7b-1c799097dfea",

              "productCategoryId": "6805dd74-ec00-4697-9a5d-5b78414fcaf6",

              "productCategoryDisplayName": "Antibiotics",

              "productCategoryDisplayOrder": 1,

              "active": false,

              "fullSupply": true,

              "displayOrder": 2,

              "maxMonthsOfStock": 10,

              "dosesPerMonth": 3,

              "pricePerPack": "2.13"

            }

          ],

          "dispensable": {

            "dispensingUnit": "each"

          }

        },

        "beginningBalance": 1000,

        "totalReceivedQuantity": 30000,

        "totalLossesAndAdjustments": null,

        "stockOnHand": null,

        "requestedQuantity": 35000,

        "totalConsumedQuantity": 31000,

        "requestedQuantityExplanation": "Some test explanation",

        "remarks": null,

        "approvedQuantity": null,

        "totalStockoutDays": 0,

        "total": null,

        "packsToShip": null,

        "pricePerPack": null,

        "numberOfNewPatientsAdded": null,

        "totalCost": null,

        "skipped": false,

        "adjustedConsumption": null,

        "stockAdjustments": []

      }

    ],

    "comments": [],

    "facility": {

      "id": "13037147-1769-4735-90a7-b9b310d128b8",

      "code": "DH01",

      "name": "Balaka District Hospital",

      "description": null,

      "active": true,

      "goLiveDate": null,

      "goDownDate": null,

      "comment": null,

      "enabled": true,

      "openLmisAccessible": true,

      "supportedPrograms": [

        {

          "id": "dce17f2e-af3e-40ad-8e00-3496adef44c3",

          "code": "PRG001",

          "name": "Family Planning",

          "description": null,

          "programActive": true,

          "periodsSkippable": true,

          "showNonFullSupplyTab": true,

          "supportActive": true,

          "supportStartDate": null

        },

        {

          "id": "10845cb9-d365-4aaa-badd-b4fa39c6a26a",

          "code": "PRG002",

          "name": "Essential Meds",

          "description": null,

          "programActive": true,

          "periodsSkippable": false,

          "showNonFullSupplyTab": false,

          "supportActive": true,

          "supportStartDate": null

        }

      ],

      "geographicZone": {

        "id": "50293982-602a-4046-ac29-d7f83a8a13e9",

        "code": "M-So-Bal",

        "name": "Balaka District",

        "level": {

          "id": "93c05138-4550-4461-9e8a-79d5f050c223",

          "code": "District",

          "name": null,

          "levelNumber": 3

        },

        "parent": null

      },

      "operator": {

        "id": "9456c3e9-c4a6-4a28-9e08-47ceb16a4121",

        "code": "moh",

        "name": "Ministry of Health"

      },

      "type": {

        "id": "663b1d34-cc17-4d60-9619-e553e45aa441",

        "code": "dist_hosp",

        "name": "District Hospital",

        "description": null,

        "displayOrder": 2,

        "active": true

      }

    },

    "program": {

      "id": "10845cb9-d365-4aaa-badd-b4fa39c6a26a",

      "code": "PRG002",

      "name": "Essential Meds",

      "description": null,

      "active": true,

      "periodsSkippable": false,

      "showNonFullSupplyTab": null

    },

    "processingPeriod": {

      "id": "f419bcd8-ac7a-4b75-8c84-c065ef437938",

      "processingSchedule": {

        "id": "057921bd-1841-4748-8523-dbe5ebb58368",

        "code": "SCH002",

        "description": null,

        "modifiedDate": null,

        "name": "Quarterly"

      },

      "name": "Q1",

      "description": null,

      "startDate": [

        2017,

        1,

        1

      ],

      "endDate": [

        2017,

        3,

        31

      ]

    },

    "status": "AUTHORIZED",

    "emergency": false,

    "supplyingFacility": "ab95f1cf-ae8d-4888-ba9d-05141d3f50de",

    "supervisoryNode": "fb38bd1c-beeb-4527-8345-900900329c10",

    "template": "4b30f6c9-b84b-4f17-8173-852101a5ea29"

  }

Status: 200 Ok

but skipped value didn't change it's still null

 

 

5

 Check if skipped value can be
something beyond boolean 


 "status": 400,

  "error": "Bad Request",

 

 

6

Check if:
  • Skipped line item can be submitted/authorized/approved with empty user input fields
  • Calculations are not performed on skipped line items

 

 

7

  

 

8

                                                 

 

OpenLMIS: the global initiative for powerful LMIS software