5 min read

FHIR

ArkCloud exposes a small FHIR R4 facade over its own data at /api/fhir. It can be called only from a signed-in ArkCloud session; it is not an interface that an EHR or another external system can use. ArkCloud reads from outside FHIR servers in only two places, both in Rehab and both set up per partner: the referral exchange described below, and the outside records import from a hospital.

FHIR R4 view of your own dataPartially available

Signed-in users can read and search your organisation's own records as FHIR R4 resources and create a patient. Outside systems cannot use it, because it accepts only an ArkCloud sign-in, not SMART on FHIR or OAuth.

What the facade does

Requests go to /api/fhir/<ResourceType> (search) or /api/fhir/<ResourceType>/<id> (read), scoped to the signed-in user's organisation. /api/fhir/metadata returns a CapabilityStatement.

ResourceReadSearchCreate (POST)
PatientYes_id, identifier, name, birthdate, gender, _count (at most 100 per page)Admin only (other roles: 403 forbidden)
CoverageYesYesNo
ClaimYesYesRefused (Admin: OperationOutcome not-supported; other roles: 403 forbidden)
ExplanationOfBenefitYesYesNo
EncounterYes (Rehab)_id, patient, dateNo
AppointmentYes (Rehab)_id, patient, dateNo
ConditionYes (Rehab)_id, patient, category, clinical-statusNo
CarePlanYes (Rehab)_id, patient, dateNo
DocumentReferenceYes (Rehab)_id, patient, dateNo
PractitionerYes_id, name, identifierNo
OrganizationYes_id, name, identifierNo

Creating a resource with POST needs the "edit account details" permission, which only the Admin role holds; any other role receives HTTP 403 with an OperationOutcome whose code is forbidden. Searching with POST /api/fhir/<ResourceType>/_search is a read and is open to every role the facade admits. The CapabilityStatement states that SMART on FHIR / OAuth 2.0 authorization is not offered and lists only the interactions above: it does not advertise Patient update, or transaction, batch or system-wide search.

Sample request

Made from a browser that is signed in to ArkCloud (synthetic data):

GET /api/fhir/Patient?name=example&_count=10
Accept: application/fhir+json
Cookie: <ArkCloud session cookie>

200 OK
{
  "resourceType": "Bundle",
  "type": "searchset",
  "entry": [
    { "resource": { "resourceType": "Patient", "id": "example-id",
                    "name": [{ "family": "Example", "given": ["Test"] }] } }
  ]
}

FHIR referral exchange (Rehab)

A Rehab administrator can configure a referring partner under Rehab settings, Integrations, Referral exchange. ArkCloud then receives FHIR R4 referrals (ServiceRequest, Patient, Practitioner, Coverage) - pulled from the partner with SMART Backend Services (a private-key JWT, never a client secret) or pushed to ArkCloud with an HMAC signature - matches the patient without ever merging records, and reports accepted, scheduled, completed or declined back to the referrer.

Verification: contract-tested against a simulated partner only (mocked network). No partner connection has been proven, and validating the settings checks their shape without contacting the partner.

Not built

Access by an external system: there are no OAuth clients, API keys or bearer tokens, so only a signed-in browser session can call the facade
SMART on FHIR (EHR launch or standalone launch)
Update (PUT returns 501), delete, batch or transaction bundles
Bulk data export ($export)
ChargeItem, Account, Invoice, PaymentNotice or any resource type not in the table above
General-purpose reads from an external FHIR server: ArkCloud has no way to sign in to one. (Two narrow paths do exist - the Rehab referral exchange, and Rehab outside records, which imports one patient's records over a per-hospital SMART Backend Services connection or from an uploaded FHIR R4 Bundle file. Neither has been connected to a live hospital; see Outside records.)
A developer portal, sandbox or published client libraries

What it would take

This is a list of engineering gaps, not a delivery commitment. For an external system to use FHIR with ArkCloud, the product would need at least: OAuth 2.0 client registration and token issuance (or SMART Backend Services), scope enforcement per resource, update and bundle interactions with role checks, and tests for each.

Until then, claims and remittance travel through the clearinghouse mailbox once it is connected, outside records are uploaded in Rehab, and anything else is implementation work arranged with support (see custom integrations).