Change Log

This topic describes the FHIR API changes between Oracle Health AI Application Suite and Oracle Health Millennium Platform.

Note:

The FHIR APIs for Oracle Health AI Application Suite follow the R4 standard. DSTU2 is not supported on Oracle Health AI Application Suite.
Topic Resource Oracle Health AI Application Suite Oracle Health Millennium Platform Implementation Impact

_count Default Value

All

The default _count value is set to 50 for all resources.

Default values vary across resources.

Medium

_count Maximum Value

All

The maximum _count value is set to 1000 for all resources.

When a request exceeds this value, the link[self] reflects the applied maximum.

Maximum values vary across resources and some resources do not display the applied maximum in the link[self].

Medium

Granular Scopes Access Control and Security

All

Error responses for scope-related access filtering are standardized and provide more detailed information.

Errors responses are vague.

Medium

_id Length Enforcement

All

The _id field is limited to 64 characters for all resources.

This character limit aligns with the FHIR specification for all resources.

Length restriction is enforced for only some resources.

High

Search Bundle Error Handling

All

Noncompliant resources are excluded from search bundles.

Instead of failing the whole response, a generic inline OperationOutcome is returned to inform users about the omitted resources.

The search bundle can fail if a single resource is noncompliant.

Medium

userSelected Field

All

userSelected is set to true only for proprietary codes.

userSelected can be set to true for proprietary codes and other codes.

Medium

Validation for Write and Update Operations

All

Additional rules may be enforced as all operations should be validated against Oracle and US Core profiles.

For example, a request to create a patient without an identifier may fail validation if the rules require the identifier to be present at creation time, unless the identifier is supplied through a data absent reason (DAR).

Additional validation is not applied.

For example, a patient can be created without an identifier because the identifier could be assigned as part of the create workflow.

To be determined

PractitionerRole Contained Within AllergyIntolerance

  • AllergyIntolerance
  • PractitionerRole

PractitionerRole is represented as a contained resource within AllergyIntolerance and also exposed as a standalone resource.

The ID of the contained resource is virtual and not searchable through the standalone API.

PractitionerRole is represented only as a contained resource within AllergyIntolerance.

High

Communication.payload

Communication

Communication.payload supports contentString.

Communication.payload supports contentReference with a reference to the Binary resource from which the content can be fetched.

Low

Communication.recipient

Communication

Communication.recipient has only a single recipient.

Communication.recipient can have multiple recipients.

Medium

Condition.asserter

Condition

Condition.asserter is not supported.

Condition.asserter is supported for health concerns.

High

Health Concern Data from Millennium Platform

Condition

Health concerns stored on the Millennium Platform table are not returned.

Instead, every condition also returns health-concern and problem-list or encounter-diagnosis.

Health concerns stored on the Millennium Platform table are returned.

Low

Consent.category for Patient-Privacy

Consent

Consent.category is populated with Release of Information Consent (LOINC 64292-6).

Consent.category is a proprietary code of personal-representatives.

Consent data is supported only for personal representative disclosures.

Low

Consent.provision

Consent

Consent.provision is not supported. Actor information is included in Consent.performer instead.

Consent.provision is populated with actor information.

The actor is the person authorized to view the data and agrees to the policy and rules of the consent.

High

Consent Search by actor and actor:identifier

Consent

Actor search parameters are replaced by consentor and consentor:identifier, which are mapped to Consent.performer.

Actor search parameters are supported. The parameters are mapped to Consent.provision.actor.

High

Encounter-Level Coverages

Coverage

Encounter-level coverages, the encounter extension, and encounter search parameters are not supported.

Encounter-level coverages, extension, and search parameters are supported.

Medium

Public Healthcare Coverages

Coverage

Public healthcare coverages are not currently supported.

Public healthcare coverages are returned.

High

$docref HTTP Method Change from GET to POST

DocumentReference

$docref is exposed as a POST request.

$docref is exposed as a GET request.

High

Encounter.contained

Encounter

The place of service is moved to a custom extension as a reference to an organization.

The place of service is returned as a contained location and linked in the Encounter.location field.

High

Encounter.extension("custom-attribute")

Encounter

User-defined fields are not supported.

You can configure fields on the encounter that are returned through FHIR.

High

Encounter Extensions

Encounter

The following extensions are not currently supported:
  • military-service-connected-indicator
  • estimated-financial-responsibility-not-collected-reason
  • payment-collection-status
  • client-organization

These extensions are valued and returned in the FHIR response.

Medium

  • Encounter.hospitalization.dietPreference
  • Encounter.hospitalization.specialCourtesy
  • Encounter.hospitalization.specialArrangement
  • Encounter.contained

Encounter

These fields are not currently supported.

These fields are valued and returned in the FHIR response.

High

Encounter Search by Account

Encounter

Searching for encounters by account is not supported.

Searching for encounters by account is supported.

Low

FamilyMemberHistory Deceased Boolean

FamilyMemberHistory

FamilyMemberHistory returns only deceasedBoolean.

FamilyMemberHistory returns deceasedBoolean or deceasedAge.

Medium

FamilyMemberHistory precision Extension

FamilyMemberHistory

The precision extension for deceasedAge is not supported.

The precision extension for deceasedAge is supported.

Medium

Historic Immunizations

Immunization

Historic immunizations stored on the Millennium Platform table are not returned.

Historic immunizations stored on the Millennium Platform table are returned.

Low

Immunization.identifier

Immunization

Immunization.identifier is not supported.

Immunization.identifier is supported.

Medium

MedicationRequest and Medication Resources Structure

  • Medication
  • MedicationRequest

Single-ingredient medications are represented as a medicationReference to an external Medication resource.

Multi-ingredient medications are represented as a virtual contained Medication resource within MedicationRequest, with references to all ingredients.

Single-ingredient medications are represented as medicationCodeableConcept and multi-ingredient medications are represented as a contained Medication resource.

High

MedicationAdministration infuse-over-time Custom Extension

MedicationAdministration

The infuse-over-time extension is not supported.

You can use infuse-over-time to view the length of time in minutes to infuse a medication.

Medium

MedicationRequest.dispenseRequest.expectedSupplyDuration

MedicationRequest

MedicationRequest.dispenseRequest.expectedSupplyDuration is not supported.

MedicationRequest.dispenseRequest.expectedSupplyDuration is supported.

Medium

Observation.identifier

Observation

External identifiers for laboratory results and vital signs are not supported.

External identifiers are supported.

High

Patient Communication Preferences

Patient

Patient communication preferences are supported only for clinical communications.

Only a single communication-preference extension is supported, and communication-type is not returned.

Patient communication preferences are supported for appointment reminders, appointment letters, and clinical communications.

Multiple communication-preference extensions are supported, and each extension can contain a communication-type, contact-method, and contact-type.

Medium or High

Telecom Support

  • Patient
  • Person
  • Practitioner

Only a single phone number and email address per type is supported (for example, one work number and one home number). Fax telecom is not supported.

Multiple phone numbers, email addresses, and fax numbers per type are supported.

High

Person.link

  • Patient
  • Person

The Patient resource returns a 404 status code when the combined-away patient is queried, and the combined-into patient is not linked.

For a combine-uncombine event, the previous IDs return a 404.

The previous records will be deleted and new records will be materialized with the IDs. In the Oracle Health AI Application Suite database, the previous and new IDs are not connected.

The Person resource returns links for inactive persons who represent the combined person.

High

Person.telecom.rank

Person

Rank is not applicable because only one phone number or email address per type is supported.

FHIR exposes telecom.rank as the type sequence, which does not represent the FHIR specification defined for rank.

Medium

Practitioner.name.use

Practitioner

Practitioner.name.use can be any code from the NameUse value set.

Practitioner.name.use is usual or old depending on the period.

Low

Practitioner.narrative Identifier Label

Practitioner

The identifier label is sourced from only human-readable descriptions instead of a combination of codes and descriptions.

The identifier label sometimes uses a code instead of a description by default (for example, NPI instead of National Provider Identifier).

Other times, the identifier uses two-word or three-word descriptions (for example, PROVIDER NUM).

Low

Practitioner Sources for Address, Telecom, and Name

Practitioner

Address, telecom, and name entries use a source table different from the Millennium Platform versions.

Address, telecom, and name entries use a source table different from the Oracle Health AI Application Suite versions.

To be determined

note and note-allowed Extensions

  • Questionnaire
  • QuestionnaireResponse

The note and note-allowed extensions are returned at the top level.

The note and note-allowed extensions are returned at the item level.

Low

Questionnaire.item.text and QuestionnaireResponse.item.text

  • Questionnaire
  • QuestionnaireResponse

Questionnaire.item.text and QuestionnaireResponse.item.text may be different.

Questionnaire.item.text and QuestionnaireResponse.item.text are the same.

Low

Social History Structure

  • Questionnaire
  • QuestionnaireResponse

Each social history category is a separate questionnaire and questionnaire response where the items are questions.

Social history is a single record where each category is an item, and the questions in each category are items within items.

Medium

is-modifiable Extension

QuestionnaireResponse

All social history items are modifiable by default.

The is-modifiable extension is not supported.

The is-modifiable extension is supported.

Low

RelatedPerson Encounter-Level Relationships

RelatedPerson

Encounter-level relationships are not supported.

Extensions and search parameters for relationship level and encounter are not supported.

A custom extension is supported for relationship level. Extensions and search parameters are supported.

Medium

RelatedPerson iso21090-TEL-address extension

RelatedPerson

Telecom is returned in only the following format:

"value": "8165550123"

Telecom is returned in the following formats:
  • "extension.valueUrl": "(816) 555-0123"
  • "value": "8165550123"

Medium

RelatedPerson.relationship

RelatedPerson

FHIR returns the personal relationship as a relationship[x] element instead of through relationship[x].extension.

FHIR returns the personal relationship stored on the Millennium Platform database table as a relationship[x].extension.

Medium

ServiceRequest.basedOn

ServiceRequest

ServiceRequest.basedOn supports only protocol orders. Template orders are not supported.

ServiceRequest.basedOn includes references to template orders.

Low

Slot Resource

Slot

The Slot resource is currently not supported.

Instead, use the Appointment/$find operation to search for available appointments, then use the availability ID with the Appointment/$book operation to create the appointment.

The Slot resource is supported.

High