FHIR API: Patient Update v1


Note

This API version will be deprecated. We encourage you to migrate to the latest version of the API. You can find the documentation for the new API version at Patient Update v2.

Pre-requisites


Resource:

PUT /partners/fhir/stu3/api/Bundle/{patientIdentifier}

Authentication:

Endpoint is secured with mutual TLS. More information can be found here: API Authentication


API Request

Request Parameters

Name Description Type Required Example
patientIdentifier Patient business ID of the patient to be updated.
Note: patient.identifier.value received in the response of the Patient Creation v1 API
String Yes 12345678Z

Request Headers

Name Description Type Required Example
org_id Organization OID String Yes 2.16.724.4.2
x-origin-request-id Request Unique ID generated by EMR middleware (UUID) String Yes 5109d51b-421e-4746-b673-16e3fe2b3442"
client_id Public identifier for organizations generated by Roche DC String Yes 1234567890
client_secret Client related secret known only to the EMR and Roche DC String Yes 1234567890
Content-Type json or fhir+json String Yes application/json or application/fhir+json

Profile overview

The list of profiles used in Patient Creation.


Request Example

  • The phone number of the patient with business id 12345678Z (already created in RDC) is updated from "123123123" to "123456789":
curl --location --request PUT 'https://api-services-eu.rochedcplatform.com/partners/fhir/stu3/api/v2/Bundle/12345678Z' \
--header 'client_id: 1234567890' \
--header 'client_secret: 1234567890' \
--header 'Content-Type: application/fhir+json' \
--header 'org_Id: 2.16.724.4.2' \
--data-raw '{
    "resourceType": "Bundle",
    "type": "message",
    "entry": [
        {
             "resource": {
                "resourceType": "MessageHeader",
                "id": "88a37162-3d7c-41c3-89ab-6e25fd68ba00",
                "event": {
                    "code": "new-bundle",
                    "system": "http://roche.com/fhir/rdc/message-type",
                    "display": "New bundle generated"
                },
                "source": {
                    "endpoint": "<Organization OID>",
                    "software": "EMR middleware",
                    "version": "1.0.0"
                },
                "timestamp": "2020-03-27T12:21:39.471Z",
                "meta": {
                    "profile":  [
                        "http://roche.com/fhir/rdc/StructureDefinition/message-header"
                    ]
                }
            }
        },
        {
            "resource": {
                "resourceType": "Patient",
                "meta": {
                	"profile":  [
                        "http://roche.com/fhir/rdc/StructureDefinition/patient-v2"
                    ]
                },
                "id": "12345678Z",
                "identifier": [
                    {
                        "system": "urn:oid:2.16.724.4.41",
                        "value": "12345678Z"
                    }
                ],
                "name": [
                    {
                        "family": "Doe",
                        "given": [
                            "John"
                        ]
                    }
                ],
                "telecom": [
                    {
                        "system": "phone",
                        "value": "123456789"
                    },
                    {
                        "system": "email",
                        "value": "johndoe123@email.com"
                    }
                ],
                "gender": "male",
                "birthDate": "1991-01-01"
            }
        },
        {
            "resource": {
                "resourceType": "Condition",
                "clinicalStatus": "active",
                "code": {
                    "coding": [
                        {
                            "system": "http://snomed.info/sct",
                            "code": "426875007",
                            "display": "Latent autoimmune diabetes mellitus in adult (disorder)"
                        }
                    ]
                },
                "subject": {
                    "reference": "Patient/sample-id-454b-b5c7-f1ed1fb4ght"
                }
            }
        }
    ]
}'


API Response

API code response

HTTP Response Code Description Response Body FHIR error code FHIR error code description
200 Patient Bundle updated Empty NA NA
400 Request failed because of incorrect parameters, returns no data OperationOutcome required Request failed because of incorrect parameters, returns no data
400 Request failed because of incorrect parameters, returns no data OperationOutcome structure A structural issue in the content such as wrong namespace, or unable to parse the content completely, or invalid json syntax.
400 Request failed because of incorrect parameters, returns no data OperationOutcome invalid Content invalid against the specification or a profile.
401 Request failed with unauthorized access, returns no data Empty NA NA
404 Patient Not Found OperationOutcome not-found Patient Not Found
405 Method Not Allowed Empty NA NA
415 Unsupported Media Type OperationOutcome not-supported Content-Type is not one of (application/json, application/fhir+json)
500 Request failed with internal exception OperationOutcome exception Internal server error.
501 Not implemented Empty NA NA

API Payload response

Successful response object: On successful updated Patient through API will return HTTP 200 Status Code with empty body.


Error response object:

As an example, if we try to update a record that does not exist, we will obtain a 404 HTTP error status code together the following response body:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "not-found",
            "diagnostics": "Patient not found"
        }
    ]
}