HCS FHIR

This is the Health Care Systems, Inc. FHIR api web server

HL7 FHIR Documentation

The HCS FHIR API is an implemenation of HL7 FHIR and their documentation can be used for a general understanding.

Required parameters are in bold

Optional parameters are in italics

Security

All production connections use https for security

Authorization

Users of the HCS FHIR API will need to have one or more User IDs created in the target HCS Clinicals system. This is done by a written request to HCS and the Healthcare Facility running an instance of HCS Clinicals. All authorization of actions taken through the FHIR APi is done based on these user IDs as they are configured for authorization in HCS Clinicals.

Authentication

Each API request uses basic authentication, using the User ID and password created for Authorization.

SMART Clients

This HCS FHIR API supports the SMART App Launch Framework. To register a SMART client, send a written request to HCS and the Healthcare Facility running an instance of HCS Clinicals.

This should include:

  • Standalone: the client ID, client secret, redirect URI and the FHIR scopes.
  • EHR Launched: the client ID, client secret, redirect URI, launch URI and the FHIR scopes
  • Bulk: the client id, JWK Set URL and the FHIR scopes

Supported Grant Types:

  • Authorization Code - Exchange client ID and secret with an authorization code to get and access and refresh token.
  • Refresk Token - Any client (web or native) can exchange a refresh token for a new access and refresh token.

Authorization Endpoint: GET https://site/api/oath/authorization

When a client doesn't have an access or refresh token or the refresh token has expired, then authentication flow should occur to aquire an authorization code. Open a browser window to load the authorization endpoint. After the user has authenticated and authorized the client by selecting scopes, the browser will be redirected to the client's redirect URI with the authorization code. The authorization code is for a limited time.

Token Endpoint: POST https://site/api/oath/maketoken

Scopes:

  • patient/AllergyIntolerance.read
  • patient/CarePlan.read
  • patient/CareTeam.read
  • patient/Condition.read
  • patient/Device.read
  • patient/DiagnosticReport.read
  • patient/DocumentReference.read
  • patient/Encounter.read
  • patient/Goal.read
  • patient/Group.read
  • patient/Immunization.read
  • patient/Location.read
  • patient/MedicationRequest.read
  • patient/Observation.read
  • patient/Organization.read
  • patient/Patient.read
  • patient/Practitioner.read
  • patient/Procedure.read
  • patient/Provenance.read
  • user/AllergyIntolerance.read
  • user/CarePlan.read
  • user/CareTeam.read
  • user/Condition.read
  • user/Device.read
  • user/DiagnosticReport.read
  • user/DocumentReference.read
  • user/Encounter.read
  • user/Goal.read
  • user/Group.read
  • user/Immunization.read
  • user/Location.read
  • user/MedicationRequest.read
  • user/Observation.read
  • user/Organization.read
  • user/Patient.read
  • user/Practitioner.read
  • user/Procedure.read
  • user/Provenance.read

Fees

Only customers who request application modifications may incur additional costs to support product customization.

Capability Statements

Retrieve a FHIR CapabilityStatement for the entire system with

GET /api/metadata

You can also retrieve a CapabilityStatement for each api resource with

GET /api/{Resource}/metadata

AllergyIntolerance

AllergyIntolerance resources can be retrieved and searched.

This conforms to US Core AllergyIntolerance Profile

This supports fields in USCDI Allergies and Intolerances

Fields

  • Patient
  • ClinicalStatus
  • Type
  • Code (RxNorm)
  • Onset
  • Recorder
  • RecordedDate
  • VerificationStatus
  • Category
  • Reaction (Severity, Description, Manifestation)

Retrieve

You can retrieve an allergy intolerance by ID with

GET /api/AllergyIntolerance/{id}

  • id - the ID of the AllergyIntolerance

If successful, this returns a FHIR AllergyIntolerance with a response code of 200

Other responses:

404 Not Found - An AllergyIntolerance resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the AllergyIntolerance.

403 Forbidden- The system has been configured to cancel viewing of this AllergyIntolerance.

Example:

GET https://site/api/AllergyIntolerance/123456

Search

You can search for existing AllergyIntolerance with

GET /api/AllergyIntolerance?{patient},{date},{category}

  • patient - id of the patient
  • date - the date of an allergy (identified or entered). date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]
  • category - the category of an allergy. comparison is one of [medication, food, environment]

If successful, this returns a FHIR Bundle of FHIR AllergyIntolerance entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view allergies.

403 Forbidden- The system has been configured to cancel viewing of the allergies.

Examples:

GET https://site/api/AllergyIntolerance?patient=123456

GET https://site/api/AllergyIntolerance?patient=123456&date=ge2019-10-25&date=lt2019-10-28

GET https://site/api/AllergyIntolerance?patient=123456&category=medication

Binary

A Binary resource data can be retrieved by ID.

Retrieve

You can retrieve binary by ID with

GET /api/Binary/{id}

  • id - the ID of the binary data (provided by some other resource). id is of the form SOURCECODE-#

If successful, this returns a FHIR Binary with a response code of 200

Other responses:

404 Not Found - A binary resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the data.

403 Forbidden- The system has been configured to cancel viewing of this data.

400 Bad Request - The document ID did not start with a SOURCECODE.

Example:

GET https://site/api/Binary/PATDOC-123456

CarePlan

CarePlan resources can be searched.

This conforms to US Core CarePlan Profile.

This supports fields in USCDI Assessment and Plan of Treatment Class.

Fields

  • Subject
  • Encounter
  • Status
  • Intent
  • Title
  • Category
  • Text

Search

You can search for existing care plans with

GET /api/CarePlan?{encounter},{date},{category}

  • encounter - id of the encounter
  • date - the date of a elements of the care plan. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]
  • category - category of the care plan

If successful, this returns a FHIR Bundle of FHIR CarePlan entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view care plans.

403 Forbidden- The system has been configured to cancel viewing of the care plan.

Examples:

GET https://site/api/CarePlan?encounter=123456

GET https://site/api/CarePlan?encounter=123456&category=assess-plan

GET https://site/api/CarePlan?encounter=123456&date=ge2019-10-25,lt2019-11-28

CareTeam

CareTeam resources can be searched.

This conforms to US Core CareTeam Profile.

This supports fields in USCDI Care Team Member(s).

Fields

  • Subject
  • Encounter
  • Status
  • Name
  • Category
  • Text
  • Period
  • Participant

Search

You can search for existing care teams with

GET /api/CareTeam?{encounter},{patient},{status}

  • encounter - id of the encounter (either encounter or patient is required)
  • patient - id of the patient (either encounter or patient is required)
  • status - status of the care team

If successful, this returns a FHIR Bundle of FHIR CareTeam entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view care teams.

403 Forbidden- The system has been configured to cancel viewing of the care team.

Examples:

GET https://site/api/CareTeam?encounter=123456

GET https://site/api/CareTeam?encounter=123456&status=active

ClaimResponse

ClaimResponse resources can be retrieved, searched, added, updated and deleted.

Fields

  • Status
  • Type
  • Use
  • Patient
  • Created
  • Insurer
  • Outcome
  • PreauthRef - the authorization number
  • PreauthPeriod

Retrieve

You can retrieve a claim response by ID with

GET /api/ClaimResponse/{id}

  • id - the ID of the ClaimResponse

If successful, this returns a FHIR ClaimResponse with a response code of 200

Other responses:

404 Not Found - An ClaimResponse resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the ClaimResponse.

403 Forbidden- The system has been configured to cancel viewing of this ClaimResponse.

Example:

GET https://site/api/ClaimResponse/123456

Search

You can search for existing ClaimResponse with

GET /api/ClaimResponse?{patient}

  • patient - id of the patient

If successful, this returns a FHIR Bundle of FHIR ClaimResponse entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view claim responses.

403 Forbidden- The system has been configured to cancel viewing of the claim responses.

Examples:

GET https://site/api/ClaimResponse?patient=123456

Add

You can add a ClaimResponse with

POST /api/ClaimResponse body:{claimResponse}

If successful, this returns a FHIR ClaimResponse with a response code of 200

Other responses:

401 Unauthorized - The user is not authorized to view claim responses.

403 Forbidden- The system has been configured to cancel adding of the claim responses.

Update

You can update a ClaimResponse with

PUT /api/ClaimResponse?{id} body:{claimResponse}

  • id - id of the claim response
  • claimResponse - a FHIR ClaimResponse

If successful, this returns a FHIR ClaimResponse with a response code of 200

Other responses:

401 Unauthorized - The user is not authorized to view claim responses.

403 Forbidden- The system has been configured to cancel updating of the claim responses.

Delete

You can delete a ClaimResponse with

DELETE /api/ClaimResponse?{id}

  • id - id of the claim response

If successful, this returns a response code of 200

Other responses:

401 Unauthorized - The user is not authorized to delete claim responses.

403 Forbidden- The system has been configured to cancel deleteing of the claim responses.

Examples:

DELETE https://site/api/ClaimResponse?id=123456

Condition

Condition resources can be retrieved and searched.

This conforms to US Core Condition Profile and US Core Condition Problems and Health Concerns Profile.

This supports fields in USCDI Health Concerns and USCDI Problems

Fields

  • Subject
  • Encounter
  • Category
  • Code
  • Onset
  • VerificationStatus
  • Abatement
  • ClinicalStatus

Retrieve

You can retrieve a Condition by ID with

GET /api/Condition/{id}

  • id - the ID of the Condition

If successful, this returns a FHIR Condition with a response code of 200

Other responses:

404 Not Found - A Condition resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the Condition.

403 Forbidden- The system has been configured to cancel viewing of this Condition.

Example:

GET https://site/api/Condition/123456

Search

You can search for existing conditions with

GET /api/Condition?{encounter},{category},{onset-date}

  • encounter - id of the encounter
  • category - the category of the condition. One of ["problem-list-item","encounter-diagnosis","health-concern"].
  • onset-date - the onset date of a condition. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]

If successful, this returns a FHIR Bundle of FHIR Condition entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view conditions.

403 Forbidden- The system has been configured to cancel viewing of the conditions.

Examples:

GET https://site/api/Condition?encounter=123456

GET https://site/api/Condition?encounter=123456&category=problem-list-item

GET https://site/api/Condition?encounter=123456&onset-date=ge2019-10-25,lt2019-11-28

Coverage

Coverage resources can be retrieved, searched, added, updated and deleted.

Fields

  • Status - active or cancelled
  • Subscriber - the Patient or RelatedPerson
  • SubscriberID - Policy number
  • Beneficiary - the Patient
  • Period
  • Payor - the insurance company Organization. Only 1 allowed
  • Class
    • 0..1 with type='group'
    • 0..1 with type='plan'

Retrieve

You can retrieve a coverage by ID with

GET /api/Coverage/{id}

  • id - the ID of the Coverage

If successful, this returns a FHIR Coverage with a response code of 200

Other responses:

404 Not Found - An Coverage resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the Coverage.

403 Forbidden- The system has been configured to cancel viewing of this Coverage.

Example:

GET https://site/api/Coverage/123456

Search

You can search for existing Coverage with

GET /api/Coverage?{patient}

  • beneficiary - id of the patient

If successful, this returns a FHIR Bundle of FHIR Coverage entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view coverages.

403 Forbidden- The system has been configured to cancel viewing of the coverages.

Examples:

GET https://site/api/Coverage?beneficiary=123456

Add

You can add a Coverage with

POST /api/Coverage body:{coverage}

If successful, this returns a FHIR Coverage with a response code of 200

Other responses:

401 Unauthorized - The user is not authorized to view coverages.

403 Forbidden- The system has been configured to cancel adding of the coverages.

Update

You can update a Coverage with

PUT /api/Coverage?{id} body:{coverage}

  • id - id of the coverage
  • coverage - a FHIR Coverage

If successful, this returns a FHIR Coverage with a response code of 200

Other responses:

401 Unauthorized - The user is not authorized to view coverages.

403 Forbidden- The system has been configured to cancel updating of the coverages.

Delete

You can delete a Coverage with

DELETE /api/Coverage?{id}

  • id - id of the coverage

If successful, this returns a response code of 200

Other responses:

401 Unauthorized - The user is not authorized to delete coverages.

403 Forbidden- The system has been configured to cancel deleteing of the coverages.

Examples:

DELETE https://site/api/Coverage?id=123456

Device

Device resources can be retrieved and searched.

This conforms to US Core ImplantableDevice Profile.

This supports fields in USCDI Unique Device Identifier(s) for a Patient’s Implantable Device(s).

Fields

  • Patient
  • Identifier
  • Status
  • Type
  • LotNumber
  • Manufacturer
  • ManufactureDate
  • ExpirationDate
  • ModelNumber
  • PartNumber
  • SerialNumber
  • DistinctIdentifier
  • UdiCarrier

Retrieve

You can retrieve a device by ID with

GET /api/Device/{id}

  • id - the ID of the Device

If successful, this returns a FHIR Device with a response code of 200

Other responses:

404 Not Found - An Device resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the Device.

403 Forbidden- The system has been configured to cancel viewing of this Device.

Example:

GET https://site/api/Device/123456

Search

You can search for existing Device resources with

GET /api/Device?{patient},{date}

  • patient - id of the patient
  • date - the manufacture date of an device. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]

If successful, this returns a FHIR Bundle of FHIR Device entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view devices.

403 Forbidden- The system has been configured to cancel viewing of the devices.

Examples:

GET https://site/api/Device?patient=123456

GET https://site/api/Device?patient=123456&date=ge2019-10-25&date=lt2019-10-28

DiagnosticReport

DiagnosticReport resources can be searched.

This conforms to US Core DiagnosticReport Profile for Report and Note Exchange

This supports fields in USCDI Clinical Notes.

Fields

  • Subject
  • Encounter
  • Status
  • Effective
  • Issued
  • Performer
  • Code
  • Category
  • Result
  • PresentedForm

Search

You can search for existing diagnostic reports with

GET /api/DiagnosticReport?{encounter},{patient},{category},{code},{date}

  • encounter - id of the encounter. Either the encounter or patient is required.
  • patient - id of the patient. Either the encounter or patient is required.
  • code - the code of an observation (which is the parent observation of the report). code is of the form "system|code" or "code". If system is not include, it is assumed to be LOINC.
  • category - the category of the report
  • date - the date of an diagnostic report. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]

If successful, this returns a FHIR Bundle of FHIR DiagnosticReport entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view observations.

403 Forbidden- The system has been configured to cancel viewing of the observations.

Examples:

GET https://site/api/DiagnosticReport?encounter=123456

GET https://site/api/DiagnosticReport?encounter=123456&code=http://loinc.org|21176-3

GET https://site/api/DiagnosticReport?encounter=123456&date=ge2019-10-25&date=lt2019-10-28

GET https://site/api/DiagnosticReport?encounter=123456&category=LP29684-5

DocumentReference

DocumentReference resources can be retrieved, searched and generated

This conforms to US Core DocumentReference Profile

All FHIR DocumentReference resources returned will have an Attachment with a URL that points to the Binary resource.

CCDA documents can be generated and retrieved in compliance with §170.315(g)(9) Application Access - All Data Request

This supports fields in USCDI Clinical Notes.

Fields

  • Identifier
  • Data
  • Type
  • Category
  • Content
  • Context
  • Author

Retrieve

You can retrieve a document by ID with

GET /api/DocumentReference/{id}

  • id - the ID of the document.

If successful, this returns a FHIR DocumentReference with a response code of 200

Other responses:

404 Not Found - A document with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view patient documents.

403 Forbidden- The system has been configured to cancel viewing of this document.

400 Bad Request - The document ID did not start with either PATDOC or VISDOC.

Example:

GET https://site/api/DocumentReference/PATDOC-123456

Search

You can search for existing documents with

GET /api/DocumentReference?{_id},{patient},{encounter},{type},{category},{date}

  • _id - the ID of the document.
  • patient - the ID of the patient.
  • encounter - the ID of the encounter.
  • type - the type of the document.
  • category - the category of the document.
  • date - the date of the document. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]

If successful, this returns a FHIR Bundle of FHIR DocumentReference entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view patient documents.

403 Forbidden- The system has been configured to cancel viewing of this document.

Examples:

GET https://site/api/DocumentReference/?patient=123456

GET https://site/api/DocumentReference/?patient=123456&category=clinical-note

Generate

You can generate a CCDA Continuity of Care document with

GET /api/DocumentReference/$docref?{patient},{start},{stop},{type}

  • patient - the ID of the patient.
  • start - the start date of the data included in the CCDA, of the form yyyy-mm-dd.
  • stop - the stop date of the data included in the CCDA, of the form yyyy-mm-dd.
  • type - the type of the CCDA documemt. Currently only 34133-9 is supported.

If successful, this returns a FHIR Bundle of a single FHIR DocumentReference with a response code of 200

Other responses:

404 Not Found - A patient with the ID was not found in the system.

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view or add patient documents.

403 Forbidden- The system has been configured to cancel viewing or adding of this document.

Example:

GET https://site/api/DocumentReference/$docref?patient=123456&start=2015-07-01&stop=2017-08-20

Encounter

Encounter resources can be retrieved, searched, added and updated.

Retrieve

You can retrieve an encounter by ID with

GET /api/Encounter/{id}

  • id - the ID of the encounter

If successful, this returns a FHIR Encounter with a response code of 200

Other responses:

404 Not Found - An encounter resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the encounter.

403 Forbidden- The system has been configured to cancel viewing of this encounter.

Example:

GET https://site/api/Encounter/123456

Search

You can search for existing encounters with

GET /api/Patient?{_id},{identifier},{service-provider},{patient},{location}

  • _id - the ID of the encounter.
  • identifier - an identifier for the encounter. Identifier is of the form "system|code"
  • service-provider - the id of a facility.
  • patient - the ID of a patient.
  • location - the ID of a location.

If successful, this returns a FHIR Bundle of FHIR Encounter entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view encounters.

403 Forbidden- The system has been configured to cancel viewing of the encounters.

Examples:

GET https://site/api/Encounter?patient=123456

GET https://site/api/Encounter?identifier=http://site/accountnumber|123456789

Add

You can add an encounter with

POST /api/Encounter

If successful, this returns a FHIR Encounter with a response code of 200

Other responses:

401 Unauthorized - The user is not authorized to add the encounter.

403 Forbidden- The system has been configured to cancel adding of this encounter.

Example:

PUT https://site/api/Encounter

Update

You can update an encounter with

POST /api/Encounter/{id}

  • id - the ID of the encounter
  • body - a single FHIR Encounter

If successful, this returns a FHIR Encounter with a response code of 200

Other responses:

404 Not Found - An encounter resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to add the encounter.

403 Forbidden- The system has been configured to cancel adding of this encounter.

Example:

PUT https://site/api/Encounter

Goal

Goal resources can be retrieved and searched.

This conforms to US Core Goal Profile

This supports fields in USCDI Goals.

Fields

  • Subject
  • LifecycleStatus
  • Description
  • Target

Retrieve

You can retrieve a goal by ID with

GET /api/goal/{id}

  • id - the ID of the goal

If successful, this returns a FHIR Goal with a response code of 200

Other responses:

404 Not Found - An Goal resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the Goal.

403 Forbidden- The system has been configured to cancel viewing of this Goal.

Example:

GET https://site/api/Goal/123456

Search

You can search for existing Goal resources with

GET /api/Goal?{patient},{encounter}

  • patient - id of the patient. Either patient or encounter is required.
  • encounter - id of the encounter. Either patient or encounter is required.

If successful, this returns a FHIR Bundle of FHIR Goal entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view goals.

403 Forbidden- The system has been configured to cancel viewing of the goals.

Examples:

GET https://site/api/Goal?patient=123456

Immunization

Immunization resources can be retrieved and searched.

This conforms to US Core Immunization Profile

This supports fields in USCDI Immunizations.

Fields

  • Patient
  • Encounter
  • Status
  • StatusReason
  • VaccineCode
  • Occurrence
  • PrimarySource
  • DoseQuantity

Retrieve

You can retrieve an immunization by ID with

GET /api/Immunization/{id}

  • id - the ID of the Immunization

If successful, this returns a FHIR Immunization with a response code of 200

Other responses:

404 Not Found - An Immunization resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the Immunization.

403 Forbidden- The system has been configured to cancel viewing of this Immunization.

Example:

GET https://site/api/Immunization/123456

Search

You can search for existing Immunization with

GET /api/Immunization?{patient},{date}

  • patient - id of the patient
  • date - the date of an immunization. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]

If successful, this returns a FHIR Bundle of FHIR Immunization entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view immunizations.

403 Forbidden- The system has been configured to cancel viewing of the immunization.

Examples:

GET https://site/api/Immunization?patient=123456

GET https://site/api/Immunization?patient=123456&date=ge2019-10-25,lt2019-11-28

MedicationRequest

MedicationRequest resources can be searched.

This conforms to US Core MedicationRequest Profile

This supports fields in USCDI Medications.

Fields

  • Subject
  • Encounter
  • Status
  • Reported
  • Intent
  • Category
  • Priority
  • Medication
  • AuthoredOn
  • Requester
  • Recorder
  • GruoupIdentifier
  • Note
  • DosageInstruction
  • DispenseRequest

Search

You can search for existing Medication Requests with

GET /api/MedicationRequest?{patient},{encounter},{date},{category},{intent},{status}

  • encounter - id of the encounter. Either encounter or patient is required.
  • patient - id of the patient. Either encounter or patient is required.
  • date - the date of a medication request. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]
  • category - the category of an medication request. category is one of [inpatient, discharge]. This defaults to inpatient
  • intent - the intent of an medication request.
  • status - the status of an medication request.

If successful, this returns a FHIR Bundle of FHIR Procedure entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view medications.

403 Forbidden- The system has been configured to cancel viewing of the medication.

Examples:

GET https://site/api/MedicationRequest?encounter=123456

GET https://site/api/MedicationRequest?encounter=123456&date=ge2019-10-25,lt2019-11-28

GET https://site/api/MedicationRequest?encounter=123456&category=inpatient

Observation

Observation resources can be searched, added, updated and deleted.

This conforms to US Core Laboratory Result Observation Profile

This supports fields in USCDI Laboratory and USCDI Smoking Status and USCDI Vital Signs .

Fields

  • Subject
  • Encounter
  • Status
  • Category
  • Code
  • Effective
  • Issued
  • Value
  • Component

Search

You can search for existing observations with

GET /api/Observation?{encounter},{code},{date}

  • patient - id of the patient. Either patient or encounter is required.
  • encounter - id of the encounter. Either patient or encounter is required.
  • code - the code of an observation. code is of the form "system|code" or "code". If system is not include, it is assumed to be LOINC.
  • category - the category of an observation. category is one of [health-concern, vital-signs].
  • date - the date of an observation. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]

If successful, this returns a FHIR Bundle of FHIR Observation entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view observations.

403 Forbidden- The system has been configured to cancel viewing of the observations.

Examples:

GET https://site/api/Observation?encounter=123456

GET https://site/api/Observation?encounter=123456&code=http://loinc.org|21176-3

GET https://site/api/Observation?encounter=123456&category=health-concern

GET https://site/api/Observation?encounter=123456&date=ge2019-10-25&date=lt2019-10-28

Organization

Organization resources can be retrieved, searched, added, updated and deleted.

Organizations can be Facilities, PCUs or Insurance Companies

Search

You can search for existing organizations with

GET /api/Organization?{name},{active},{partof}

  • name - the name of an organization.
  • active - whether the organization is active.
  • partOf - the ID of the organization that the searched organization is part of.

If successful, this returns a FHIR Bundle of FHIR Organization entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view observations.

403 Forbidden- The system has been configured to cancel viewing of the observations.

Examples:

GET https://site/api/Organization?name=Medicare

Patient

Patient resources can be retrieved, searched, added, updated and deleted.

This conforms to US Core Patient Profile.

This supports fields in USCDI Patient Demographics.

Fields

  • BirthDate
  • Name (Given, Middle, Prefix, Suffix, Text) (for aliases, like previous name Period, Use)
  • Gender
  • Identifier
  • Communication
  • Telecom
  • Address

Patient resources have these extensions:

Retrieve

You can retrieve a patient by ID with

GET /api/Patient/{id}

  • id - the ID of the patient

If successful, this returns a FHIR Patient with a response code of 200

Other responses:

404 Not Found - A patient resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the patient.

403 Forbidden- The system has been configured to cancel viewing of this patient.

Example:

GET https://site/api/Patient/123456

Search

You can search for existing patients with

GET /api/Patient?{_id},{identifier},{family},{given}

  • _id - the ID of the patient.
  • identifier - an identifier for the patient. Identifier is of the form "system|code"
  • family - the family name of the patient visit.
  • given - the given name of the patient visit.

If successful, this returns a FHIR Bundle of FHIR Patient entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view patients.

403 Forbidden- The system has been configured to cancel viewing of the patients.

Examples:

GET https://site/api/Patient?family=smith&given=john

GET https://site/api/Patient?identifier=http://hl7.org/fhir/sid/us-ssn|123456789

Procedure

Procedure resources can be searched.

This conforms to US Core Procedure Profile

This supports fields in USCDI Procedures.

Fields

  • Subject
  • Encounter
  • Status
  • Code
  • Performed
  • Performer
  • BodySite

Search

You can search for existing procedures with

GET /api/Procedure?{encounter},{patient},{date}

  • encounter - id of the encounter. Either the encounter or patient is required.
  • patient - id of the patient. Either the encounter or patient is required.
  • date - the date of a procedure. date format is "yyyy-mm-dd". Comparisons supported are [eq,lt,le,gt,ge]

If successful, this returns a FHIR Bundle of FHIR Procedure entries with a response code of 200

Other responses:

501 Not Implemented - A parameter was sent that was not recognized (only if FHIR strict parameter handling was sent in the request header).

401 Unauthorized - The user is not authorized to view procedures.

403 Forbidden- The system has been configured to cancel viewing of the procedure.

Examples:

GET https://site/api/Procedure?encounter=123456

GET https://site/api/Procedure?encounter=123456&date=ge2019-10-25,lt2019-11-28

Provenance

Provenance resources can be retrieved.

This conforms to US Core Provenance Profile

This supports fields in USCDI Provenance.

Fields

  • Activity
  • Target
  • Occurred
  • Recorded
  • Location
  • Agent

Retrieve

You can retrieve a provenance by ID with

GET /api/Provenance/{id}

  • id - the ID of the provenance

If successful, this returns a FHIR Patient with a response code of 200

Other responses:

404 Not Found - A provenance resource with the ID was not found in the system.

401 Unauthorized - The user is not authorized to view the provenance.

403 Forbidden- The system has been configured to cancel viewing of this provenance.

Example:

GET https://site/api/provenance/123456

Meaningful Use

These sections explain how the HCS FHIR API can be used to gather information related to Meaningful Use.

This in compliance with

Assessment and Plan of Treatment

Assessment and Plan of Treatment uses the CarePlan resource.

Example:

GET https://site/api/CarePlan?encounter=123456

Care Team Members

Care Team Members uses the CareTeam resource.

Example:

GET https://site/api/CareTeam/123456

Clinical Notes

Clinical Notes uses the DocumentReference and DiagnosticReports resources.

Example:

GET https://site/api/DocumentReference/$docref?patient=123456&start=2015-07-01&stop=2017-08-20

GET https://site/api/DiagnosticReport?encounter=123456

Goals

Goals use the Goal resource.

Example:

GET https://site/api/Goal?encounter=123456

Health Concerns

Health Concerns use the Condition resource

Example:

GET https://site/api/Condition?encounter=123456&category=health-concern

Immunizations

Immunizations use the Immunization resource.

Example:

GET https://site/api/Immunization?patient=123456

Lab Values/Results

Lab Values/Results use the Observation resource.

Example:

GET https://site/api/Observation?encounter=123456&category=laboratory

Lab Tests

Lab Tests use the DiagnosticReport resource.

Example:

GET https://site/api/DiagnosticReport?encounter=123456

Medications

Medications use the MedicationRequest resource.

Example:

GET https://site/api/MedicationRequest?encounter=123456

Medication Allergies

Medication Allergies use the AllergyIntolerance resource.

Example:

GET https://site/api/AllergyIntolerance?patient=123456&category=medication

Patient Selection

Patient Selection uses the Patient resource search capabilities.

Example:

GET https://site/api/Patient?family=smith&given=john

GET https://site/api/Patient?identifier=http://hl7.org/fhir/sid/us-ssn|123456789

Problems

Problems use the Condition resource.

Example:

GET https://site/api/Condition?encounter=123456

Procedures

Procedures use the Procedure resource.

Example:

GET https://site/api/Procedure?encounter=123456

Smoking Status

Smoking Status uses the Observation resource. Simply do a search on an encounter with a code of 72166-2

Example:

GET https://site/api/Observation?encounter=123456&code=72166-2

Unique Device Identifiers

Unique Device Identifiers use the Device resource.

Example:

GET https://site/api/Device?patient=123456

Vital Signs

Vital Signs use the Observation resource.

Conforms to the following profiles:

Example:

GET https://site/api/Observation?encounter=123456&category=vital-signs

Licenses

HL7.FHIR.R4:

Copyright (c) 2013-2020, HL7, Firely (info@fire.ly), Microsoft Open Technologies 
and contributors. See the file CONTRIBUTORS for details

All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this
  list of conditions and the following disclaimer in the documentation and/or
  other materials provided with the distribution.

* Neither the name of Firely nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Endpoints

FHIR Endpoints

These can be downloaded as a FHIR Bundle from Endpoints