FHIR Procedure

Base Path: /fhir/4.0/Procedure

Version: 1.2.0

The FHIR Procedure API allows you to look up details about the procedures that were performed on a patient. The endpoint provides the ability to:

  • Retrieve all Procedure resources that match a search criteria for a given patient.
  • Retrieve a specific Procedure resource based on its resource ID.
  • Create a Procedure resource for a patient.
  • Update a Procedure resource based on its resource id.
  • Supports exporting resources via FHIR Bulk.

The data returned in this API is subject to privacy and permissions settings, refer to the Working with Privacy guide to learn how this might affect your application.

The Procedure API aggregates data from multiple sources, to learn about working with aggregated APIs refer to the Aggregated APIs guide in the Knowledge Hub.

This API is based on the R4 release of the FHIR standard, for more information on this API refer to the official FHIR documentation.


Methods

Retrieve Procedures for a Patient

GET /fhir/4.0/Procedure/

This method returns all procedures for the patient identified either by patient.identifier or by patient. Optionally filtering by the procedure's code, date, the identifier of the person who performed the procedure and the identifier of the encounter associated with the procedure.


Parameters

Name

Type

Data Type

Description


Name:

patient.identifier

required

Type:

query

Data Type:

string

Description:

The patient identifier consists of patient identifier namespace (also known as the system) and identifier, separated using a URL encoded | character i.e. %7c.

Note: You must either define the patient.identifier or patient, not both.


Sample Value: ORION|AAA-00315-7



Name:

patient

required

Type:

query

Data Type:

string

Description:

The patient resource id.

Note: You must either define the patient.identifier or patient, not both.


Sample Value: IFAUCQJNGAYTENBNHBAE6USJJ5HA



Name:

date

optional

Type:

query

Data Type:

array

Description:

Filters the procedures to those with a performed date on, before, or after a specific date, date-time, or date range. The supported prefixes are gt, ge, lt, le and eq. If no prefix is used, exact date or date-time matching is implied. Dates must be formatted according to ISO 8601 either as a date only (e.g. 1997-07-16) or as a date-time including the timezone (e.g. 1997-07-16T19:20:30+13:00). Ensure that special characters such as + are URL encoded i.e. %2B.


Sample Value: gt2013-01-01T01:00:00%2B13:00



Name:

code

optional

Type:

query

Data Type:

string

Description:

Filters the procedures to those that match the specified code. The code value consists of a coding system and a code separated using a URL encoded | character i.e. %7c.


Sample Value: urn:text:HCPCS|S9470



Name:

performer.actor.identifier

optional

Type:

query

Data Type:

string

Description:

Filters the procedures to those that match the specified performer identifier. The identifier consists of identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c.


Sample Value: http://hostpital1/SurgeonAssigningAuthorityUniversalID1|surgeonIdNumber1



Name:

encounter.identifier

optional

Type:

query

Data Type:

string

Description:

Filters the procedures to those that have an associated encounter with the specified identifier. The identifier consists of identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c.


Sample Value: CH-ENC|65768-0114.9



Name:

-include-sources

optional

Type:

query

Data Type:

array

Description:

The -include-sources parameter defines which sources should be queried for the results.

Note: Either -include-sources or -exclude-sources parameters can be specified, not both. If -include-sources is specified, ONLY the specified sources will be searched. Note that the sources specified should be enabled.


Sample Value: Orion%20Health%E2%84%A2%20R4%20HL7V2%20Procedures



Name:

-exclude-sources

optional

Type:

query

Data Type:

array

Description:

The -exclude-sources parameter defines which sources should NOT be queried for the results.

Note: Either -include-sources or -exclude-sources parameter can be specified, not both. If -exclude-sources is specified, the specified sources will NOT be searched. Note that the sources specified should be enabled.


Sample Value: Orion%20Health%E2%84%A2%20R4%20HL7V2%20Procedures



Name:

_format description: | Media type of the response. It takes precedence over the Accept header. Possible values are `json` and `xml`. The default value is `xml`. type: string required: false in: query x-sample: json

optional

Type:

Data Type:

Description:




Name:

Accept description: | Media type of the response. Possible values are `application/json` and `application/xml`. The default value is `application/xml`. type: string required: false in: header x-sample: application/xml

optional

Type:

Data Type:

Description:



Responses


application/json+fhir

200

Returns a FHIR Bundle containing 0..* OperationOutcome resources and 0..* Procedure resources.


application/json+fhir

400

This response code is returned when the query is invalid e.g. an invalid parameter or a partial token in the search.

Sample Requests

Retrieve specific Procedures for a Patient identified by patient identifier
curl -X GET "https://developer-solution/fhir/4.0/Procedure/?patient.identifier=ORION%7CAAA-00315-7" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8='

Create a procedure for a Patient

POST /fhir/4.0/Procedure/

This method creates a procedure for a patient in the system. Possible values are application/json and application/xml.

Note: The create API requires to have s data source available to store the Procedures. Currently storage solution is not part of the offering.


Parameters

Name

Type

Data Type

Description


Name:

Content-Type

required

Type:

header

Data Type:

string

Description:

Specifies how to encode the form data.


Sample Value: application/json



Name:

Procedure

required

Type:

body

Data Type:

Description:

Contains the fields of the procedure resource to be created. The following fields should be present:

  • Procedure.subject
  • Procedure.status
  • Procedure.code

Note: If the Procedure resource ID is present, it will be ignored. The patient subject on whom the procedure was performed should be known to the system.

Sample Payload:

{
  "resourceType": "Procedure",
  "status": "completed",
  "code": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": 359615001,
        "display": "Partial lobectomy of lung"
      }
    ]
  },
  "subject": {
    "reference": "Patient/GYZGCNDDMRSWMQCPJBBVA",
    "display": "P. van de Heuvel"
  },
  "encounter": {
    "reference": "Encounter/f002"
  },
  "performedPeriod": {
    "start": "2013-03-08T08:00:10.000Z",
    "end": "2013-03-08T08:30:10.000Z"
  },
  "outcome": {
    "text": "improved blood circulation"
  },
  "followUp": {
    "text": "described in care plan"
  },
  "reasonCode": {
    "text": "Malignant tumr of lung"
  },
  "bodySite": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": 39607008,
        "display": "Lung structure"
      }
    ]
  }
}



Responses


application/json+fhir

201

This response code is returned when a new procedure is created successfully. The Procedure FHIR Id is in the header.


application/json+fhir

400

This response code is returned when the query is invalid e.g. an invalid parameter or a partial token in the search, required fields are missing from the Procedure or Procedure subject reference is unknown.


application/json+fhir

401

This response code is returned when the user is not authorized to perform the operation. This could be due to invalid login or not having enough access rights to perform the operation. In order to create or update procedures the user should either be a member of the "FHIR Procedure Administrator" or the "FHIR Write Administrator" Group.

Sample Requests

Create a procedure
curl -X POST "https://developer-solution/fhir/4.0/Procedure/" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8=' \
-H 'Content-Type: application/json' \
-d '{"resourceType":"Procedure","status":"completed","code":{"coding":[{"system":"http://snomed.info/sct","code":359615001,"display":"Partial lobectomy of lung"}]},"subject":{"reference":"Patient/GYZGCNDDMRSWMQCPJBBVA","display":"P. van de Heuvel"},"encounter":{"reference":"Encounter/f002"},"performedPeriod":{"start":"2013-03-08T08:00:10.000Z","end":"2013-03-08T08:30:10.000Z"},"outcome":{"text":"improved blood circulation"},"followUp":{"text":"described in care plan"},"reasonCode":{"text":"Malignant tumr of lung"},"bodySite":{"coding":[{"system":"http://snomed.info/sct","code":39607008,"display":"Lung structure"}]}}'

Retrieve Procedures for a Patient

POST /fhir/4.0/Procedure/_search

This method returns all procedures for the patient identified either by patient.identifier or by patient. Optionally filtering by the procedure's code and date, and the identifier of the person who performed the procedure. This is the secure alternative to the GET search.


Parameters

Name

Type

Data Type

Description


Name:

Content-Type

required

Type:

header

Data Type:

string

Description:

Specifies how to encode the form data. The Content-Type value must be application/x-www-form-urlencoded.


Sample Value: application/x-www-form-urlencoded



Name:

patient.identifier

required

Type:

formData

Data Type:

string

Description:

The patient identifier consists of patient identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c.

Note: You must either define the patient.identifier or patient, not both.


Sample Value: ORION|AAAA-0124-8



Name:

patient

required

Type:

formData

Data Type:

string

Description:

The patient resource id.

Note: You must either define the patient.identifier or patient, not both.


Sample Value: IFAUCQJNGAYTENBNHBAE6USJJ5HA



Name:

date

optional

Type:

formData

Data Type:

array

Description:

Filters the procedures to those with a performed date on, before, or after a specific date, date-time, or date range. The supported prefixes are gt, ge, lt, le and eq. If no prefix is used, exact date or date-time matching is implied. Dates must be formatted according to ISO 8601 either as a date only (e.g. 1997-07-16) or as a date-time including the timezone (e.g. 1997-07-16T19:20:30+13:00). Ensure that special characters such as + are URL encoded i.e. %2B.


Sample Value: gt2013-01-01T01:00:00%2B13:00



Name:

code

optional

Type:

formData

Data Type:

string

Description:

Filters the procedures to those that match the specified code. The code value consists of a coding system and a code separated using a URL encoded | character i.e. %7c.


Sample Value: urn:text:HCPCS|S9470



Name:

performer.actor.identifier

optional

Type:

formData

Data Type:

string

Description:

Filters the procedures to those that match the specified performer identifier. The identifier consists of identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c.


Sample Value: http://hl7.org/fhir/sid/us-npi|1569874562



Name:

encounter.identifier

optional

Type:

formData

Data Type:

string

Description:

Filters the procedures to those that have an associated encounter with the specified identifier. The identifier consists of identifier namespace, also known as the system, and identifier, separated using a URL encoded | character i.e. %7c.


Sample Value: urn:text:CH-ENC|E65768-0114.9



Name:

-include-sources

optional

Type:

formData

Data Type:

array

Description:

The -include-sources parameter defines which sources should be queried for the results.

Note: Either -include-sources or -exclude-sources parameters can be specified, not both. If -include-sources is specified, ONLY the specified sources will be searched. Note that the sources specified should be enabled.


Sample Value: Orion%20Health%E2%84%A2%20R4%20HL7V2%20Procedures



Name:

-exclude-sources

optional

Type:

formData

Data Type:

array

Description:

The -exclude-sources parameter defines which sources should NOT be queried for the results.

Note: Either -include-sources or -exclude-sources parameter can be specified, not both. If -exclude-sources is specified, the specified sources will NOT be searched. Note that the sources specified should be enabled.


Sample Value: Orion%20Health%E2%84%A2%20R4%20HL7V2%20Procedures



Name:

_format description: | Media type of the response. It takes precedence over the Accept header. Possible values are `json` and `xml`. The default value is `xml`. type: string required: false in: query x-sample: json

optional

Type:

Data Type:

Description:




Name:

Accept description: | Media type of the response. Possible values are `application/json` and `application/xml`. The default value is `application/xml`. type: string required: false in: header x-sample: application/xml

optional

Type:

Data Type:

Description:



Responses


application/json+fhir

200

Returns a FHIR Bundle containing 0..* OperationOutcome resources and 0..* Procedure resources.


application/json+fhir

400

This response code is returned when the query is invalid e.g. an invalid parameter or a partial token in the search.

Sample Requests

Retrieve specific Procedures for a Patient identified by patient resource id
curl -X POST "https://developer-solution/fhir/4.0/Procedure/_search" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8=' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'patient=IFAUCQJNGAYTENBNHBAE6USJJ5HA' \
-d 'performer.actor.identifier=http://hl7.org/fhir/sid/us-npi%7C1569874562'

Retrieve a single Procedure

GET /fhir/4.0/Procedure/{id}

This method returns the Procedure resource matching the requested resource ID.


Parameters

Name

Type

Data Type

Description


Name:

id

required

Type:

path

Data Type:

string

Description:

The ID of the Procedure resource.


Sample Value: shaRCKMH6OERV6XXHV2BUJWTURNDOHMWT3YTFEZIRDH2WJBUYYWVEGQ



Name:

_format

optional

Type:

query

Data Type:

string

Description:

Media type of the response. It takes precedence over the Accept header.

Possible values are json and xml. The default value is xml.


Sample Value: json



Name:

Accept

optional

Type:

header

Data Type:

string

Description:

Media type of the response.

Possible values are application/json and application/xml. The default value is application/xml.


Sample Value: application/xml


Responses


application/json+fhir

200

Returns a Procedure resource matching the requested resource ID.


application/json+fhir

400

This code is returned when the FHIR ID is empty or not valid.


application/json+fhir

404

No Procedure resource found with the requested resource ID.

Sample Requests

Retrieve specific Procedures identified by a resource id
curl -X GET "https://developer-solution/fhir/4.0/Procedure/{id}" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8='

Updates a Procedure

PUT /fhir/4.0/Procedure/{id}

This method updates the Procedure resource matching the requested resource ID.

Note: The update API requires to have s data source available to store the Procedures. Currently storage solution is not part of the offering


Parameters

Name

Type

Data Type

Description


Name:

id

required

Type:

path

Data Type:

string

Description:

The ID of the Procedure resource.


Sample Value: shaRCKMH6OERV6XXHV2BUJWTURNDOHMWT3YTFEZIRDH2WJBUYYWVEGQ



Name:

Procedure

required

Type:

body

Data Type:

Description:

Contains the fields of the procedure resource to be updated. The following fields must be present:

  • Procedure.subject
  • Procedure.status
  • Procedure.code

Note: If the Procedure resource ID is present, it will be ignored. The patient subject on whom the procedure was performed should be known to the system.

Sample Payload:

{
  "resourceType": "Procedure",
  "id": "shaRCKMH6OERV6XXHV2BUJWTURNDOHMWT3YTFEZIRDH2WJBUYYWVEGQ",
  "status": "completed",
  "code": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": 359615001,
        "display": "Partial lobectomy of lung"
      }
    ]
  },
  "subject": {
    "reference": "Patient/GYZGCNDDMRSWMQCPJBBVA",
    "display": "P. van de Heuvel"
  },
  "encounter": {
    "reference": "Encounter/f002"
  },
  "performedPeriod": {
    "start": "2013-03-08T08:00:10.000Z",
    "end": "2013-03-08T08:30:10.000Z"
  },
  "outcome": {
    "text": "improved blood circulation"
  },
  "followUp": {
    "text": "described in care plan"
  },
  "reasonCode": {
    "text": "Malignant tumr of lung"
  },
  "bodySite": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": 39607008,
        "display": "Lung structure"
      }
    ]
  }
}



Responses


application/json+fhir

201

The Procedure was updated. The procedure FHIR ID is in the header.


application/json+fhir

400

This required fields are missing from the Procedure or Procedure Subject reference is not known.


application/json+fhir

401

This code is returned when the user is not authorized to perform the operation.


application/json+fhir

404

No Procedure resource found with the requested resource ID.

Sample Requests

Update a specific Procedure identified by a resource ID.
curl -X PUT "https://developer-solution/fhir/4.0/Procedure/shaRCKMH6OERV6XXHV2BUJWTURNDOHMWT3YTFEZIRDH2WJBUYYWVEGQ" \
-H 'Accept: application/json' \
-H 'Authorization: Basic bGV2ZWwxLnN5c19hOk9yaW9uc3k1IT8=' \
-H 'Content-Type: application/json' \
-d '{"resourceType":"Procedure","id":"shaRCKMH6OERV6XXHV2BUJWTURNDOHMWT3YTFEZIRDH2WJBUYYWVEGQ","status":"completed","code":{"coding":[{"system":"http://snomed.info/sct","code":359615001,"display":"Partial lobectomy of lung"}]},"subject":{"reference":"Patient/GYZGCNDDMRSWMQCPJBBVA","display":"P. van de Heuvel"},"encounter":{"reference":"Encounter/f002"},"performedPeriod":{"start":"2013-03-08T08:00:10.000Z","end":"2013-03-08T08:30:10.000Z"},"outcome":{"text":"improved blood circulation"},"followUp":{"text":"described in care plan"},"reasonCode":{"text":"Malignant tumr of lung"},"bodySite":{"coding":[{"system":"http://snomed.info/sct","code":39607008,"display":"Lung structure"}]}}'