PracticeSuite EHR FHIR API
Product Name and Version :PracticeSuite EHR-18.0.0
Table of Contents
- Product Name and Version
- INTRODUCTION
- FHIR Endpoints
- Types of Smart-On-FHIR applications
- Types of Authentications supported
- Steps for Smart App Launch
- Access FHIR API
- Request : Patient
- Request : AllergyIntolerance
- Request : CarePlan
- Request : CareTeam.
- Request: Problems / Health Concern
- Request: Implantable Device
- Request: Diagnostic Report/ Clinical Notes/ DocumentReference
- Request: Laboratory Result Observation
- Request: GOAL
- Request: Immunization
- Request: Medication
- Request: Smoking Status
- Request: Procedure
- Request: Provenance
- Request: Vital Signs
- Request: Complete Patient Summary (CCDA)
- Search Patient
- Search Encounter
- Get Document
- Error Handling
- Profile audience and scope
- Security and Privacy Considerations
- Terms of Use
Product Name and Version: PracticeSuite EHR-18.0.0
INTRODUCTION
In this documentation we will list all the steps required to access protected health information based on the documentation of an open API. The API makes health information broadly available using FHIR®, a set of clinical interoperability resources under the umbrella of the HL7 standards organization. FHIR is based on common web standards can be reached through a RESTful protocol in which each FHIR resource has a known URL. This document describes OAuth 2.0 for client applications to authorize, authenticate, and integrate with FHIR-based data systems.
We follow Smart-On-FHIR authentication (OAuth2) and authorization (Ref. http://hl7.org/fhir/smart-app-launch/toc.html )
FHIR Endpoints
Note: Production and Test Server endpoints are subject to change.
Production Endpoint
- FHIR : https:// practicesuite.com:9443/fhir-server/api/v4/
- Authentication Server: https://oauth.practicesuite.com/
Test Server Endpoint
- FHIR : https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/
- Authentication Server: https://oauth.prodprod.practicesuite.com/
Types of Smart-On-FHIR applications
- Standalone App : SMART on FHIR confidential client with a patient context, refresh token, and OpenID Connect (OIDC) identity token.
- EHR Embedded app: Demonstrate the ability to perform an EHR launch to a SMART on FHIR
- Smart Backend Services App (Multi-patient authorization and API) : These are server-to-server backend applications e.g. Export clinical data for multiple patients in a group. This app is system level app without any UI.
Types of Authentications supported
- Symmetric (“client secret”) authentication (FHIR.UV.SMART-APP-LAUNCH\Example App Launch for Symmetric Client Auth – FHIR v4.0.1)
- Asymmetric (“private key JWT”) authentication (FHIR.UV.SMART-APP-LAUNCH\Example App Launch for Asymmetric Client Auth – FHIR v4.0.1)
- Public Clients (FHIR.UV.SMART-APP-LAUNCH\Example App Launch for Public Client – FHIR v4.0.1)
Steps for Smart App Launch
- Client App Registration
- Retrieve .well-known/smart-configuration
- Obtain authorization code
- Obtain access token
- Access FHIR API
- Refresh Token to obtain new access token
Client APP Registration
Before a SMART app can run against an EHR, the app must be registered with that EHR’s authorization service. We are using OAuth 2.0 Client Registration.
Client App Request process
- Third-party application must sign the API Subscription Agreement with following details
- The app name
- The necessary APIs / Scopes
- Any redirect URIs
- Launch URL (optional)
- URL to JWK Set (Only for apps supporting asymmetric client authentication).
- The application is created by the EHR admin after confirming the app’s registration parameters and communicates a client_id to the app.
- FHIR APIs (of any supported version) listed within the USCDI v1 core data set will be supported
- Only reads data from FHIR server
Retrieve .well-known/smart-configuration
In order to obtain launch context and request authorization to access FHIR resources, the app discovers the EHR FHIR server’s SMART configuration metadata, including OAuth authorization_endpoint and token_endpoint URLs.
FHIR server makes SMART configuration available from well-known endpoint. You can get Authorization end point and token endpoint.
Request
GET 200 https://fhir.preprod.practicesuite.com/r4/.well-known/smart-configuration
Response
{ "capabilities": [ "launch-ehr", "launch-standalone", "client-public", "client-confidential-symmetric", "sso-openid-connect", "context-banner", "context-style", "context-ehr-patient", "context-ehr-encounter", "context-standalone-patient", "context-standalone-encounter", "permission-offline", "permission-patient", "permission-user" ], "revocation_endpoint": "https://oauth.prodprod.practicesuite.com/oauth/token/revoke-token", "authorization_endpoint": "https://oauth.prodprod.practicesuite.com/oauth/authorization", "token_endpoint": "https://oauth.prodprod.practicesuite.com/oauth/token" }
Error codes
JSON response is returned from the FHIR Server along with the code
401: Unauthorized
400: Bad Request
500: Internal Server Error
Obtain authorization code
The app supplies the following parameters to the EHR’s “authorize” endpoint.
Parameters | ||
response_type | required | Fixed value: code. |
client_id | required | The client’s identifier. |
redirect_uri | required | Must match one of the client’s pre-registered redirect URIs. |
launch | conditional | When using the EHR Launch flow, this must match the launch value received from the EHR. Omitted when using the Standalone Launch. |
scope | required | Must describe the access that the app needs, including scopes like patient/*.rs, openid and fhirUser (if app needs authenticated patient identity) and either:
· a launch value indicating that the app wants to receive already-established launch context details from the EHR · a set of launch context requirements in the form launch/patient, which asks the EHR to establish context on your behalf. Please refer to the scopes supported in the table below |
state | required | An opaque value used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the user-agent back to the client. The parameter SHALL be used for preventing cross-site request forgery or session fixation attacks. The app SHALL use an unpredictable value for the state parameter with at least 122 bits of entropy (e.g., a properly configured random uuid is suitable). |
aud | required | URL of the EHR resource server from which the app wishes to retrieve FHIR data. This parameter prevents leaking a genuine bearer token to a counterfeit resource server. (Note that in the case of an EHR launch flow, this aud value is the same as the launch’s iss value.) Note that the aud parameter is semantically equivalent to the resource parameter defined in RFC8707. SMART’s aud parameter predates RFC8707 and we have decided not to rename it for reasons of backwards compatibility. We might consider renaming SMART’s aud parameter in the future if implementer feedback indicates that alignment would be valuable. For the current release, servers SHALL support the aud parameter and MAY support a resource parameter as a synonym for aud. |
Scopes Supported
Scope | Grants |
patient/*.read | Permission to read and search any resource for the current patient (see notes on wildcard scopes below). |
user/*.read | Permission to read and write all resources that the current user can access (see notes on wildcard scopes below). |
openid fhirUser | Permission to retrieve information about the current logged-in user. |
launch | Permission to obtain launch context when app is launched from an EHR. |
launch/patient | When launching outside the EHR, ask for a patient to be selected at launch time. |
offline_access | Request a refresh_token that can be used to obtain a new access token to replace an expired one, even after the end-user no longer is online after the access token expires. |
Here’s an example of an authorization request using HTTP GET. You will replace the [redirect_uri], [client_id], [launch_token], [state], [code_challenge], and [audience] placeholders with your own values.
Request
https://ehr/authorize?
response_type=code&
client_id=app-client-id&
redirect_uri=https%3A%2F%2Fapp%2Fafter-auth&
launch=xyz123&
scope=launch+patient%2FObservation.rs+patient%2FPatient.rs+openid+fhirUser&
state=98wrghuwuogerg97&
aud=https://ehr/fhir
e.g.
https://oauth.prodprod.practicesuite.com/oauth/authorization?response_type=code&client_id=SAMPLE_CONFIDENTIAL_CLIENT_ID&redirect_uri=https%3A%2F%2Finferno.healthit.gov%2Finferno%2Foauth2%2Fstatic%2Fredirect&scope=launch%2Fpatient+openid+fhirUser+offline_access+patient%2FMedication.read+patient%2FAllergyIntolerance.read+patient%2FCarePlan.read+patient%2FCareTeam.read+patient%2FCondition.read+patient%2FDevice.read+patient%2FDiagnosticReport.read+patient%2FDocumentReference.read+patient%2FEncounter.read+patient%2FGoal.read+patient%2FImmunization.read+patient%2FLocation.read+patient%2FMedicationRequest.read+patient%2FObservation.read+patient%2FOrganization.read+patient%2FPatient.read+patient%2FPractitioner.read+patient%2FProcedure.read+patient%2FProvenance.read+patient%2FPractitionerRole.read&state=26a45e37-7445-4e4a-b8fb-24144eccbdc4&aud=https%3A%2F%2Finferno.healthit.gov%2Freference-server%2Fr4
Response
The EHR’s authorization server reviews the request from your application. If approved, the authorization server redirects the browser to the redirect URL supplied in the initial request and appends the following querystring parameter.
- code: This parameter contains the authorization code generated by EHR, which will be exchanged for the access token in the next step.
- state: The exact value received from the client.
Here is how redirect URL will look like
Location: https://app/after-auth?code=123abc&state=98wrghuwuogerg97
https://inferno.healthit.gov/inferno/oauth2/static/redirect?code=SAMPLE_CODE.bGF1bmNoL3BhdGllbnQgb3BlbmlkIGZoaXJVc2VyIG9mZmxpbmVfYWNjZXNzIHBhdGllbnQvTWVkaWNhdGlvbi5yZWFkIHBhdGllbnQvQWxsZXJneUludG9sZXJhbmNlLnJlYWQgcGF0aWVudC9DYXJlUGxhbi5yZWFkIHBhdGllbnQvQ2FyZVRlYW0ucmVhZCBwYXRpZW50L0NvbmRpdGlvbi5yZWFkIHBhdGllbnQvRGV2aWNlLnJlYWQgcGF0aWVudC9EaWFnbm9zdGljUmVwb3J0LnJlYWQgcGF0aWVudC9Eb2N1bWVudFJlZmVyZW5jZS5yZWFkIHBhdGllbnQvRW5jb3VudGVyLnJlYWQgcGF0aWVudC9Hb2FsLnJlYWQgcGF0aWVudC9JbW11bml6YXRpb24ucmVhZCBwYXRpZW50L0xvY2F0aW9uLnJlYWQgcGF0aWVudC9NZWRpY2F0aW9uUmVxdWVzdC5yZWFkIHBhdGllbnQvT2JzZXJ2YXRpb24ucmVhZCBwYXRpZW50L09yZ2FuaXphdGlvbi5yZWFkIHBhdGllbnQvUGF0aWVudC5yZWFkIHBhdGllbnQvUHJhY3RpdGlvbmVyLnJlYWQgcGF0aWVudC9Qcm9jZWR1cmUucmVhZCBwYXRpZW50L1Byb3ZlbmFuY2UucmVhZCBwYXRpZW50L1ByYWN0aXRpb25lclJvbGUucmVhZCA=.ODU=&state=26a45e37-7445-4e4a-b8fb-24144eccbdc4
After receiving the authorization code, your application trades the code for a JSON object containing an access token and contextual information by sending an HTTP POST to the token endpoint using a Content-Type header with value of “application/x-www-form-urlencoded”.
Error codes
JSON response is returned from the FHIR Server along with the code
200: Ok
401: Unauthorized
400: Bad Request
500: Internal Server Error
Obtain access token
For public apps, authentication not required because a client with no secret cannot prove its identity when it issues a call. (The end-to-end system can still be secure because the client comes from a known, https protected endpoint specified and enforced by the redirect uri.) For confidential apps, authentication is required. Confidential clients SHOULD use Asymmetric Authentication if available, and MAY use Symmetric Authentication.
There are two different requests to get access token based on authentication type. In case of Symmetric (“client secret”) authentication app issues an HTTP POST to the EHR authorization server’s token endpoint URL using content-type application/x-www-form-urlencoded.
In case of Asymmetric authentication app, generate a client authentication assertion and prepare arguments for POST to token API:
Request
Parameters | ||
grant_type | required | Fixed value: authorization_code for symmetric and client_credentials for assymetric |
Code | required | Code that the app received from the authorization server |
redirect_uri | required | The same redirect_uri used in the initial authorization request |
client_id | conditional | Required for public apps. Omit for confidential apps. |
client_assertion_type | conditional | Required for asymmetric authentication. set to urn:ietf:params:oauth:client-assertion-type:jwt-bearer |
client_assertion | conditional | Required for asymmetric authentication. set to a JWT signed with your dynamic client’s private key |
Scope | conditional | system/*.read for backend services type of application (bulk operations) |
Symmetric Authentication Request
https://oauth.prodprod.practicesuite.com/oauth/token
grant_type=authorization_code&code=SAMPLE_CODE.bGF1bmNoL3BhdGllbnQgb3BlbmlkIGZoaXJVc2VyIG9mZmxpbmVfYWNjZXNzIHBhdGllbnQvTWVkaWNhdGlvbi5yZWFkIHBhdGllbnQvQWxsZXJneUludG9sZXJhbmNlLnJlYWQgcGF0aWVudC9DYXJlUGxhbi5yZWFkIHBhdGllbnQvQ2FyZVRlYW0ucmVhZCBwYXRpZW50L0NvbmRpdGlvbi5yZWFkIHBhdGllbnQvRGV2aWNlLnJlYWQgcGF0aWVudC9EaWFnbm9zdGljUmVwb3J0LnJlYWQgcGF0aWVudC9Eb2N1bWVudFJlZmVyZW5jZS5yZWFkIHBhdGllbnQvRW5jb3VudGVyLnJlYWQgcGF0aWVudC9Hb2FsLnJlYWQgcGF0aWVudC9JbW11bml6YXRpb24ucmVhZCBwYXRpZW50L0xvY2F0aW9uLnJlYWQgcGF0aWVudC9NZWRpY2F0aW9uUmVxdWVzdC5yZWFkIHBhdGllbnQvT2JzZXJ2YXRpb24ucmVhZCBwYXRpZW50L09yZ2FuaXphdGlvbi5yZWFkIHBhdGllbnQvUGF0aWVudC5yZWFkIHBhdGllbnQvUHJhY3RpdGlvbmVyLnJlYWQgcGF0aWVudC9Qcm9jZWR1cmUucmVhZCBwYXRpZW50L1Byb3ZlbmFuY2UucmVhZCBwYXRpZW50L1ByYWN0aXRpb25lclJvbGUucmVhZCA%3D.ODU%3D&redirect_uri=https%3A%2F%2Finferno.healthit.gov%2Finferno%2Foauth2%2Fstatic%2Fredirect
In case of Asymmetric authentication following is a request
client_assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzM4NCIsImtpZCI6IjRiNDlhNzM5ZDFlYjExNWIzMjI1ZjRjZjliZWI2ZDFiIn0.eyJpc3MiOiJleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkluSmxaMmx6ZEhKaGRHbHZiaTEwYjJ0bGJpSjkuZXlKcWQydHpYM1Z5YkNJNkltaDBkSEE2THk4eE1DNHhOUzR5TlRJdU56TXZhVzVtWlhKdWJ5OHVkMlZzYkMxcmJtOTNiaTlxZDJ0ekxtcHpiMjRpTENKaFkyTmxjM05VYjJ0bGJuTkZlSEJwY21WSmJpSTZNVFVzSW1saGRDSTZNVFU1TnpReE16RTVOWDAucTR2NE1zYzc0a041MDZLVFowcV9taW55YXBKdzBnd2xUNk1fdWlMNzNTNCIsInN1YiI6ImV5SmhiR2NpT2lKSVV6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW5KbFoybHpkSEpoZEdsdmJpMTBiMnRsYmlKOS5leUpxZDJ0elgzVnliQ0k2SW1oMGRIQTZMeTh4TUM0eE5TNHlOVEl1TnpNdmFXNW1aWEp1Ynk4dWQyVnNiQzFyYm05M2JpOXFkMnR6TG1wemIyNGlMQ0poWTJObGMzTlViMnRsYm5ORmVIQnBjbVZKYmlJNk1UVXNJbWxoZENJNk1UVTVOelF4TXpFNU5YMC5xNHY0TXNjNzRrTjUwNktUWjBxX21pbnlhcEp3MGd3bFQ2TV91aUw3M1M0IiwiYXVkIjoiaHR0cHM6Ly9pbmZlcm5vLmhlYWx0aGl0Lmdvdi9yZWZlcmVuY2Utc2VydmVyL29hdXRoL2J1bGstdG9rZW4iLCJleHAiOjE2NTMxMDY4ODgsImp0aSI6ImZmZjA5YjIxMjhiOWRmNmU3MGU5MWQ2ZDUwMGQxMmFmYmU2YWE4N2FhMjJlZjVhMjc5YjZhNTI0YzA0NmM1ZWEifQ.tlx7jIu9wn7QdHHdWyUMf9otY0r7eX62LuVF3kZOsjjw-CP-glqdbDtOKiu-BQ9doduW4zyk3fs6k48XpAEQLsSXajfEJeDy9uj-WdSmpAHEC0xYHQSzajekdwlDSBRA&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&grant_type=client_credentials&scope=system%2F%2A.read
Response
The EHR authorization server SHALL return a JSON object that includes an access token or a message indicating that the authorization request has been denied. The JSON structure includes the following parameters:
Parameters | ||
access_token | required | The access token issued by the authorization server |
token_type | required | Fixed value: Bearer |
expires_in | recommended | Lifetime in seconds of the access token, after which the token SHALL NOT be accepted by the resource server |
scope | required | Scope of access authorized. Note that this can be different from the scopes requested by the app. |
id_token | optional | Authenticated user identity and user details, if requested |
refresh_token | optional | Token that can be used to obtain a new access token, using the same or a subset of the original authorization grants |
Sample response
{ "access_token": "3e934471-1dbf-4a69-8e1f-227f9fd65428", "refresh_token": "31c4476d-6e9d-41a3-a272-065d05c3599d", "patient": "85", "scope": "launch/patient openid fhirUser offline_access patient/*.read ", "need_patient_banner": false, "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkYjExNzk1Ny02MDU4LTRhODYtYTcxMi0yMDU2NDU5ZDUxMzgiLCJhdWQiOiJTQU1QTEVfQ09ORklERU5USUFMX0NMSUVOVF9JRCIsImlzcyI6Imh0dHBzOi8vaW5mZXJuby5oZWFsdGhpdC5nb3YvcmVmZXJlbmNlLXNlcnZlci9yNCIsImV4cCI6MTY4NDU3OTc5NywiaWF0IjoxNjUzMDQzNzk3LCJmaGlyVXNlciI6Imh0dHBzOi8vaW5mZXJuby5oZWFsdGhpdC5nb3YvcmVmZXJlbmNlLXNlcnZlci9yNC9QYXRpZW50Lzg1In0.R1oMsXCTXMKiM1ohCxh3LkgXrgfBebNIaC_jam9sBOwYCCw7K4TLUBmVzKIGb3_-5wZtqyTTqO6bRwsituXSefoS1QwI14wLGpk-fOsr6M4uSXW5An4WUy8858j3aa5Qkcf0pw4QP3-rlmVJoHuN_In4ULn5bpRQJkllEQ2ySPj3pkoWWMwfij5p7nNfvwgkE2QOCM4Q-ounE6oLyYZJp_OGvVhkREu8jO77m3Tgsji_jbX7g4-deuwB4F9EHUfpjfhM3TB1GIoQ7cgJFhHOs9mTCcpT0aYYQkmCJGRx1R5jI-I56p4_63IkU2BRau-INII3Zvcnsz5ajpvU46eIwg", "smart_style_url": "https://oauth.prodprod.practicesuite.com/app/smart-style-url", "token_type": "bearer", "expires_in": 3600 }
Error codes
JSON response is returned from the FHIR Server along with the code
200: Ok
401: Unauthorized
400: Bad Request
500: Internal Server Error
At this point, the authorization flow is complete.
Access FHIR API
With a valid access token, the app can access protected EHR data by issuing a FHIR API call to the FHIR endpoint on the EHR’s resource server. Only HTTP GET request types are supported while accessing FHIR Resource API. Following resources are supported
FHIR Resource |
Allergies and Intolerances |
Assessment and Plan of Treatment |
Care Team Members |
Clinical Notes -US CoreDocumentReferenceProfile&US CoreDiagnosticReportProfile for Report and Note Exchange |
Goals – US Core Goal Profile |
Health Concerns – US Core Condition Profile |
Immunizations – US Core Immunization Profile |
Laboratory – US Core Laboratory Result Observation Profile&US Core DiagnosticReport Profile for Laboratory Results Reporting |
Medications – US Core Medication Profile, US Core MedicationRequest Profile, US Core AllergyIntolerance Profile |
Patient Demographics – US Core Patient Profile |
Problems – US Core Condition Profile |
Procedures – US Core Procedure Profile |
Provenance – US Core Provenance Profile |
Smoking Status – US Core Smoking Status Observation Profile |
Unique Device Identifier(s) for Patient’s Implantable Device(s) – US Core ImplantableDevice Profile |
Vital Signs–FHIR CoreVitalSigns Profile |
Request : Patient
_id: GET [Base_URL]/Patient/_search?Patient=[id]
Identifier : GET [Base_URL]/Patient?identifier={system|}[code]
Name: GET [Base_URL]/Patient?name=[string]
birthdate + name :GET [Base_URL]/Patient?birthdate=[date]&name=[string]
gender + name : GET [Base_URL]/Patient?gender={system|}[code]&name=[string]
US Core Patient Profile as specified in the US Core v3.1.1 Implementation Guide
{ "resourceType": "Bundle", "id": "6f1d6f2d-c42b-453b-8f5a-8d74c24f6fb6", "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://FHIR-Base-URL/api/v4/Patient?_count=10&_id=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b", "fullUrl": "https://FHIR-Base-URL/api/v4/Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b", "resource": { "resourceType": "Patient", "id": "17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b", "meta": { "versionId": "3", "lastUpdated": "2022-03-24T10:50:49.231Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" ] }, "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Generated by <a href=\"https://github.com/synthetichealth/synthea\">Synthea</a>.Version identifier: v2.6.1-3-g50f4f58f\n . Person seed: 4286870567281389426 Population seed: 3</div>" }, "extension": [ { "extension": [ { "url": "ombCategory", "valueCoding": { "system": "urn:oid:2.16.840.1.113883.6.238", "code": "2106-3", "display": "White" } }, { "url": "text", "valueString": "White" } ], "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race" }, { "extension": [ { "url": "ombCategory", "valueCoding": { "system": "urn:oid:2.16.840.1.113883.6.238", "code": "2186-5", "display": "Non Hispanic or Latino" } }, { "url": "text", "valueString": "Non Hispanic or Latino" } ], "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity" }, { "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName", "valueString": "Christen366 Murray856" }, { "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex", "valueCode": "M" }, { "url": "http://hl7.org/fhir/StructureDefinition/patient-birthPlace", "valueAddress": { "city": "Springfield", "state": "Massachusetts", "country": "US" } } ], "identifier": [ { "system": "https://github.com/synthetichealth/synthea", "value": "e91975f5-9445-c11f-cabf-c3c6dae161f2" }, { "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "MR", "display": "Medical Record Number" } ], "text": "Medical Record Number" }, "system": "http://hospital.smarthealthit.org", "value": "e91975f5-9445-c11f-cabf-c3c6dae161f2" }, { "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "SS", "display": "Social Security Number" } ], "text": "Social Security Number" }, "system": "http://hl7.org/fhir/sid/us-ssn", "value": "999-61-9798" }, { "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "DL", "display": "Driver's License" } ], "text": "Driver's License" }, "system": "urn:oid:2.16.840.1.113883.4.3.25", "value": "S99940282" } ], "name": [ { "use": "official", "family": "Harry", "given": [ "Tom" ], "prefix": [ "Mr." ], "suffix": [ "Jr." ] }, { "use": "maiden", "given": [ "Alex" ] } ], "telecom": [ { "system": "phone", "value": "555-770-2787", "use": "home" } ], "gender": "male", "birthDate": "1941-09-05", "address": [ { "extension": [ { "extension": [ { "url": "latitude", "valueDecimal": 42.1343534042923 }, { "url": "longitude", "valueDecimal": -72.67217549422628 } ], "url": "http://hl7.org/fhir/StructureDefinition/geolocation" } ], "line": [ "599 Schowalter Promenade" ], "city": "West Springfield", "state": "MA", "postalCode": "01089", "country": "US", "period": { "start": "1940-09-05" } } ], "maritalStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v3-MaritalStatus", "code": "M", "display": "M" } ], "text": "M" }, "multipleBirthBoolean": false, "communication": [ { "language": { "coding": [ { "system": "urn:ietf:bcp:47", "code": "en-US", "display": "English" } ], "text": "English" } } ] }, "search": { "mode": "match", "score": 1 } } ] }
Request : AllergyIntolerance
GET GET [Base_URL]/AllergyIntolerance?Patient=[id]
Each resource returned from the first search is expected to conform to the US Core AllergyIntolerance Profile.
{ "resourceType": "AllergyIntolerance", "id": "17e7758c319-7955ecfe-94da-4071-8488-4ef21425ed85", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T11:56:52.889Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance" ] }, "clinicalStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", "code": "inactive" } ] }, "verificationStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification", "code": "confirmed" } ] }, "type": "allergy", "category": [ "food" ], "criticality": "low", "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "300916003", "display": "Latex allergy" } ], "text": "Latex allergy" }, "patient": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "recordedDate": "1941-10-14T18:33:18-05:00", "reaction": [ { "manifestation": [ { "coding": [ { "system": "http://snomed.info/sct", "code": "271807003", "display": "skin rash" } ], "text": "skin rash" } ] } ] }
Request : CarePlan
GET [Base_URL]/AllergyIntolerance?CarePlan=assess-plan&patient=[id]
e.g.
Each resource returned from the first search is expected to conform to the US Core CarePlan Profile.
{ "resourceType": "Bundle", "id": "79d7a78e-de9b-4c5c-b51d-45b72963ae1f", "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/CarePlan?_count=10&category=assess-plan&patient=Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e776e13ff-1ea7505d-f475-4f49-adde-30e69df86734", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/CarePlan/17e776e13ff-1ea7505d-f475-4f49-adde-30e69df86734", "resource": { "resourceType": "CarePlan", "id": "17e776e13ff-1ea7505d-f475-4f49-adde-30e69df86734", "meta": { "versionId": "2", "lastUpdated": "2022-01-21T10:56:06.304Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan" ] }, "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Care Plan for Fracture care.<br/>Activities: <ul><li>Fracture care</li><li>Fracture care</li></ul><br/>Care plan is meant to treat Fracture of clavicle.</div>" }, "status": "active", "intent": "order", "category": [ { "coding": [ { "system": "http://hl7.org/fhir/us/core/CodeSystem/careplan-category", "code": "assess-plan" } ] }, { "coding": [ { "system": "http://snomed.info/sct", "code": "384758001", "display": "Self-care interventions (procedure)" } ], "text": "Self-care interventions (procedure)" } ], "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "period": { "start": "1941-10-02T18:33:18-05:00" }, "careTeam": [ { "reference": "CareTeam/17e775e7546-36e6a4cd-264e-4a94-92fa-cdf1b2fa30c1" } ], "activity": [ { "detail": { "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "409002", "display": "Food allergy diet" } ], "text": "Food allergy diet" }, "status": "in-progress", "location": { "reference": "Location/17e7750e68f-6266aec8-0cd3-443e-adb9-be37f3bf25f2", "display": "HOLYOKE MEDICAL CENTER" } } }, { "detail": { "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "58332002", "display": "Allergy education" } ], "text": "Allergy education" }, "status": "in-progress", "location": { "reference": "Location/17e7750e68f-6266aec8-0cd3-443e-adb9-be37f3bf25f2", "display": "HOLYOKE MEDICAL CENTER" } } }, { "detail": { "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "58332002", "display": "Allergy education" } ], "text": "Allergy education" }, "status": "in-progress", "location": { "reference": "Location/17e7750e68f-6266aec8-0cd3-443e-adb9-be37f3bf25f2", "display": "HOLYOKE MEDICAL CENTER" } } } ] }, "search": { "mode": "match", "score": 1 } } ] }
Request : CareTeam
GET [Base_URL]/CareTeam?patient=[id]&status=active
e.g.
https://[Base_URL]/CareTeam?patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&status=active
Each resource returned from the first search is expected to conform to the US Core CareTeam Profile
{ "resourceType": "Bundle", "id": "492509fd-0650-4e2e-834f-41fc7b132a5e", "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/CareTeam?_count=10&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&status=http://hl7.org/fhir/care-team-status%7Cactive&_page=1" } ], "entry": [ { "id": "17e775e7546-36e6a4cd-264e-4a94-92fa-cdf1b2fa30c1", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/CareTeam/17e775e7546-36e6a4cd-264e-4a94-92fa-cdf1b2fa30c1", "resource": { "resourceType": "CareTeam", "id": "17e775e7546-36e6a4cd-264e-4a94-92fa-cdf1b2fa30c1", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T12:03:06.182Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam" ] }, "status": "active", "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "period": { "start": "1941-10-02T18:33:18-05:00" }, "participant": [ { "role": [ { "coding": [ { "system": "http://snomed.info/sct", "code": "116154003", "display": "Patient" } ], "text": "Patient" } ], "member": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b", "display": "Mr. Dustin31 Ritchie586" } }, { "role": [ { "coding": [ { "system": "http://snomed.info/sct", "code": "223366009", "display": "Healthcare professional (occupation)" } ], "text": "Healthcare professional (occupation)" } ], "member": { "reference": "Practitioner/17e774bb850-6b7b7f50-ed52-4523-a3a8-60fb0ef71c5b", "display": "Dr. Patricia625 Kilback373" } }, { "role": [ { "coding": [ { "system": "http://snomed.info/sct", "code": "224891009", "display": "Healthcare services (qualifier value)" } ], "text": "Healthcare services (qualifier value)" } ], "member": { "reference": "Organization/17e774dca91-e7e4e9e3-390e-4c10-83ae-88beabc176e2", "display": "HOLYOKE MEDICAL CENTER" } } ], "managingOrganization": [ { "reference": "Organization/17e774dca91-e7e4e9e3-390e-4c10-83ae-88beabc176e2", "display": "HOLYOKE MEDICAL CENTER" } ] }, "search": { "mode": "match", "score": 1 } } ] }
Request: Problems / Health Concern
Search Parameters
GET [base]/Condition?patient=[id]&category={system|}[code]
GET [base]/Condition?patient=[id]&category=http://terminology.hl7.org/CodeSystem/condition-category|problem-list-item
GET [base]/Condition?patient=[id]&category=http://hl7.org/fhir/us/core/CodeSystem/condition-category|health-concern
GET [base]/Condition?patient=[id]&category=http://terminology.hl7.org/CodeSystem/condition-category|encounter-diagnosis
e.g
[Base_URL]/Condition?patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&category=http://hl7.org/fhir/us/core/CodeSystem/condition-category|health-concernResponse
Each resource returned from the first search is expected to conform to the US Core Condition Profile
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "f537c30e-fab7-45f0-8167-4ab7a48386ec", "type": "searchset", "total": 2, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Condition?_count=10&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e7777ce8c-c66752fb-ee1b-40c2-ba5a-2e6ee89b3e1a", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Condition/17e7777ce8c-c66752fb-ee1b-40c2-ba5a-2e6ee89b3e1a", "resource": { "resourceType": "Condition", "id": "17e7777ce8c-c66752fb-ee1b-40c2-ba5a-2e6ee89b3e1a", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T12:30:47.436Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition" ] }, "clinicalStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", "code": "resolved" } ] }, "verificationStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", "code": "confirmed" } ] }, "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/condition-category", "code": "encounter-diagnosis", "display": "Encounter Diagnosis" } ] } ], "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "444814009", "display": "Viral sinusitis (disorder)" } ], "text": "Viral sinusitis (disorder)" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "onsetDateTime": "1940-11-09T18:33:18-05:00", "abatementDateTime": "1940-11-30T18:33:18-05:00", "recordedDate": "1940-11-09T18:33:18-05:00" }, "search": { "mode": "match", "score": 1 } }, { "id": "17eb029f925-40603327-0ac3-48dd-972b-6c882b8751f5", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Condition/17eb029f925-40603327-0ac3-48dd-972b-6c882b8751f5", "resource": { "resourceType": "Condition", "id": "17eb029f925-40603327-0ac3-48dd-972b-6c882b8751f5", "meta": { "versionId": "1", "lastUpdated": "2022-01-31T12:44:07.847Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition" ] }, "clinicalStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/condition-clinical", "code": "resolved" } ] }, "verificationStatus": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", "code": "confirmed" } ] }, "category": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason", "valueCode": "unknown" } ] } ], "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "195662009", "display": "Acute viral pharyngitis (disorder)" } ], "text": "Acute viral pharyngitis (disorder)" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "onsetDateTime": "1961-06-25T01:11:45-04:00", "abatementDateTime": "1961-07-07T01:11:45-04:00", "recordedDate": "1961-06-25T01:11:45-04:00" }, "search": { "mode": "match", "score": 1 } } ] }
Request: Implantable Device
Search Parameters
GET [Base_URL]/Device?patient=[id]
e.g. [Base_URL]/Device?patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
Response
Each resource returned from the first search is expected to conform to the US Core ImplantableDevice Profile
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "5804551e-120d-4164-b05b-9705fad44fa5", "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Device?_count=10&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e777b3f34-04bc3627-92d3-43bb-92e7-35533110f750", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Device/17e777b3f34-04bc3627-92d3-43bb-92e7-35533110f750", "resource": { "resourceType": "Device", "id": "17e777b3f34-04bc3627-92d3-43bb-92e7-35533110f750", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T12:34:32.884Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device" ] }, "udiCarrier": [ { "deviceIdentifier": "43069338026389", "carrierHRF": "(01)43069338026389(11)000302(17)250317(10)1134(21)842026117977" } ], "status": "active", "distinctIdentifier": "43069338026389", "manufactureDate": "2000-03-02T18:33:18-05:00", "expirationDate": "2025-03-17T19:33:18-04:00", "lotNumber": "1134", "serialNumber": "842026117977", "deviceName": [ { "name": "Implantable defibrillator, device (physical object)", "type": "user-friendly-name" } ], "type": { "coding": [ { "system": "http://snomed.info/sct", "code": "72506001", "display": "Implantable defibrillator, device (physical object)" } ], "text": "Implantable defibrillator, device (physical object)" }, "patient": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" } }, "search": { "mode": "match", "score": 1 } } ] }
Request: Diagnostic Report/ Clinical Notes/ DocumentReference
Search Parameters
patient : GET [Base_URL]/DiagnosticReport?patient=[id]
patient + code : GET [Base_URL]/DiagnosticReport?patient=[id]&code={system|}[code]
patient + category: GET [Base_URL]/DiagnosticReport?patient=[id]&category=LAB
patient : GET [Base_URL]/ DocumentReference?patient=[id]
e.g.
https://[Base_URL]/DiagnosticReport?category=LP29684-5&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
https://[Base_URL]/DiagnosticReport?category=LP7839-6&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
https://[Base_URL]/DocumentReference?patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
Category and codes details can be obtained from US Core DiagnosticReport Profile for Report and Note exchange
Response
Each resource returned from the first search is expected to conform to the US Core DiagnosticReport Profile for Report and Note exchange.
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "a87a8318-2dfc-488d-9f0a-6b07d7c29271", "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/DiagnosticReport?_count=10&category=LP29684-5&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e7b6e6f1c-119e9b8b-11b9-448b-b760-dc116013b654", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/DiagnosticReport/17e7b6e6f1c-119e9b8b-11b9-448b-b760-dc116013b654", "resource": { "resourceType": "DiagnosticReport", "id": "17e7b6e6f1c-119e9b8b-11b9-448b-b760-dc116013b654", "meta": { "versionId": "1", "lastUpdated": "2022-01-21T06:59:02.053Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://loinc.org", "code": "LP29684-5", "display": "Radiology" } ], "text": "Radiology" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "34117-2", "display": "History and physical note" } ], "text": "History and physical note" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectiveDateTime": "1974-01-24T19:33:18-04:00", "issued": "1974-01-24T19:33:18.715-04:00", "performer": [ { "reference": "Practitioner/17e774bb850-6b7b7f50-ed52-4523-a3a8-60fb0ef71c5b", "display": "Dr. Blossom971 Christiansen251" }, { "reference": "Practitioner/17e774bb850-6b7b7f50-ed52-4523-a3a8-60fb0ef71c5b" }, { "reference": "Organization/17e774dca91-e7e4e9e3-390e-4c10-83ae-88beabc176e2" } ], "presentedForm": [ { "contentType": "text/plain", "data": "CjE5NzQtMDEtMjQKCiMgQ2hpZWYgQ29tcGxhaW50Ci0gRGVjcmVhc2VkIGluIEp1ZGdlbWVudAotIENvbmZ1c2lvbgotIE5hc2FsIENvbmdlc3Rpb24KLSBTbmVlemluZyBGaXRzCi0gTmFzYWwgRGlzY2hhcmdlCi0gQ291Z2gKCgojIEhpc3Rvcnkgb2YgUHJlc2VudCBJbGxuZXNzCkR1c3RpbjMxIGlzIGEgMzMgeWVhci1vbGQgbm9uLWhpc3BhbmljIHdoaXRlIG1hbGUuIFBhdGllbnQgaGFzIGEgaGlzdG9yeSBvZiBhY3V0ZSBhbGxlcmdpYyByZWFjdGlvbiwgYWN1dGUgYnJvbmNoaXRpcyAoZGlzb3JkZXIpLCBsYWNlcmF0aW9uIG9mIHRoaWdoLCBvdGl0aXMgbWVkaWEsIHZpcmFsIHNpbnVzaXRpcyAoZGlzb3JkZXIpLCBzcHJhaW4gb2YgYW5rbGUsIGZpcnN0IGRlZ3JlZSBidXJuLCBmcmFjdHVyZSBvZiBhbmtsZSwgY2hpbGRob29kIGFzdGhtYS4KCiMgU29jaWFsIEhpc3RvcnkKUGF0aWVudCBpcyBtYXJyaWVkLiBQYXRpZW50IGlzIHRlbXBvcmFyaWx5IGhvbWVsZXNzLiBQYXRpZW50IGlzIGFuIGFjdGl2ZSBzbW9rZXIgYW5kIGlzIGFuIGFsY29ob2xpYy4gUGF0aWVudCBpZGVudGlmaWVzIGFzIGhldGVyb3NleHVhbC4KClBhdGllbnQgY29tZXMgZnJvbSBhIG1pZGRsZSBzb2Npb2Vjb25vbWljIGJhY2tncm91bmQuIFBhdGllbnQgZGlkIG5vdCBmaW5pc2ggaGlnaCBzY2hvb2wuIFBhdGllbnQgY3VycmVudGx5IGhhcyBBZXRuYS4KCiMgQWxsZXJnaWVzCmxhdGV4IGFsbGVyZ3ksIGFsbGVyZ3kgdG8gc295YQoKIyBNZWRpY2F0aW9ucwphY2V0YW1pbm9waGVuIDMyNSBtZyBvcmFsIHRhYmxldDsgMTIwIGFjdHVhdCBmbHV0aWNhc29uZSBwcm9waW9uYXRlIDAuMDQ0IG1nL2FjdHVhdCBtZXRlcmVkIGRvc2UgaW5oYWxlcjsgbmRhMDIwNTAzIDIwMCBhY3R1YXQgYWxidXRlcm9sIDAuMDkgbWcvYWN0dWF0IG1ldGVyZWQgZG9zZSBpbmhhbGVyOyBwcmVkbmlzb25lIDUgbWcgb3JhbCB0YWJsZXQ7IGFzcGlyaW4gODEgbWcgb3JhbCB0YWJsZXQKCiMgQXNzZXNzbWVudCBhbmQgUGxhbgoKCiMjIFBsYW4KUGF0aWVudCB3YXMgZ2l2ZW4gdGhlIGZvbGxvd2luZyBpbW11bml6YXRpb25zOiBpbmZsdWVuemEsIHNlYXNvbmFsLCBpbmplY3RhYmxlLCBwcmVzZXJ2YXRpdmUgZnJlZS4gClRoZSBmb2xsb3dpbmcgcHJvY2VkdXJlcyB3ZXJlIGNvbmR1Y3RlZDoKLSBtZWRpY2F0aW9uIHJlY29uY2lsaWF0aW9uIChwcm9jZWR1cmUpClRoZSBwYXRpZW50IHdhcyBwcmVzY3JpYmVkIHRoZSBmb2xsb3dpbmcgbWVkaWNhdGlvbnM6Ci0gMTIwIGFjdHVhdCBmbHV0aWNhc29uZSBwcm9waW9uYXRlIDAuMDQ0IG1nL2FjdHVhdCBtZXRlcmVkIGRvc2UgaW5oYWxlcgotIG5kYTAyMDUwMyAyMDAgYWN0dWF0IGFsYnV0ZXJvbCAwLjA5IG1nL2FjdHVhdCBtZXRlcmVkIGRvc2UgaW5oYWxlcgo=" } ] }, "search": { "mode": "match", "score": 1 } } ] }
Request: Laboratory Result Observation
Search Parameters
patient : GET [Base_URL]/DiagnosticReport?patient=[id]
patient + code : GET [Base_URL]/DiagnosticReport?patient=[id]&code={system|}[code]
patient + category: GET [Base_URL]/DiagnosticReport?patient=[id]&category=LAB
e.g.
https://[Base_URL]/DiagnosticReport?category=http://terminology.hl7.org/CodeSystem/v2-0074%7CLAB&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
https://[Base_URL]/DiagnosticReport?category=LAB&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
https://[Base_URL]/DiagnosticReport?category=LAB&patient=Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
Category and codes details can be obtained from US Core DiagnosticReport Profile for Laboratory Results Reporting.
Response
Each resource returned from the first search is expected to conform to the US Core DiagnosticReport Profile for Laboratory Results Reporting
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "019290b1-c4e1-4025-862c-60ffc3a6160b", "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/DiagnosticReport?_count=10&category=http://terminology.hl7.org/CodeSystem/v2-0074%7CLAB&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e7b7b7e66-36f4cf84-3482-4e36-8cca-13cc832b3bed", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/DiagnosticReport/17e7b7b7e66-36f4cf84-3482-4e36-8cca-13cc832b3bed", "resource": { "resourceType": "DiagnosticReport", "id": "17e7b7b7e66-36f4cf84-3482-4e36-8cca-13cc832b3bed", "meta": { "versionId": "1", "lastUpdated": "2022-01-21T07:13:17.926Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0074", "code": "LAB", "display": "Laboratory" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "51990-0", "display": "Basic Metabolic Panel" } ], "text": "Basic Metabolic Panel" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectiveDateTime": "2017-09-28T19:33:18-04:00", "issued": "2017-09-28T19:33:18.715-04:00", "performer": [ { "reference": "Organization/17e774dca91-e7e4e9e3-390e-4c10-83ae-88beabc176e2", "display": "PCP170967" }, { "reference": "Practitioner/17e774bb850-6b7b7f50-ed52-4523-a3a8-60fb0ef71c5b" }, { "reference": "Organization/17e774dca91-e7e4e9e3-390e-4c10-83ae-88beabc176e2" } ], "result": [ { "reference": "Observation/17e77809e90-d5cfd26d-ab5d-4f36-bc32-1ee799b2c278", "display": "Glucose" }, { "reference": "Observation/17e7785ea69-6c9f88d9-0553-4216-be17-f908ebe0b371", "display": "Urea Nitrogen" } ] }, "search": { "mode": "match", "score": 1 } } ] }
Request: GOAL
GET https://[Base_URL]/Goal?patient=[id]
e.g. https://[Base_URL]/Goal?patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
Response
Each resource returned from the first search is expected to conform to the US Core Goal Profile
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "6f2db230-b4f4-4447-856b-3f398377a95f", "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Goal?_count=10&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e7b8b62f8-a4f77df6-b97e-4ece-82ff-36480c9cc38c", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Goal/17e7b8b62f8-a4f77df6-b97e-4ece-82ff-36480c9cc38c", "resource": { "resourceType": "Goal", "id": "17e7b8b62f8-a4f77df6-b97e-4ece-82ff-36480c9cc38c", "meta": { "versionId": "1", "lastUpdated": "2022-01-21T07:30:39.48Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal" ] }, "lifecycleStatus": "active", "description": { "coding": [ { "system": "http://snomed.info/sct", "code": "281004", "display": "Alcoholic dementia" } ], "text": "Alcoholic dementia" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "target": [ { "dueDate": "2020-12-07" } ] }, "search": { "mode": "match", "score": 1 } } ] }
Request: Immunization
GET https://[Base_URL]/Immunization?patient=[id]
e.g. https://[Base_URL]/ Immunization?patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
Response
Each resource returned from the first search is expected to conform to the US Core Immunization Profile
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "206f31dc-9636-4e6f-a652-40c307eebe40", "type": "searchset", "total": 2, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Immunization?_count=10&patient=Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e7b8dc9ab-8abc85e3-0ab1-470f-aee8-1f4e9a3597bb", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Immunization/17e7b8dc9ab-8abc85e3-0ab1-470f-aee8-1f4e9a3597bb", "resource": { "resourceType": "Immunization", "id": "17e7b8dc9ab-8abc85e3-0ab1-470f-aee8-1f4e9a3597bb", "meta": { "versionId": "1", "lastUpdated": "2022-01-21T07:33:16.843Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization" ] }, "status": "not-done", "statusReason": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v3-ActReason", "code": "OSTOCK", "display": "product out of stock" } ], "text": "product out of stock" }, "vaccineCode": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason", "code": "unknown", "display": "Unknown" } ], "text": "Unknown" }, "patient": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "occurrenceString": "1946-08-29T19:33:18-04:00", "primarySource": true, "location": { "reference": "Location/17e7750e68f-6266aec8-0cd3-443e-adb9-be37f3bf25f2", "display": "RIVER BEND MEDICAL GROUP - CHICOPEE OFFICE - URGENT CARE" } }, "search": { "mode": "match", "score": 1 } }, { "id": "17eb02c0f47-3b8a6c05-ae47-4002-9001-fd61626bfca5", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Immunization/17eb02c0f47-3b8a6c05-ae47-4002-9001-fd61626bfca5", "resource": { "resourceType": "Immunization", "id": "17eb02c0f47-3b8a6c05-ae47-4002-9001-fd61626bfca5", "meta": { "versionId": "1", "lastUpdated": "2022-01-31T12:46:24.583Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization" ] }, "status": "not-done", "statusReason": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v3-ActReason", "code": "OSTOCK", "display": "product out of stock" } ], "text": "product out of stock" }, "vaccineCode": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason", "code": "unknown", "display": "Unknown" } ], "text": "Unknown" }, "patient": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "occurrenceString": "1946-08-29T19:33:18-04:00", "primarySource": true, "location": { "reference": "Location/17e7750e68f-6266aec8-0cd3-443e-adb9-be37f3bf25f2", "display": "RIVER BEND MEDICAL GROUP - CHICOPEE OFFICE - URGENT CARE" } }, "search": { "mode": "match", "score": 1 } } ] }
Request: Medication
GET https://[Base_URL]/MedicationRequest?patient=[id]
e.g. https://[Base_URL]/MedicationRequest?patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b &intent=order&status=active
Response
Each resource returned from the first search is expected to conform to the US Core Medication Profile, US Core MedicationRequest Profile
Code: 200 (Success)
{ "resourceType": "MedicationRequest", "id": "17e7b9b263e-9cd8f64f-f7e1-447e-8583-a753342d13c6", "meta": { "versionId": "1", "lastUpdated": "2022-01-21T07:47:52.51Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest" ] }, "status": "stopped", "intent": "plan", "reportedBoolean": true, "medicationCodeableConcept": { "coding": [ { "system": "http://www.nlm.nih.gov/research/umls/rxnorm", "code": "2123111", "display": "NDA020503 200 ACTUAT Albuterol 0.09 MG/ACTUAT Metered Dose Inhaler" } ], "text": "NDA020503 200 ACTUAT Albuterol 0.09 MG/ACTUAT Metered Dose Inhaler" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "authoredOn": "2020-08-13T19:33:18-04:00", "requester": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "reasonReference": [ { "reference": "Condition/17e7777ce8c-c66752fb-ee1b-40c2-ba5a-2e6ee89b3e1a" } ], "dosageInstruction": [ { "sequence": 1, "text": "Take as needed.", "asNeededBoolean": true } ] }
Request: Smoking Status
GET https://[Base_URL]/Observation?code=72166-2&patient=[id]
e.g. https://[Base_URL]/Observation?code=72166-2&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
Response
Each resource returned from the first search is expected to conform to the US Core Smoking Status Observation Profile
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "2ea85043-b450-40f1-8d2d-751af1c10abb", "type": "searchset", "total": 2, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation?_count=10&code=72166-2&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e77809e90-d5cfd26d-ab5d-4f36-bc32-1ee799b2c278", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation/17e77809e90-d5cfd26d-ab5d-4f36-bc32-1ee799b2c278", "resource": { "resourceType": "Observation", "id": "17e77809e90-d5cfd26d-ab5d-4f36-bc32-1ee799b2c278", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T12:40:24.976Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "survey", "display": "survey" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "72166-2", "display": "Tobacco smoking status NHIS" } ], "text": "Tobacco smoking status NHIS" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectivePeriod": { "start": "1940-09-05T19:33:18-04:00", "end": "1940-09-05T20:33:18-04:00" }, "issued": "1940-09-05T19:33:18.715-04:00", "valueCodeableConcept": { "coding": [ { "system": "http://snomed.info/sct", "code": "266919005", "display": "Never smoker" } ], "text": "Never smoker" } }, "search": { "mode": "match", "score": 1 } }, { "id": "17e7785ea69-6c9f88d9-0553-4216-be17-f908ebe0b371", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation/17e7785ea69-6c9f88d9-0553-4216-be17-f908ebe0b371", "resource": { "resourceType": "Observation", "id": "17e7785ea69-6c9f88d9-0553-4216-be17-f908ebe0b371", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T12:46:12.073Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "survey", "display": "survey" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "72166-2", "display": "Tobacco smoking status NHIS" } ], "text": "Tobacco smoking status NHIS" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectivePeriod": { "start": "1940-09-05T19:33:18-04:00", "end": "1940-09-05T20:33:18-04:00" }, "issued": "1940-09-05T19:33:18.715-04:00", "valueCodeableConcept": { "coding": [ { "system": "http://snomed.info/sct", "code": "266919005", "display": "Never smoker" } ], "text": "Never smoker" } }, "search": { "mode": "match", "score": 1 } } ] }
Request: Procedure
GET https://[Base_URL]/Procedure?patient=[id]
e.g. https://[Base_URL]/Procedure?patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
Response
Each resource returned from the first search is expected to conform to the US Core Procedure Profile
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "ed4425dd-7479-4b52-b404-502697281ee0", "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Procedure?_count=10&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e7ba24dee-bf67ef6b-6419-4c7c-b905-a107b26bf8fb", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Procedure/17e7ba24dee-bf67ef6b-6419-4c7c-b905-a107b26bf8fb", "resource": { "resourceType": "Procedure", "id": "17e7ba24dee-bf67ef6b-6419-4c7c-b905-a107b26bf8fb", "meta": { "versionId": "1", "lastUpdated": "2022-01-21T07:55:41.422Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure" ] }, "status": "completed", "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "430193006", "display": "Medication Reconciliation (procedure)" } ], "text": "Medication Reconciliation (procedure)" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "performedDateTime": "1941-02-13T18:33:18-05:00", "location": { "reference": "Location/17e7750e68f-6266aec8-0cd3-443e-adb9-be37f3bf25f2", "display": "PCP170967" } }, "search": { "mode": "match", "score": 1 } } ] }
Request: Provenance
GET https://[Base_URL]/Provenance/[id]
e.g.
https://[Base_URL]/ /Provenance/17e8adbdd12-21675728-3f52-4320-8b3b-d5977915336c
Response
Each resource returned from the first search is expected to conform to the US Core Provenance Profile
Code: 200 (Success)
{ "resourceType": "Provenance", "id": "17e8adbdd12-21675728-3f52-4320-8b3b-d5977915336c", "meta": { "versionId": "5", "lastUpdated": "2022-01-31T12:51:12.934Z", "profile": [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance" ] }, "target": [ { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, { "reference": "Location/17e7750e68f-6266aec8-0cd3-443e-adb9-be37f3bf25f2" }, { "reference": "Organization/17e774dca91-e7e4e9e3-390e-4c10-83ae-88beabc176e2" }, { "reference": "Practitioner/17e774bb850-6b7b7f50-ed52-4523-a3a8-60fb0ef71c5b" }, { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, { "reference": "AllergyIntolerance/17e7758c319-7955ecfe-94da-4071-8488-4ef21425ed85" }, { "reference": "CareTeam/17e775e7546-36e6a4cd-264e-4a94-92fa-cdf1b2fa30c1" }, { "reference": "CarePlan/17e776e13ff-1ea7505d-f475-4f49-adde-30e69df86734" }, { "reference": "Condition/17e7777ce8c-c66752fb-ee1b-40c2-ba5a-2e6ee89b3e1a" }, { "reference": "Condition/17eb029f925-40603327-0ac3-48dd-972b-6c882b8751f5" }, { "reference": "Device/17e777b3f34-04bc3627-92d3-43bb-92e7-35533110f750" }, { "reference": "Observation/17e77809e90-d5cfd26d-ab5d-4f36-bc32-1ee799b2c278" }, { "reference": "Observation/17e7785ea69-6c9f88d9-0553-4216-be17-f908ebe0b371" }, { "reference": "Observation/17e778a9113-66c19e50-1b3f-41fd-a4da-ef86393fb0b2" }, { "reference": "Observation/17e778d42db-92528d6f-7103-40fb-99ca-b2ac8837210d" }, { "reference": "Observation/17e7791dd19-11eaf5c1-a5c0-429c-9867-f3110c743572" }, { "reference": "Observation/17e77947034-7677a2e6-33af-4e06-83ae-a6727ac79885" }, { "reference": "Observation/17e7797685b-e707227d-0cb5-4b28-bab2-ca1f4a1ba111" }, { "reference": "Observation/17e7799a564-8f9ed437-d396-46bf-8f68-bf728955654c" }, { "reference": "Observation/17e779bc672-37c76705-1f73-4531-bfcb-ee3cd3e25bfd" }, { "reference": "Observation/17e77a065f3-77947ea0-1b53-47a5-9a9e-10f6e169f292" }, { "reference": "Observation/17e77a29d41-85ec6814-a99a-4a73-ae02-f6a494a11468" }, { "reference": "Observation/17e77a53c30-b356fe0d-d90b-42ed-91f9-5ed08c8047ca" }, { "reference": "Observation/17e7c606d8a-9aeab44c-0261-465d-8930-4a218b201bf5" }, { "reference": "DiagnosticReport/17e7b6e6f1c-119e9b8b-11b9-448b-b760-dc116013b654" }, { "reference": "DiagnosticReport/17e7b741f29-4b6b813d-d11e-4597-8178-5bc5996ac4e4" }, { "reference": "DiagnosticReport/17e7b7b7e66-36f4cf84-3482-4e36-8cca-13cc832b3bed" }, { "reference": "DiagnosticReport/17e7d0e6d1d-c0e0136b-81d4-4164-a8b8-863694276a4f" }, { "reference": "DocumentReference/17e7b838c61-4be99b80-0f94-4b26-a086-a30ed78c91ce" }, { "reference": "DocumentReference/17e7d144d28-7d79ed3e-ca9e-400d-a9ed-add23f5cef07" }, { "reference": "DocumentReference/17e7d19866c-dbbaa2e9-4d81-44bb-af5d-ec2e829e9c72" }, { "reference": "DocumentReference/17e7d1c49cd-bfb30b25-9f98-40c7-9d94-977b7b803f21" }, { "reference": "DocumentReference/17e7d24c947-205cd8e5-3a93-4ab9-8662-5e92b0080af7" }, { "reference": "Goal/17e7b8b62f8-a4f77df6-b97e-4ece-82ff-36480c9cc38c" }, { "reference": "Immunization/17e7b8dc9ab-8abc85e3-0ab1-470f-aee8-1f4e9a3597bb" }, { "reference": "Immunization/17eb02c0f47-3b8a6c05-ae47-4002-9001-fd61626bfca5" }, { "reference": "Medication/17e7b8f47d0-2bf2943a-123e-4725-b5dd-f5200df6c3a2" }, { "reference": "MedicationRequest/17e7b94dd8d-d3b0e43a-de55-4822-8bb5-07e5fd6177d9" }, { "reference": "MedicationRequest/17e7b990c43-4525f6a4-81a0-40f7-97c7-7dbebff6e34b" }, { "reference": "MedicationRequest/17e7b9b263e-9cd8f64f-f7e1-447e-8583-a753342d13c6" }, { "reference": "MedicationRequest/17e7ba05cb1-0a5defbd-deb9-4792-9952-8f7f0e5bc74b" }, { "reference": "Procedure/17e7ba24dee-bf67ef6b-6419-4c7c-b905-a107b26bf8fb" }, { "reference": "Observation/17e81e97c4b-ea761488-0b67-43d0-a0d7-346dea549bee" }, { "reference": "Observation/17e81ebac04-75d9f0f2-fcb2-4e2f-9c22-87fb7ddf5f5e" }, { "reference": "Observation/17e81ed9c56-bcda0427-df92-4b58-b3ae-ac11c22f4d7d" }, { "reference": "Observation/17e81ef5b5e-40df3e7d-19bc-4c2a-94bc-9a04ff93537c" }, { "reference": "Observation/17e81f0fd34-6fc95b32-8346-4aec-9de3-072d12c992a5" }, { "reference": "Observation/17e81f291e7-c99c91ac-57dd-47f6-b7f7-a365d2c087d7" }, { "reference": "Observation/17e81f4a61d-ff3926f2-e35b-466a-bb6c-62a061425258" }, { "reference": "Observation/17e8501692e-8c2d145f-fb69-4ae3-85d1-ef31ebf4a6a2" }, { "reference": "Observation/17e8502f180-3c7e4770-3630-4654-922a-3f802c2939b1" } ], "recorded": "2020-12-10T18:33:18.715-05:00", "agent": [ { "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type", "code": "author", "display": "Author" } ], "text": "Author" }, "who": { "reference": "Practitioner/17e774bb850-6b7b7f50-ed52-4523-a3a8-60fb0ef71c5b", "display": "Dr. Blossom971 Christiansen251" }, "onBehalfOf": { "reference": "Organization/17e774dca91-e7e4e9e3-390e-4c10-83ae-88beabc176e2", "display": "PCP170967" } }, { "type": { "coding": [ { "system": "http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type", "code": "transmitter", "display": "Transmitter" } ], "text": "Transmitter" }, "who": { "reference": "Practitioner/17e774bb850-6b7b7f50-ed52-4523-a3a8-60fb0ef71c5b", "display": "Dr. Blossom971 Christiansen251" }, "onBehalfOf": { "reference": "Organization/17e774dca91-e7e4e9e3-390e-4c10-83ae-88beabc176e2", "display": "PCP170967" } } ] }
Request: Vital Signs
patient + code: GET https://[Base_URL]/Observation?code=85354-9&patient=[id]
patient + category + date : GET https://[Base_URL]/Observation?category=vital-signs&date=[ leYYYY-MM-DD] &patient=[id]
e.g.
https://[Base_URL]/Observation?code=85354-9&patient=Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
https://[Base_URL]/Observation?code=85354-9&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b
Response
Each resource returned from the first search is expected to conform to the FHIR Core VitalSigns Profile
Code: 200 (Success)
{ "resourceType": "Bundle", "id": "231df7ad-8e46-4371-99cc-4ce0dc9c5cb0", "type": "searchset", "total": 6, "link": [ { "relation": "self", "url": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation?_count=10&category=vital-signs&date=gt1994-05-18T19:33:18-04:00&patient=17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b&_page=1" } ], "entry": [ { "id": "17e7797685b-e707227d-0cb5-4b28-bab2-ca1f4a1ba111", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation/17e7797685b-e707227d-0cb5-4b28-bab2-ca1f4a1ba111", "resource": { "resourceType": "Observation", "id": "17e7797685b-e707227d-0cb5-4b28-bab2-ca1f4a1ba111", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T13:05:18.427Z", "profile": [ "http://hl7.org/fhir/StructureDefinition/bodytemp", "http://hl7.org/fhir/StructureDefinition/vitalsigns" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs", "display": "vital-signs" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8310-5", "display": "Body temperature" }, { "system": "http://loinc.org", "code": "8331-1", "display": "Oral temperature" } ], "text": "Body temperature" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectiveDateTime": "2009-08-19T19:33:18-04:00", "issued": "2009-08-19T19:33:18.715-04:00", "valueQuantity": { "value": 37.799, "unit": "Cel", "system": "http://unitsofmeasure.org", "code": "Cel" } }, "search": { "mode": "match", "score": 1 } }, { "id": "17e7799a564-8f9ed437-d396-46bf-8f68-bf728955654c", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation/17e7799a564-8f9ed437-d396-46bf-8f68-bf728955654c", "resource": { "resourceType": "Observation", "id": "17e7799a564-8f9ed437-d396-46bf-8f68-bf728955654c", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T13:07:45.124Z", "profile": [ "http://hl7.org/fhir/StructureDefinition/bp", "http://hl7.org/fhir/StructureDefinition/vitalsigns" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs", "display": "vital-signs" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "85354-9", "display": "Blood Pressure" } ], "text": "Blood Pressure" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectiveDateTime": "1994-05-19T19:33:18-04:00", "issued": "1994-05-19T19:33:18.715-04:00", "component": [ { "code": { "coding": [ { "system": "http://loinc.org", "code": "8462-4", "display": "Diastolic Blood Pressure" } ], "text": "Diastolic Blood Pressure" }, "valueQuantity": { "value": 85, "unit": "mm[Hg]", "system": "http://unitsofmeasure.org", "code": "mm[Hg]" } }, { "code": { "coding": [ { "system": "http://loinc.org", "code": "8480-6", "display": "Systolic Blood Pressure" } ], "text": "Systolic Blood Pressure" }, "valueQuantity": { "value": 129, "unit": "mm[Hg]", "system": "http://unitsofmeasure.org", "code": "mm[Hg]" } } ] }, "search": { "mode": "match", "score": 1 } }, { "id": "17e77a29d41-85ec6814-a99a-4a73-ae02-f6a494a11468", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation/17e77a29d41-85ec6814-a99a-4a73-ae02-f6a494a11468", "resource": { "resourceType": "Observation", "id": "17e77a29d41-85ec6814-a99a-4a73-ae02-f6a494a11468", "meta": { "versionId": "1", "lastUpdated": "2022-01-20T13:17:32.865Z", "profile": [ "http://hl7.org/fhir/StructureDefinition/heartrate", "http://hl7.org/fhir/StructureDefinition/vitalsigns" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs", "display": "vital-signs" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ], "text": "Heart rate" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectiveDateTime": "2003-07-10T19:33:18-04:00", "issued": "2003-07-10T19:33:18.715-04:00", "valueQuantity": { "value": 65, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min" } }, "search": { "mode": "match", "score": 1 } }, { "id": "17e81ef5b5e-40df3e7d-19bc-4c2a-94bc-9a04ff93537c", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation/17e81ef5b5e-40df3e7d-19bc-4c2a-94bc-9a04ff93537c", "resource": { "resourceType": "Observation", "id": "17e81ef5b5e-40df3e7d-19bc-4c2a-94bc-9a04ff93537c", "meta": { "versionId": "1", "lastUpdated": "2022-01-22T13:17:34.43Z", "source": "#iLFSV7OLv0KF8dmQ", "profile": [ "http://hl7.org/fhir/StructureDefinition/vitalsigns", "http://hl7.org/fhir/StructureDefinition/bodytemp" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs", "display": "vital-signs" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8310-5", "display": "Body temperature" }, { "system": "http://loinc.org", "code": "8331-1", "display": "Oral temperature" } ], "text": "Body temperature" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectiveDateTime": "2009-08-19T19:33:18-04:00", "issued": "2009-08-19T19:33:18.715-04:00", "dataAbsentReason": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason", "code": "unknown", "display": "Unknown" } ], "text": "Unknown" } }, "search": { "mode": "match", "score": 1 } }, { "id": "17e81f0fd34-6fc95b32-8346-4aec-9de3-072d12c992a5", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation/17e81f0fd34-6fc95b32-8346-4aec-9de3-072d12c992a5", "resource": { "resourceType": "Observation", "id": "17e81f0fd34-6fc95b32-8346-4aec-9de3-072d12c992a5", "meta": { "versionId": "1", "lastUpdated": "2022-01-22T13:19:21.396Z", "source": "#iLFSV7OLv0KF8dmQ", "profile": [ "http://hl7.org/fhir/StructureDefinition/vitalsigns", "http://hl7.org/fhir/StructureDefinition/bp" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs", "display": "vital-signs" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "85354-9", "display": "Blood Pressure" } ], "text": "Blood Pressure" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectiveDateTime": "1994-05-19T19:33:18-04:00", "issued": "1994-05-19T19:33:18.715-04:00", "dataAbsentReason": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason", "code": "unknown", "display": "Unknown" } ], "text": "Unknown" }, "component": [ { "code": { "coding": [ { "system": "http://loinc.org", "code": "8462-4", "display": "Diastolic Blood Pressure" } ], "text": "Diastolic Blood Pressure" }, "dataAbsentReason": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason", "code": "unknown", "display": "Unknown" } ], "text": "Unknown" } }, { "code": { "coding": [ { "system": "http://loinc.org", "code": "8480-6", "display": "Systolic Blood Pressure" } ], "text": "Systolic Blood Pressure" }, "dataAbsentReason": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason", "code": "unknown", "display": "Unknown" } ], "text": "Unknown" } } ] }, "search": { "mode": "match", "score": 1 } }, { "id": "17e8502f180-3c7e4770-3630-4654-922a-3f802c2939b1", "fullUrl": "https://fhir.preprod.practicesuite.com:9443/fhir-server/api/v4/Observation/17e8502f180-3c7e4770-3630-4654-922a-3f802c2939b1", "resource": { "resourceType": "Observation", "id": "17e8502f180-3c7e4770-3630-4654-922a-3f802c2939b1", "meta": { "versionId": "1", "lastUpdated": "2022-01-23T03:37:49.696Z", "source": "#iLFSV7OLv0KF8dmQ", "profile": [ "http://hl7.org/fhir/StructureDefinition/vitalsigns", "http://hl7.org/fhir/StructureDefinition/heartrate" ] }, "status": "final", "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs", "display": "vital-signs" } ] } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ], "text": "Heart rate" }, "subject": { "reference": "Patient/17e77411359-8837d878-ea1e-45b5-bb89-882fdfb2be4b" }, "encounter": { "reference": "Encounter/17e77566282-0c9c236b-f0bd-45e0-9c61-80991a376967" }, "effectiveDateTime": "2003-07-10T19:33:18-04:00", "issued": "2003-07-10T19:33:18.715-04:00", "dataAbsentReason": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/data-absent-reason", "code": "unknown", "display": "Unknown" } ], "text": "Unknown" } }, "search": { "mode": "match", "score": 1 } } ] }
Request: Complete Patient Summary (CCDA)
This can be achieved in 3 steps
- Search Patient
- Search Encounters
- Get Document
Search Patient
GET: https://oauth.prodprod.practicesuite.com/api/Patient?name=alice&birthdate=&gender=
e.g. https://[Base_URL]/ Patient?name=alice&birthdate=01011978&gender=M
Response
{ "isSuccess": true, "errormessage": "", "outputobject": [ { "fhirServerPatientID": "", "patientID": "10010", "mrn": "1", "firstName": "Alice", "lastName": "Newman", "doB": "1970-05-01", "gender": "F", "organizationId": "0", "facilityId": "" }, { "fhirServerPatientID": "", "patientID": "10010", "mrn": "10010", "firstName": "Alice", "lastName": "Newman", "doB": "1970-05-01", "gender": "F", "organizationId": "0", "facilityId": "" } ] }
Code: 200 (Success)
Search Encounter
Patientid obtained in search patient call will be used in search encounter along with the date filter for encounters
GET: https://oauth.prodprod.practicesuite.com/api/Encounter?patientid=10012&datefrom=yyyy-mm-dd&dateto=yyyy-mm-dd
Response
{ "isSuccess": true, "errormessage": "", "outputobject": [ { "patientID": "10012", "encounterDateTime": "2020-06-22 00:00", "description": "CCDA for Happy Kid.", "uniqID": "62d5ac6b-13db-11ed-996c-12a130ab5559", "encounterID": "58e1d8db-23a9-4471-bd27-3791a06fd425", "physicianName": "Dr. Albert Davis", "patientName": "HappyKid" }, { "patientID": "10012", "encounterDateTime": "2022-08-05 10:17", "description": "CCDA", "uniqID": "c310e94a-14d0-11ed-9751-12a130ab5559", "encounterID": "1", "physicianName": "Provider", "patientName": "HappyKid" }, { "patientID": "10012", "encounterDateTime": "2022-08-05 10:25", "description": "CCDA", "uniqID": "e1677fc0-14d2-11ed-9751-12a130ab5559", "encounterID": "20200622000033", "physicianName": "Provider", "patientName": "HappyKid" } ] }
Code: 200 (Success)
Get Document
The encounter if obtained in the call above is used as documented to get CCDA file of that encounter which will cover USCDI V1 elements as mentioned below.
- Patient Demographics/Information
- Allergies and Intolerances
- Immunizations
- Procedures
- Assessment and Plan of Treatment
- Laboratory (Test)
- Provenance
- Care Team Members
- Medications
- Smoking Status
- Clinical Notes
- Unique Device Identifier(s) for a Patient’s Implantable Device(s)
- Goals
- Problems
- Vital Signs
- Health Concerns
GET: https://oauth.prodprod.practicesuite.com/api/Document?documentid=1
Response: Outputobject contains Base64 encoded CCDA file.
Output:
{ "isSuccess": true, "errormessage": "", "outputobject": " PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxDbGluaWNhbERvY3VtZW50IHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnNkdGM9InVybjpobDctb3JnOnNkdGMiIG1vb2RDb2RlPSJFVk4iIHhtbG5zPSJ1cm46aGw3LW9yZzp2MyI+DQogIDxyZWFsbUNvZGUgY29kZT0iVVMiIC8+DQogIDx0eXBlSWQgcm9vdD0iMi4xNi44NDAuMS4xMTM4ODMuMS4zIiBleHRlbnNpb249IlBPQ0RfSEQwMDAwNDAiIC8+DQogIDx0ZW1wbGF0ZUlkIHJvb3Q9IjIuMTYuODQwLjEuMTEzODgzLjEwLjIwLjIyLjEuMSIgLz4NCiAgPHRlbXBsYXRlSWQgcm9vdD0iMi4xNi44NDAuMS4xMTM4ODMuMTAuMjAuMjIuMS4yIiAvPg0KICA8dGVtcGxhdGVJZCByb290PSIyLjE2Ljg0MC4xLjExMzg4My4xMC4yMC4yMi4xLjEiIGV4dGVuc2lvbj0iMjAxNS0wOC0wMSIgLz4NCiAgPHRlbXBsYXRlSWQgcm9vdD0iMi4xNi44NDAuMS4xMTM4ODMuMTAuMjAuMjIuMS4yIiBleHRlbnNpb249IjIwMTUtMDgtMDEiIC8+DQogIDxpZCByb290PSIyLjE2Ljg0MC4xLjExMzg4My4xOSIgZXh0ZW5zaW9uPSJDbGluaWNhbFN1bW1hcnkiIGFzc2lnbmluZ0F1dGhvcml0eU5hbWU9IkNyeXN0YWwgUHJhY3RpY2UgTWFuYWdlbWVudCIgLz4NCiAgPGNvZGUgY29kZT0iMzQxMzMtOSIgY29kZVN5c3RlbT0iMi4xNi44NDAuMS4xMTM4ODMuNi4xIiBjb2RlU3lzdGVtTmFtZT0iTE9JTkMiIGRpc3BsYXlOYW1lPSJTdW1tYXJpemF0aW9uIG9mIEVwaXNvZGUgTm90ZSIgLz4NCiAgPHRpdGxlPkhlYWx0aGNhcmUgUHJvdmlkZXIgUGF0aWVudCBTdW1tYXJ5PC90aXRsZT4NCiAgPGVmZmVjdGl2ZVRpbWUgdmFsdWU9IjIwMjIwODA1MTAxNzQ3IiAvPg0KICA8Y29uZmlkZW50aWFsaXR5Q29kZSBjb2RlPSJOIiBjb2RlU3lzdGVtPSIyLjE2Ljg0MC4xLjExMzg4My41LjI1IiAvPg0KICA8bGFuZ3VhZ2VDb2RlIGNvZGU9ImVuLVVTIiAvPg0KICA8cmVjb3JkVGFyZ2V0IHR5cGVDb2RlPSJSQ1QiIGNvbnRleHRDb250cm9sQ29kZT0iT1AiPg0KICAgIDxwYXRpZW50Um9sZSBjbGFzc0NvZGU9IlBBVCI+aXR5PkJlYXZlcnRvbjwvY2l0eT4NCiAgICAgICAgPHN0YXRlPk9SPC9zdGF0ZT4NCiAgICAgICAgPHBvc3RhbENvZGU+OTcwMDY8L3Bvc3RhbENvZGU+DQogICAgICAgIDxjb3VudHJ5PlVOSVRFRCBTVEFURVM8L2NvdW50cnk+DQogICAgICAgIDx1c2VhYmxlUGVyaW9kIHhzaTp0eXBlPSJJVkxfVFMiIG51bGxGbGF2b3I9Ik5JIiAvPg0KICAgICAgPC9hZGRyPg0KICAgICAgPHRlbGVjb20gdmFsdWU9InRlbDorMSg1NTUpLTU1NS0xMDAyIiB1c2U9IldQIiAvPg0KICAgICAgPGFzc2lnbmVkUGVyc29uIGNsYXNzQ29kZT0iUFNOIiBkZXRlcm1pbmVyQ29kZT0iSU5TVEFOQ0UiPg0KICAgICAgICA8bmFtZSB1c2U9IkwiPg0KICAgICAgICAgIDxnaXZlbj5BbGJlcnQ8L2dpdmVuPg0KICAgICAgICAgIDxmYW1pbHk+RGF2aXM8L2ZhbWlseT4NCiAgICAgICAgPC9uYW1lPg0KICAgICAgPC9hc3NpZ25lZFBlcnNvbj4NCiAgICAgIDxyZXByZXNlbnRlZE9yZ2FuaXphdGlvbiBjbGFzc0NvZGU9Ik9SRyIgZGV0ZXJtaW5lckNvZGU9IklOU1RBTkNFIj4NCiAgICAgICAgPGlkIHJvb3Q9IjIuMTYuODQwLjEuMTEzODgzLjQuNiIgZXh0ZW5zaW9uPSIzMjA0ODcyNzU4IiBhc3NpZ25pbmdBdXRob3JpdHlOYW1lPSJOUEkiIC8+DQogICAgICAgIDxuYW1lPk5laWdoYm9yaG9vZCBQaHlzaWNpYW5zIFByYWN0aWNlPC9uYW1lPg0KICAgICAgICA8dGVsZWNvbSB2YWx1ZT0idGVsOisxKDU1NSktNTU1LTEwMDIiIHVzZT0iV1AiIC8+DQogICAgICAgIDxhZGRyIHVzZT0iV1AiIGlzTm90T3JkZXJlZD0iZmFsc2UiPg0KICAgICAgICAgIDxzdHJlZXRBZGRyZXNzTGluZT5UcmFjeSBEYXZpczwvc3RyZWV0QWRkcmVzc0xpbmU+DQogICAgICAgICAgPHN0cmVldEFkZHJlc3NMaW5lPjI0NzIsIFJvY2t5IHBsYWNlPC9zdHJlZXRBZGRyZXNzTGluZT4NCiAgICAgICAgICA8Y2l0eT5CZWF2ZXJ0b248L2NpdHk+DQogICAgICAgICAgPHN0YXRlPk9SPC9zdGF0ZT4NCiAgICAgICAgICA8cG9zdGFsQ29kZT45NzAwNjwvcG9zdGFsQ29kZT4NCiAgICAgICAgICA8Y291bnRyeT5VTklURUQgU1RBVEVTPC9jb3VudHJ5Pg0KICAgICAgICAgIDx1c2VhYmxlUGVyaW9kIHhzaTp0eXBlPSJJVkxfVFMiIG51bGxGbGF2b3I9Ik5JIiAvPg0KICAgICAgICA8L2FkZHI+DQogICAgICA8L3JlcHJlc2VudGVkT3JnYW5pemF0aW9uPg0KICAgIDwvYXNzaWduZWRBdXRob3I+DQogIDwvYXV0aG9yPg0KICA8ZGF0YUVudGVyZXIgdHlwZUNvZGU9IkVOVCIgY29udGV4dENvbnRyb2xDb2RlPSJPUCI+DQogICAgPGFzc2lnbmVkRW50aXR5IGNsYXNzQ29kZT0iQVNTSUdORUQiPg0KICAgICAgPHJlYWxtQ29kZSBudWxsRmxhdm9yPSJOSSIgLz4NCiAgICAgIDx0eXBlSWQgcm9vdD0iMi4xNi44NDAuMS4xMTM4ODMuMS4zIiBleHRlbnNpb249IlBPQ0RfTVQwMDAwNDBBc3NpZ25lZEVudGl0eSIgLz4NCiAgICAgIDx0ZW1wbGF0ZUlkIG51bGxGbGF2b3I9Ik5JIiAvPg0KICAgICAgPGlkIHJvb3Q9IjIuMTYuODQwLjEuMTEzODgzLjQuNiIgZXh0ZW5zaW9uPSIzMjA0ODcyNzU4IiBhc3NpZ25pbmdBdXRob3JpdHlOYW1lPSJOUEkiIC8+DQogICAgICA8Y29kZSBudWxsRmxhdm9yPSJOSSIgLz4NCiAgICAgIDxhZGRyIHVzZT0iV1AiIGlzTm90T3JkZXJlZD0iZmFsc2UiPg0KICAgICAgICA8c3RyZWV0QWRkcmVzc0xpbmU+VHJhY3kgRGF2aXM8L3N0cmVldEFkZHJlc3NMaW5lPg0KICAgICAgICA8c3RyZWV0QWRkcmVzc0xpbmU+MjQ3MiwgUm9ja3kgcGxhY2U8L3N0cmVldEFkZHJlc3NMaW5lPg0KICAgICAgICA8Y2l0eT5CZWF2ZXJ0b248L2NpdHk+DQogICAgICAgIDxzdGF0ZT5PUjwvc3RhdGU+DQogICAgICAgIDxwb3N0YWxDb2RlPjk3MDA2PC9wb3N0YWxDb2RlPg0KICAgICAgICA8Y291bnRyeT5VTklURUQgU1RBVEVTPC9jb3VudHJ5Pg0KICAgICAgICA8dXNlYWJsZVBlcmlvZCB4c2k6dHlwZT0iSVZMX1RTIiBudWxsRmxhdm9yPSJOSSIgLz4NCiAgICAgIDwvYWRkcj4NCiAgICAgIDx0ZWxlY29tIHZhbHVlPSJ0ZWw6KzE D4=" }
Code: 200 (Success)
Error Handling
Error | Description |
200 – OK | Everything worked as expected. |
401 – Unauthorized | No valid Bearer token provided. |
404 – Not Found | The requested resource doesn’t exist. |
5xx – Server Error | Something went wrong on FHIR Server side. |
OperationOutcome explains the error reported
Profile audience and scope
This profile is intended to be used by developers of apps that need to access user identity information or other FHIR resources by requesting authorization from OAuth 2.0 compliant authorization servers.
The profile defines a method through which an app requests authorization to access a FHIR resource, and then uses that authorization to retrieve the resource. Synchronization of patient context is not addressed; for use cases that require context synchronization (e.g., learning about when the in-context patient changes within an EHR session) In other words, if the patient chart is changed during the session, the application will not inherently be updated.
Security and Privacy Considerations
App Protection
The app is responsible for protecting itself from potential misbehaving or malicious values passed to its redirect URL (e.g., values injected with executable code, such as SQL) and for protecting authorization codes, access tokens, and refresh tokens from unauthorized access and use. The app developer must be aware of potential threats, such as malicious apps running on the same platform, counterfeit authorization servers, and counterfeit resource servers, and implement countermeasures to help protect both the app itself and any sensitive information it may hold. For background, see the OAuth 2.0 Threat Model and Security Considerations.
Specific requirements are:
- Apps SHALL ensure that sensitive information (authentication secrets, authorization codes, tokens) is transmitted ONLY to authenticated servers, over TLS-secured channels.
- Apps SHALL generate an unpredictable stateparameter for each user session; SHALL include state with all authorization requests; and SHALL validate the state value for any request sent to its redirect URL.
- An app SHALL NOT execute untrusted user-supplied inputs as code.
- App SHALL NOT forward values passed back to its redirect URL to any other arbitrary or user-provided URL (a practice known as an “open redirector”).
- An app SHALL NOT store bearer tokens in cookies that are transmitted as clear text.
- Apps SHOULD persist tokens and other sensitive data in app-specific storage locations only, and SHOULD NOT persist them in system-wide-discoverable locations.
Terms of Use
- TERMS ACCEPTANCE AND REPRESENTATION
- Accepting the Terms. These Terms of Use (“Terms”) govern your access to and use of the Certified PRACTICESUITE EHR API, documentation, services, etc. By accessing or using the Certified PRACTICESUITE APIs, you agree to be bound by these Terms. “Certified PRACTICESUITE EHR API” means the API provided by PRACTICESUITE to allow authorized access to query our Client(s) Electronic Health Record system. You represent and warrant that you are at least 18 years of age and that you possess the legal right and ability to agree to these Terms and to use the Certified PRACTICESUITE APIs in accordance with these Terms.
- Entity Representation. If you are using the Certified PRACTICESUITE API on behalf of a legal entity (i.e. a Clinical software services company), you represent that you have proper authority to act on behalf of and bind the entity to these Terms, and by accepting, you accept on behalf of the entity (and all references to “you” in the Terms refer to the entity).
- REPRESENTATIONS AND RESPONSIBILITIES
- Compliance. You agree to be financially responsible for your use of the Certified PRACTICESUITE EHR APIs and to comply with your responsibilities and obligations as stated in these Terms. You agree to comply at all times with all applicable laws, rules and regulations relating to the use of the Certified PRACTICESUITE EMR APIs. You hereby grant PRACTICESUITE the right to monitor and periodically audit in a reasonable manner your use of the Certified PRACTICESUITE APIs, your App and other activities related to your obligations under these Terms.
- Virus Warranty. You warrant that your Apps will not contain any viruses or other malicious computer instructions, devices, or techniques that can or were designed to threaten, infect, damage, disable, or shut down the PRACTICESUITE EHR APIs, any technology, software, solution, equipment or any computer system.
- GENERAL
- Changes. PRACTICESUITE may, in its sole and absolute discretion, make changes, modifications or updates to the Certified PRACTICESUITE EHR API (including without limitation changes to the capabilities and tech specs), without notice to you.
- Global Availability. PRACTICESUITE makes no representations that the Certified PRACTICESUITE EHR APIs are appropriate or available for use in locations outside of the United States, and access to them from such territories is at your own risk. Those who choose to access the Certified PRACTICESUITE APIs from locations outside of the United States do so at their own initiative and are responsible for compliance with applicable local laws.
- Intellectual Property Rights. You acknowledge and agree that the Certified PRACTICESUITE EHR APIs and PRACTICESUITE’s software, products and services are proprietary in nature, that PRACTICESUITE claims all intellectual property rights therein as well as in all modifications, enhancements and alterations thereto, and that PRACTICESUITE neither grants nor otherwise transfers any rights of ownership therein to you or any third party. No rights or licenses are granted by PRACTICESUITE other than those rights expressly granted in these Terms, and PRACTICESUITE reserves all rights not expressly granted.
- Waiver, Release and Limitation of Liability. You acknowledge and agree that neither PRACTICESUITE nor any of its affiliates will have any responsibility or liability with respect to your or any third party’s distribution, implementation, commercialization, use, or other form of exploitation of any app, software, solution, service or other technology created by you or another third party. As between you and PRACTICESUITE, you are solely responsible and liable for all representations, warranties, support and other obligations made by you to any third party related to any app, software, solution, service or other technology created by you, including claims arising from product liability, breach of warranty, and intellectual property infringement. YOU HEREBY RELEASE AND FOREVER WAIVE ANY AND ALL CLAIMS YOU MAY HAVE AGAINST PRACTICESUITE, ITS OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, INFORMATION PROVIDERS OR SUPPLIERS FOR LOSSES OR DAMAGES YOU SUSTAIN IN CONNECTION WITH YOUR USE OF THE CERTIFIED PRACTICESUITE EHR API AND ANY PRACTICESUITE WEBSITES. PRACTICESUITE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY, RELIABILITY, AVAILABILITY, TIMELINESS AND ACCURACY OF THE CERTIFIED PRACTICESUITE APIs OR OTHER INFORMATION, TECHNOLOGY, SOFTWARE, PRODUCTS AND SERVICES PROVIDED BY PRACTICESUITE FOR ANY PURPOSE. ALL SUCH TECHNOLOGY, INFORMATION, SOFTWARE, PRODUCTS AND SERVICES ARE PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND. PRACTICESUITE HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS WITH REGARD TO THE CERTIFIED PRACTICESUITE APIs, OTHER TECHNOLOGY, INFORMATION, SOFTWARE, SOLUTIONS, PRODUCTS AND SERVICES, INCLUDING ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. TO THE FULLEST EXTENT PERMITTED BY LAW, IN NO EVENT SHALL PRACTICESUITE, ITS OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, SPECIAL, CONSEQUENTIAL DAMAGES OR ANY OTHER DAMAGES WHATSOEVER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE, DATA OR PROFITS, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE ACCESS, USE OR PERFORMANCE OF THE CERTIFIED PRACTICESUITE APIs, WITH THE DELAY OR INABILITY TO USE THE CERTIFIED PRACTICESUITE EHR APIs OR RELATED TECHNOLOGY, SOFTWARE OR SERVICES, THE PROVISION OF OR FAILURE TO PROVIDE THE CERTIFIED PRACTICESUITE APIs, SOFTWARE OR SERVICES, OR FOR ANY INFORMATION, SOFTWARE, PRODUCTS AND SERVICES OBTAINED FROM PRACTICESUITE, OR OTHERWISE ARISING OUT OF THE USE OF THE CERTIFIED PRACTICESUITE APIs, WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF PRACTICESUITE HAS BEEN ADVISED OF THE POSSIBILITY OF DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU. IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE CERTIFIED CLINCMAX EHR APIs, OR WITH THESE TERMS OF USE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USING THE CERTIFIED PRACTICESUITE EHR APIs. NOTWITHSTANDING THE FOREGOING PARAGRAPH, THE TOTAL LIABILITY OF PRACTICESUITE, ITS OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, INFORMATION PROVIDERS AND SUPPLIERS, IF ANY, FOR LOSSES OR DAMAGES SHALL NOT EXCEED THE FEES PAID BY YOU FOR THE USE OF THE PARTICULAR TECHNOLOGY, SOFTWARE, PRODUCT, INFORMATION OR SERVICE PROVIDED BY PRACTICESUITE.
- Indemnification. YOU AGREE TO INDEMNIFY, DEFEND AND HOLD HARMLESS PRACTICESUITE, ITS OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, INFORMATION PROVIDERS AND SUPPLIERS FROM AND AGAINST ALL CLAIMS, LIABILITIES, LOSSES, EXPENSES, DAMAGES AND COSTS, INCLUDING REASONABLE ATTORNEYS’ FEES, RESULTING FROM ANY VIOLATION OF THESE TERMS OR ANY ACTIVITY RELATED TO YOUR USE OF THE CERTIFIED PRACTICESUITE APIS OR THE PRACTICESUITE WEB SITES.
- Term and Termination. Either you or PRACTICESUITE may terminate your right to use the Certified PRACTICESUITE EHR APIs at any time, with or without cause, upon notice. PRACTICESUITE also reserves the right to disable your API access in a production environment at any time, with or without cause. PRACTICESUITE reserves the right to disable access to the PRACTICESUITE EHR APIs if your App poses any security, privacy, or patient safety risks. The provisions concerning Indemnification, Waiver, Release and Limitation of Liability, and General shall survive any termination of these Terms.
- Governing Law. These Terms are governed by US federal law or the laws of the State of California
- Application developer affirmations to Certified API Developers regarding the ability of their applications to secure a refresh token, a client secret, or both, must be treated in a good faith manner