Scheduling Future Orders

Overview

The Health Gorilla Lab Network allows you to schedule future orders by using an extension to the RequestGroup FHIR Resource. The orders are created inside Health Gorilla and sent to labs at the scheduled times specified in the request payload.

Creating the RequestGroup-timing Extension

You can use the following attributes to schedule future orders.

Attribute Name

Description

event

Describes a specific date or dates for the order

repeat.count

Sets the number of times the order will repeat

repeat.frequency

Describes how many times the order will be submitted per period. (Should always = 1)

repeat.period

Describes the period of time between orders.

repeat.periodUnit

Describes the units of measure for the time periods (mo = month, wk = week, d = day)

The complete extension is then included inside the RequestGroup.extension field in the RequestGroup request payload.

You can use the above attributes to create custom scheduling. The table below describes examples of common scheduling periods.

Interval

repeat.frequency

repeat.period

repeat.periodUnit

daily

1

1

d

everyOtherDay

1

2

d

everyThirdDay

1

3

d

weekly

1

1

wk

monthly

1

1

mo

quarterly

1

3

mo

semiannual

1

6

mo

Extension examples

One order scheduled for a single day

{
			"url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-timing",
			"valueTiming": {
				"event": [
					"2023-01-28"
				]
			}
		}

Multiple orders scheduled for specific future dates

{
			"url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-timing",
			"valueTiming": {
				"event": [
					"2023-01-28","2023-02-29","2023-03-30"
				]
			}
		}

Order submitted every 3rd day starting on 2022-12-14, repeated 5 times

{
			"url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-timing",
			"valueTiming": {
				"event": ["2022-12-14"],
				"repeat": {
						"count": 5,
						"frequency": 1,
						"period": 3,
						"periodUnit": "d"
			}
		}
}

Order submitted weekly starting on 2022-12-10, repeated 5 times

{
			"url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-timing",
			"valueTiming": {
				"event": ["2022-12-10"],
				"repeat": {
						"count": 5,
						"frequency": 1,
						"period": 1,
						"periodUnit": "wk"
			}
		}
}

Order submitted every other day starting on 2022-12-14, repeated 15 times

{
			"url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-timing",
			"valueTiming": {
				"event": ["2022-12-14"],
				"repeat": {
						"count": 15,
						"frequency": 1,
						"period": 2,
						"periodUnit": "d"
			}
		}
}

Full order example

Order submitted every 6 months, repeated 3 times

{
    "resourceType": "RequestGroup",
    "meta": {
        "profile": [
            "https://healthgorilla.com/fhir/StructureDefinition/hg-order"
        ]
    },
    "contained": [
        {
            "resourceType": "Account",
            "id": "1",
            "meta": {
                "profile": [
                    "https://healthgorilla.com/fhir/StructureDefinition/hg-order-account"
                ]
            },
            "type": {
                "coding": [
                    {
                        "system": "https://www.healthgorilla.com/order-billto",
                        "code": "patient",
                        "display": "Patient"
                    }
                ],
                "text": "Patient"
            },
            "guarantor": [
                {
                    "party": {
                        "reference": "Patient/<PATIENT ID>",
                        "display": "John Doe"
                    }
                }
            ]
        },
    {
      "resourceType": "Practitioner",
      "id": "2",
      "meta": {
        "profile": [
          "http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner"
        ]
      },
      "identifier": [
        {
          "system": "https://www.healthgorilla.com",
          "value": "<PRACTITIONER FHIR ID>"
        },
        {
          "type": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
                "code": "PRN",
                "display": "Passport number"
              }
            ],
            "text": "Passport number"
          },
          "system": "http://hl7.org/fhir/sid/us-npi",
          "value": "<PROVIDER NPI>"
        },
        {
            "type": {
                "coding": [
                    {
                        "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
                        "code": "AN",
                        "display": "Account number"
                    }
                ],
                "text": "Account Number"
            },
            "value": "<LAB ACCOUNT NUMBER>"
        }
      ],
      "name": [
        {
          "use": "official",
          "text": "<PROVIDER FULL NAME>",
          "family": "<PROVIDER LAST NAME>",
          "given": [
            "<PROVIDER FIRST NAME>"
          ]
        }
      ]
    },
        {
            "resourceType": "Organization",
            "id": "organization",
            "identifier": [
                {
                    "system": "https://www.healthgorilla.com",
                    "value": "t-<TENANT ID>"
                },
                {
                    "type": {
                        "coding": [
                            {
                                "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
                                "code": "AN",
                                "display": "Account number"
                            }
                        ],
                        "text": "Account_number"
                    },
                    "value": "<ORGANIZATION'S LAB NUMBER>"
                }
            ],
            "active": "true"
        },
        [
            {
                "resourceType": "ServiceRequest",
                "id": "labtest0",
                "status": "active",
                "intent": "order",
                "note": "test org",
                "priority": "",
                "category": [
                    {
                        "coding": [
                            {
                                "system": "http://snomed.info/sct",
                                "code": "103693007",
                                "display": "Diagnostic procedure"
                            }
                        ]
                    }
                ],
                "code": {
                    "coding": [
                        {
                            "code": "01013",
                            "display": "Cholesterol"
                        }
                    ],
                    "text": "01013-CHOLESTEROL"
                }
            }
        ]
    ],
    "extension": [
        {
            "url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-authorizedBy",
            "valueReference": {
                "reference": "Organization/t-<ORGANIZATION ID>",
                "display": "<ORGANIZATION NAME>"
            }
        },
        {
            "url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-account",
            "valueReference": {
                "reference": "#1"
            }
        },
        {
            "url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-performer",
            "valueReference": {
                "reference": "Organization/f-<LAB FACILITY ID>",
                "display": "<LAB FACILITY NAME>"
            }
        },
        {
            "url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-requester",
            "extension": [
                {
                    "url": "agent",
                    "valueReference": {
                        "reference": "#2"
                    }
                },
                {
                    "url": "onBehalfOf",
                    "valueReference": {
                        "reference": "#3"
                    }
                }
            ]
        },
        {
            "url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-deliveryOptions",
            "extension": [
                {
                    "url": "electronic",
                    "valueBoolean": "true"
                }
            ]
        },
        {
			"url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-timing",
			"valueTiming": {
				"event": [
					"2022-12-20"
				],
				"repeat": {
					"count": 3,
					"frequency": 1,
					"period": 6,
					"periodUnit": "mo"
				}
			}
		}
    ],
    "status": "active",
    "intent": "order",
    "subject": {
        "reference": "Patient/<PATIENT ID>",
        "display": "John Doe"
    },
    "note": [
        {
            "text": "test org an"
        }
    ],
    "author": {
        "reference": "Practitioner/<PRACTITIONER ID>"
    },
    "action": [
        {
            "resource": {
                "reference": "#labtest0",
                "display": "005041 Hemoglobin"
            }
        }
    ]
}

Response to POST

If the POST is successful, the RequestGroup API will respond with a payload consisting of a list of IDs for all created orders.

Response Example

{
    "resourceType": "List",
    "identifier": [
        {
            "value": "d1baac6378249e4edb1f6741"
        },
        {
            "value": "d1baac6382fd5d2b02b2f2a1"
        },
        {
            "value": "d1baac638a1a8c0cbec8b129"
        }
    ]
}

Retrieving a Future Order

You can retrieve future orders using a GET request to this RequestGroup endpoint.

Future orders can be identified by the presence of the requestgroup-timing extension. The extension includes the date the future order will automatically be placed by Health Gorilla.

"extension":[
  			{
            "url": "https://www.healthgorilla.com/fhir/StructureDefinition/requestgroup-timing",
            "valueTiming": {
                "event": [
                    "2023-01-12T12:00:00+00:00"
                ]
            }
        }
  ]