Requisition APIs (Scoped)

Requisitions APIs (Scoped)

Ovation offers two kinds of APIs to create, read and update requisitions. This article describes the APIs that are scoped to a requisition template identifier specified in a URL parameter. Requisition APIs that are not scoped to a specific template are described in the article titled "Requisition APIs (Un-scoped)."

Below are the available scoped APIs for working with requisitions in Ovation.

Using our REST API to retrieve Requisitions

The Get Requisitions request is an HTTP GET call to the following urls:

HTTP Request

POST /v3/project_templates/{projectTemplateID}/requisitions

Required data from Ovation

The following data must be provided by Ovation in order to call the API.  Different values must be configured for staging and production

  • authorization token
  • project_template_id (used in URL)

Query Parameters

key

required

description

projectTemplateID yes This is embedded in the URL as indicated above. The value can be retrieved from the URLs shown in the user interface. (It's the 789 in this example: https://lab-staging.ovation.io/orgs/123/projects/456/requisition-settings/789/template-information)
startDate yes Starting date time in organization timezone. If no time is supplied will assume 00:00:00
ex: 2020-08-22T08:00:00.000Z or 2020-08-22
endDate yes Ending date time in organization timezone. If no time is supplied will assume 00:00:00
ex: 2020-08-22T23:59:59.000Z or 2020-08-22
accessionStatus optional
reportingStatus optional
processingStatus optional
billingStatus optional
overallStatus optional
page optional Page number being requested. Defaults to page 1 if not supplied.
perPage optional Number of documents to return per page. Maximum of 5000 and defaults to 5000 if not supplied

Example of request:

/api/v3/project_templates/123/requisitions?reportingStatus=signed,approved&startDate=01-01-2021&endDate=01-02-2021&page=1


Sample GET Requisition Response

Response will be paginated to 5000 requisitions

{
  "requisitions": [
    {
      "identifier": "string",
      "requisition_template_id": 0,
      "status": "processing",
      "accession_status": "incomplete",
      "processing_status": "unprocessed",
      "reporting_status": "not-started",
      "billing_status": "not-submitted",
      "createdAt": "date string",
      "updatedAt": "date string"
    },
    {
      "identifier": "string",
      "requisition_template_id": 0,
      "status": "processing",
      "accession_status": "incomplete",
      "processing_status": "unprocessed",
      "reporting_status": "not-started",
      "billing_status": "not-submitted",
      "createdAt": "date string",
      "updatedAt": "date string"
    }
  ],
    "meta": {
        "currentPage": 1,
        "perPage": 5000,
        "totalEntries": 2
    }
}

Requisition Status Values in Response

Key

Type

Description

status string
  1. received
  2. held
  3. processing
  4. complete
  5. delivered
  6. deliver_modified
  7. canceled
  8. draft
accession_status string
  1. incomplete
  2. complete
  3. signed
processing_status string
  1. held
  2. unprocessed
  3. processing
  4. complete
reporting_status string
  1. sent-for-generation
  2. generation-failed
  3. generated
  4. approved
  5. signed
  6. downloaded
  7. rejected
billing_status string
  1. not-submitted
  2. ready-to-submit
  3. submitted
  4. submit-failed
  5. reimbursed
  6. rejected
  7. error
  8. denial


Using our REST API to retrieve a Requisition

The Get Requisition request is an HTTP GET call to the following urls:

Required data from Ovation

The following data must be provided by Ovation in order to call the API. Different values must be configured for staging and production.

  • authorization token
  • project_template_id (used in URL)

Additional URL parameters:

  • identifier - This is the identifier specified when creating the requisition.

Example of request

curl -H 'Accept: application/json' -H "Authorization: Bearer ${TOKEN}" https://lab-services.ovation.io/api/v3/project_templates/123/requisitions/S123
Sample GET Requisition Response

{
  "requisition": {
    "identifier": "string",
    "requestedTests": [{
      "panelCode": "string",
      "tests": [{
        "testCode": "string"
      }]
    }],
    "diagnosis": [
      "string"
    ],
    "medications": [{
      "rxcui": "string",
      "name": "string"
    }],
    "sampleType": "string",
    "sampleCollectionDate": "string",
    "status": "processing",
    "accession_status": "incomplete",
    "processing_status": "unprocessed",
    "reporting_status": "not-started",
    "billing_status": "not-submitted",
    "orderNotes": "string",
    "customAttributes": {},
    "legacyMedications": [],
    "test": "boolean",
    "projectName": "string",
    "projectTemplateId": "integer",
    "template": "string",
    "enteredBy": {
      "name": "string",
      "email": "string"
    },
    "heldReasons": [],
    "patient": {
      "identifier": "string",
      "mrn": "string",
      "lastName": "string",
      "middleName": "string",
      "firstName": "string",
      "streetAddress": "string",
      "streetAddressLine2": "string",
      "city": "string",
      "state": "string",
      "zipCode": "string",
      "dateOfBirth": "string",
      "phoneNumber": "string",
      "email": "string",
      "gender": "M",
      "height": "string",
      "weight": "integer",
      "race": "string",
      "ethnicity": "string",
      "custom_attributes": {
        "key": "string",
        "value": {}
      }
    },
    "providerAccount": {
      "name": "string",
      "accountNumber": "string"
    },
    "physician": {
      "npi": "string"
    },
    "billingInformation": {
      "billTo": "Medicare",
      "memberId": "string",
      "name": "string",
      "email": "string",
      "phoneNumber": "string",
      "state": "string",
      "city": "string",
      "street": "string",
      "zip": "string",
      "insuranceInformations": [{
        "subscriberNumber": "string",
        "idNumber": "string",
        "groupNumber": "string",
        "nameOfPersonInsured": "string",
        "relationshipToInsured": "string",
        "otherRelationshipToInsured": "string",
        "dobOfInsured": "string",
        "insuranceType": "Primary",
        "insuranceProviderName": "string",
        "reimbursementEligibilityVerified": true,
        "preAuthorization": {
          "authorizationNumber": "string",
          "numTests": 0,
          "effectiveStartDate": "string",
          "effectiveEndDate": "string",
          "contactName": "string",
          "contactPhoneNumber": "string"
        }
      }]
    },
    "samples": [{
      "identifier": "string",
      "containerType": "Tube",
      "containerBarcodeLabel": "string",
      "position": "string",
      "label": "string",
      "dateReceived": "string",
      "collectionDateTime": "string",
      "custom_attributes": {
        "key": "string",
        "value": {}
      }
    }],
    "reports": [{
      "status": "sent-for-generation",
      "result": "Positive",
      "documentName": "string",
      "sampleIdentifier": "string",
      "displayName": "string",
      "downloadLink": "string",
      "createdDate": "string",
      "sampleTatHours": "integer",
      "signedBy": [{
        "name": "string",
        "email": "string",
        "signedDateTime": "string"
      }],
      "workflowId": "integer",
      "workflowName": "string"
    }]
  }
}

Requisition Status Values in Response

Key Type Description
status string
  1. received
  2. held
  3. processing
  4. complete
  5. delivered
  6. deliver_modified
  7. canceled
  8. draft
accession_status string
  1. incomplete
  2. complete
  3. signed
processing_status string
  1. held
  2. unprocessed
  3. processing
  4. complete
reporting_status string
  1. sent-for-generation
  2. generation-failed
  3. generated
  4. approved
  5. signed
  6. downloaded
  7. rejected
billing_status string
  1. not-submitted
  2. ready-to-submit
  3. submitted
  4. submit-failed
  5. reimbursed
  6. rejected
  7. error
  8. denial

Report Data in Response

Key Type Description
reports array List of Reports available to the requisition
reports[index][status] string
  1. sent-for-generation
  2. generation-failed
  3. generated
  4. approved
  5. signed
  6. downloaded
  7. rejected
reports[index][result] string result of report if available (positive, negative, etc.)
reports[index][documentName] string PDF Document Name
reports[index][displayName] string Display name for report
reports[index][downloadLink] string The path to PDF Report in S3
reports[index][sampleIdentifier] string Sample Identifier
reports[index][createdDate] string Date report was created
reports[index][sampleTatHours] integer Hours it took for sample to be processed
reports[index][signedBy] array Who signed report 
reports[index][workflowId] integer ID for workflow report was generated from
reports[index][workflowName] string Name of workflow report was generated from


Using our REST API to create a Requisition

The Create Requisition request is an HTTP POST call to the following urls:

Required data from Ovation

The following data must be provided by Ovation in order to call the API.  Different values must be configured for staging and production

  • authorization token
  • project_template_id (used in URL)

Create Requisition Payload

The body of the request should contain the following JSON:

{
  "requisition": {
    "identifier": "REW-101",
    "requestedTests": [
      {
        "panelCode": "P3",
        "tests": [
          {
            "testCode": "pck01"
          },
          {
            "testCode": "pck02"
          }
        ]
      },
      {
        "panelCode": "P4",
        "tests": [
          {
            "testCode": "pck01"
          },
          {
            "testCode": "pck02"
          }
        ]
      }
    ],
    "diagnosis": [
      "H34.0",
      "A00.0"
    ],
    "medications": [
      {
        "name": "Ibuprofen",
        "rxcui": "5640"
      },
      {
        "name": "Tylenol",
        "rxcui": "202433"
      },
      {
        "name": "Benadryl Allergy plus congestion",
        "rxcui": "1926216"
      }
    ],
    "sampleType": "Nasopharyngeal Swab",
    "customAttributes": {
      "req-key": "some value",
      "req-key2": [
        "val1",
        "val2"
      ]
    },
    "patient": {
      "identifier": "string",
      "lastName": "string",
      "firstName": "string",
      "streetAddress": "string",
      "streetAddressLine2": "string",
      "city": "string",
      "state": "string",
      "zipCode": "string",
      "dateOfBirth": "date",
      "phoneNumber": "string",
      "email": "string",
      "gender": "M",
      "height": "string",
      "weight": "string",
      "ethnicity": "string",
      "race": "string",
      "customAttributes": {
        "patient-key": "some value",
        "patient-key2": "some other value"
      }
    },
    "providerAccount": {
      "name": "Harris Physicians Office",
      "accountNumber": "2w323"
    },
    "physician": {
      "npi": "2323209291"
    },
    "billingInformation": {
      "billTo": "string",
      "memberId": "string",
      "name": "string",
      "email": "string",
      "phoneNumber": "string",
      "state": "string",
      "city": "string",
      "street": "string",
      "zip": "string",
      "insuranceInformations": [
        {
          "insuranceProviderName": "Aetna health of California",
          "subscriberNumber": "2323223",
          "idNumber": "33232",
          "groupNumber": "2222",
          "nameOfPersonInsured": "Jane Smith",
          "relationshipToInsured": "Self",
          "dobOfInsured": "2010-02-09",
          "insuranceType": "Primary",
          "preAuthorization": {
            "authorizationNumber": "343432343",
            "numTests": 1,
            "effectiveStartDate": "2019-01-01",
            "effectiveEndDate": "2019-01-01",
            "contactName": "David Smith",
            "contactPhoneNumber": "232-232-2222"
          }
        }
      ]
    },
    "samples": [
      {
        "identifier": "REW-101_A",
        "group": "Group 1",
        "label": "Swab",
        "containerType": "Tube",
        "containerBarcodeLabel": "brc-0233-3233",
        "receivedDateTime": "2019-04-15T15:53:00+05:00",
        "collectionDateTime": "2019-04-14T12:53:00+05:00",
        "customAttributes": {
          "sample-key": "some value",
          "sample-key2": "some other value"
        }
      }
    ],
    "signedConsent": true
  },
  "markAsSigned": true
}
Field Name Required Description
identifier Yes The identifier to use for the requisition.  This identifier must be unique. 
This is the ID that will be used to retrieve details of this requisition vie the GET Requisition API request
requestedTests Yes Defines the panels and tests that should be requested. Only panelCode needs to be specified if all tests in panels will be selected.
Need to ensure panel codes and individual test codes map to exactly as they are defined in Ovation
diagnosis No Array of ICD-10 codes
medications No Array of hashes containing RXNorm medication codes (rxcui) and name.  Indicates which medications the patient is taking.
e.g.  [{"name": "Ibuprofen", 'rxcui': "5640"}, {"name": "Tylenol", 'rxcui': "202433"} 
customAttributes No Hash with multiple keys with their values.
User can define their own custom keys.
Some keys are already defined on the template and some of them are required (depending on the configuration). In template.requisition.fields template are defined some fields, some of them have their keys starting with 'customAttributes.' (for example 'customAttributes.allergies') and ends in a word key (allergies), so user should include those keys in the customAttributes field ("customAttributes": { "allergies": [ ] })
patient
     " identifier": “string”,
     " lastName": “string”,
     " firstName": “string”,
     " streetAddress": “string”,
     " city": “string”,
     " state": “string”,
     " zipCode": “string”,
     " dateOfBirth": “date”,
     "phoneNumber": “string”,
     "email": “string”,
     "gender": “M” or “F” or “U”,
     "height": “string”,
     "weight": “integer”,
     "ethnicity": "hispanic" or "nothispanic"  or "undisclosed",
"race": "white" or "black" or "asian" or "islander" or "native" or "undisclosed",
"customAttributes": {'key': ‘value’ }
Yes Details of patient.  Required patient attributes are bolded.
providerAccount:
      " name": "string",
      " accountNumber": "string"
Yes Details of the provider account (e.g. Physician's practice) that is the source of the requisition.  Required values are bolded.
physician
      " npi": "string"
Yes NPI of the ordering physician
" billingInformation": {
      " billTo": “string”, [valid values: "Bill Insurance", “Patient Pay”, “Facility Pay”, “Other”]
      "memberId": "string",
      "name": "string",
      "email": "string",
      "phoneNumber": "string",
      "state": "string",
      "city": "string",
      "street": "string",
      "zip": "string",
       " insuranceInformations": [{
           " insuranceProviderName": (From pre-defined Insurance Provider list),
            " subscriberNumber": "string",
             "idNumber": "string",
             "groupNumber": "string",
             "nameOfPersonInsured": "string",
             "relationshipToInsured": "string" [Valid values: "Self", "Spouse", "Life partner","Child","Ward","Handicapped Dependent","Sponsored Dependent","Dependent of a minor Dependent","Other"]
             "dobOfInsured": "date",
             " insuranceType": "Primary" or “Secondary”,
             “preAuthorization”:{
                 “authorizationNumber”: string ,
                 “numTests”: integer,
                 “effectiveStartDate”: date,
                 “effectiveEndDate”: date,
                 “contactName”: string,
                 “contactPhoneNumber”: string
          } }
     ]
    }
No Required If reimbursement integration is enabled in Ovation.
Fields inside insuranceInformations section are only required on Bill Insurance
The following fields are only required for Patient Pay or Facility Pay:
  • "memberId"
  • "name"
  • "email"
  • "phoneNumber"
  • "street"
  • "city"
  • "state"
  • "zip"
samples
  " identifier": "string",
  " label": "string", "Swab"
  “ group”: “string”
  "containerType": "string" ["Tube" or "96Plate"], 
  "containerBarcodeLabel": "brc-0233-3233",
  "receivedDateTime": "2019-04-15T15:53:00+05:00",
  "collectionDateTime": "2019-04-14T12:53:00+05:00",
  "customAttributes": {“key”: “value”}
Yes Array of samples that are being sent.  
Identifier is required.  If the samples are already barcoded, then the containerType and containerBarcodeLabel are required.
label is required
group is required
receivedDateTime should only be provided by the lab itself, if the sample has been already been received by the lab.  Should be in ISO 8601 format.
collectionDateTime.  The datetime that the sample was collected.  Should be in ISO 8601 format. 
signedConsent deprecated No Use hasSecondaryUseNotification instead.

Setting signedConsent to true is the same as setting hasSecondaryUseNotification to 1; setting signedConsent to false is the same as setting hasSecondaryUseNotification to 0.
hasMedicalConsent No Indicates if medical consent has been given for the sample(s) on the requisition.

0: medical consent has been given
1: medical consent has not been given
hasSecondaryUseNotification No Indicates if patient has been notified of secondary use.

0: patient not notified
1: patient notified
2: patient notified but has opted out of one or more entitlements (in which case, you must also provide secondaryUseEntitlements as described below)
secondaryUseEntitlements No In the case where hasSecondaryUseNotification is set to 2, this field represents the list of entitlements opted into, each separated by the “|” character, among these possible values:

can-use-specimen
can-use-clinical-data
can-recontact-patient

For example: can-use-specimen|can-use-clinical-data|can-recontact-patient
“markAsSigned”: true or false Optional If set as true and all required fields for the requisition have been sent, then the accession status will be set to “signed”.
     

Create Requisition Response

The Create Requisition API call can return the following possible responses:

Response Code Response Body
201 Indicating the requisition was successfully created The requisition will return the original requisition data entered
{"requisition":{"id":26355,"identifier":"COVID-107", ....
401 Indicating an authentication error  
422 Validation error, indicating an error with the request contents Will return the validation errors found. e.g.
{"errors":{"samples.sample_states.container_id":["has already been taken for that position"]}}
404 If specified project template id is not found e.g {"errors":"Requested resource not found","status":"not_found"}


Example
curl --location --request POST 'https://lab-services-staging.ovation.io/api/v3/project_templates/12345/requisitions' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9....' \
--data-raw '{
  "requisition": {
    "identifier": "REW-101",
    "requestedTests": [
      {
        "panelCode": "P3",
        "tests": [
          {
            "testCode": "pck01"
          },
          {
            "testCode": "pck02"
          }
        ]
      },
      {
        "panelCode": "P4",
        "tests": [
          {
            "testCode": "pck01"
          },
          {
            "testCode": "pck02"
          }
        ]
      }
    ],
    "diagnosis": [
      "H34.0",
      "A00.0"
    ],
    "medications": [
      {
        "name": "Ibuprofen",
        "rxcui": "5640"
      },
      {
        "name": "Tylenol",
        "rxcui": "202433"
      },
      {
        "name": "Benadryl Allergy plus congestion",
        "rxcui": "1926216"
      }
    ],
    "sampleType": "Nasopharyngeal Swab",
    "customAttributes": {
      "req-key": "some value",
      "req-key2": [
        "val1",
        "val2"
      ]
    },
    "signedConsent": true,
    "patient": {
      "identifier": "string",
      "lastName": "string",
      "firstName": "string",
      "streetAddress": "string",
      "streetAddressLine2": "string",
      "city": "string",
      "state": "string",
      "zipCode": "string",
      "dateOfBirth": "date",
      "phoneNumber": "string",
      "email": "string",
      "gender": "M",
      "height": "string",
      "weight": "string",
      "ethnicity": "string",
      "race": "string",
      "customAttributes": {
        "patient-key": "some value",
        "patient-key2": "some other value"
      }
    },
    "providerAccount": {
      "name": "Harris Physicians Office",
      "accountNumber": "2w323"
    },
    "physician": {
      "npi": "2323209291"
    },
    "billingInformation": {
      "billTo": "string",
      "insuranceInformations": [
        {
          "insuranceProviderName": "Aetna health of California",
          "subscriberNumber": "2323223",
          "idNumber": "33232",
          "groupNumber": "2222",
          "nameOfPersonInsured": "Jane Smith",
          "relationshipToInsured": "Self",
          "dobOfInsured": "2010-02-09",
          "insuranceType": "Primary",
          "preAuthorization": {
            "authorizationNumber": "343432343",
            "numTests": 1,
            "effectiveStartDate": "2019-01-01",
            "effectiveEndDate": "2019-01-01",
            "contactName": "David Smith",
            "contactPhoneNumber": "232-232-2222"
          }
        }
      ]
    },
    "samples": [
      {
        "identifier": "REW-101_A",
        "group": "Group 1",
        "label": "Swab",
        "containerType": "Tube",
        "containerBarcodeLabel": "brc-0233-3233",
        "receivedDateTime": "2019-04-15T15:53:00+05:00",
        "collectionDateTime": "2019-04-14T12:53:00+05:00",
        "customAttributes": {
          "sample-key": "some value",
          "sample-key2": "some other value"
        }
      }
    ],
    "markAsSigned": true
  }
}


Using our REST API to Update a Requisition

The Update Requisition request is an HTTP PUT call to the following urls:

Required data from Ovation

The following data must be provided by Ovation in order to call the API.  Different values must be configured for staging and production

  • authorization token
  • project_template_id (used in URL)

Update Requisition Payload

Before updating it is recommended to perform a GET request on the requisition to get the proper payload.

Remove any items that aren't list in table below. Do not remove any " id" fields.

The body of the request should contain the following JSON:

{
    "requisition": {
        "id": 1,
        "requestedTests": [
            {
                "panelCode": "P1",
                "tests": [
                    {
                        "testCode": "T1"
                    }
                ]
            }
        ],
        "diagnosis": [
            "A00.0",
            "A01.01"
        ],
        "medications": [],
        "sampleType": "Swab",
        "sampleCollectionDate": "2021-07-09",
        "customAttributes": {},
        "providerAccount": {
            "id": 1,
            "name": "Validation",
            "accountNumber": "",
            "streetAddress": null,
            "streetAddressCity": null,
            "streetAddressState": null,
            "streetAddressZipCode": null,
            "streetAddressCountry": "United States",
            "mailingAddress": null,
            "mailingAddressCity": null,
            "mailingAddressState": null,
            "mailingAddressZipCode": null,
            "primaryName": null,
            "primaryEmail": null,
            "primaryPhoneNumber": null,
            "faxNumber": null,
            "externalIdentifier": null
        },
        "provider": {
            "npi": "0000000000"
        },
        "samples": [
            {
                "id": 1,
                "collectionDateTime": "2021-07-09T15:00:00.000Z",
                "receivedDateTime": "2021-07-09T18:33:00.000Z",
                "containerBarcodeLabel": "B00001",
                "containerType": "Tube",
                "position": "A01",
                "customAttributes": {}
            }
        ],
        "patient": {
            "identifier": "string",
            "lastName": "string",
            "firstName": "string",
            "streetAddress": "string",
            "streetAddressLine2": "string",
            "city": "string",
            "state": "string",
            "zipCode": "string",
            "dateOfBirth": "date",
            "phoneNumber": "string",
            "email": "string",
            "gender": "M",
            "height": "string",
            "weight": "string",
            "ethnicity": "string",
            "race": "string",
            "customAttributes": {
                "patient-key": "some value",
                "patient-key2": "some other value"
            }
        },
        "billingInformation": {
            "billTo": null,
            "memberId": null,
            "name": null,
            "email": null,
            "phoneNumber": null,
            "dateOfInjury": null,
            "street": null,
            "city": null,
            "state": null,
            "zip": null,
            "insuranceInformations": []
        }
    }
}
Field Name Required Description
id Yes
requestedTests Yes Defines the panels and tests that should be requested. Only panelCode needs to be specified if all tests in panels will be selected.
Need to ensure panel codes and individual test codes map to exactly as they are defined in Ovation
diagnosis No Array of ICD-10 codes
medications No Array of hashes containing RXNorm medication codes (rxcui) and name.  Indicates which medications the patient is taking.
e.g.  [{"name": "Ibuprofen", 'rxcui': "5640"}, {"name": "Tylenol", 'rxcui': "202433"} 
customAttributes No Hash with multiple keys with their values.
User can define their own custom keys.
Some keys are already defined on the template and some of them are required (depending on the configuration). In template.requisition.fields template are defined some fields, some of them have their keys starting with 'customAttributes.' (for example 'customAttributes.allergies') and ends in a word key (allergies), so user should include those keys in the customAttributes field ("customAttributes": { "allergies": [ ] })
patient: 
     " identifier": “string”,
     " lastName": “string”,
     " firstName": “string”,
     " streetAddress": “string”,
     " city": “string”,
     " state": “string”,
     " zipCode": “string”,
     " dateOfBirth": “date”,
     "phoneNumber": “string”,
     "email": “string”,
     "gender": “M” or “F” or “U”,
     "height": “string”,
     "weight": “integer”,
     "ethnicity": "hispanic" or "nothispanic"  or "undisclosed",
"race": "white" or "black" or "asian" or "islander" or "native" or "undisclosed",
"customAttributes": {'key': ‘value’ }
Yes Details of patient.  Required patient attributes are bolded.
providerAccount:
     "id": "integer",
      " name": "string",
      " accountNumber": "string"
Yes Details of the provider account (e.g. Physician's practice) that is the source of the requisition.  Required values are bolded.
provider: 
      " npi": "string"
Yes NPI of the ordering physician
"billingInformation": {
      "billTo": “string”, [valid values: "Bill Insurance", “Patient Pay”, “Facility Pay”, “Other”]
      "memberId": "string",
      "name": "string",
      "email": "string",
      "phoneNumber": "string",
      "state": "string",
      "city": "string",
      "street": "string",
      "zip": "string",
       "insuranceInformations": [{
           "insuranceProviderName": (From pre-defined Insurance Provider list),
            "subscriberNumber": "string",
             "idNumber": "string",
             "groupNumber": "string",
             "nameOfPersonInsured": "string",
             "relationshipToInsured": "string" [Valid values: "Self", "Spouse", "Life partner","Child","Ward","Handicapped Dependent","Sponsored Dependent","Dependent of a minor Dependent","Other"]
             "dobOfInsured": "date",
             "insuranceType": "Primary" or “Secondary”,
             “preAuthorization”:{
                 “authorizationNumber”: string ,
                 “numTests”: integer,
                 “effectiveStartDate”: date,
                 “effectiveEndDate”: date,
                 “contactName”: string,
                 “contactPhoneNumber”: string
          } }
     ]
    }
No Required If reimbursement integration is enabled in Ovation.
Fields inside  insuranceInformations section are only required on Bill Insurance
The following fields are only required for  Patient Pay or Facility Pay:
  • "memberId"
  • "name"
  • "email"
  • "phoneNumber"
  • "street"
  • "city"
  • "state"
  • "zip"
samples
  "id": "integer",
  " label": "string", "Swab"
  “ group”: “string”
  "containerType": "string" ["Tube" or "96Plate"], 
  "containerBarcodeLabel": "brc-0233-3233",
  "receivedDateTime": "2019-04-15T15:53:00+05:00",
  "collectionDateTime": "2019-04-14T12:53:00+05:00",
  "customAttributes": {“key”: “value”}
Yes Array of samples that are being sent.  
Identifier is required.  If the samples are already barcoded, then the containerType and containerBarcodeLabel are required.
label is required
group is required
receivedDateTime should only be provided by the lab itself, if the sample has been already been received by the lab.  Should be in ISO 8601 format.
collectionDateTime.  The datetime that the sample was collected.  Should be in ISO 8601 format. 
Samples can't be updated if it's already in a workflow.
“markAsSigned”: true or false Optional If set as true and all required fields for the requisition have been sent, then the accession status will be set to “signed”.
     

Update Requisition Response

The Update Requisition API call can return the following possible responses:

Response Code Response Body
200 “Indicating the requisition was successfully updated” The requisition will return the original requisition data entered
{"requisition":{"id":26355,"identifier":"COVID-107", ....
401 “Indicating an authentication error”  
406 "Not acceptable" "Update may not change sample date received"
"You don't have the right permissions to change a requisition identifier, sample identifier or container ID"
"Missing organization time zone"
422 “Validation error, indicating an error with the request contents” Will return the validation errors found. e.g.
{"errors":{"samples.sample_states.container_id":["has already been taken for that position"]}}
404 “If specified project template id is not found” e.g {"errors":"Requested resource not found","status":"not_found"}

Using our REST API to retrieve Requisition Schema

The Get Requisition Schema request is an HTTP GET call to the following urls:

Required data from Ovation

The following data must be provided by Ovation in order to call the API.  Different values must be configured for staging and production

  • authorization token
  • project_template_id (used in URL)

Description

This API with return a JSON schema for creating a requisition. The fields marked as required are required to complete a requisition (they are not requirements for a successful API call). These fields are determined from how the project template is configured in the LIMS.

Additionally any configure custom attributes will be present with their key.

The following fields will include valid options if configured:

  • panelCode
  • group
  • billTo
  • label
  • insuranceType
  • containerType
  • gender
  • race
  • ethnicity
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.