priorauth.indocs

Veradigm Unity

Veradigm is a channel through which practices arrive, and its Unity platform is not one API. Drawing it as a single box is the most consequential simplification anyone makes about this integration.

#Two separate APIs

APIHoldsExample actions
EHRThe order, the encounter, diagnoses, notesGetOrders, GetEncounterByApptID, GetPatientDiagnosis, SaveNote, SaveOrder
Practice ManagementThe policy - payer, member id, benefitsGetPatientPolicy, GetSchedule, GetAppointmentById
The payer is not in the EHR
A prior authorization cannot be assembled from the clinical record alone. If Practice Management is not configured for a practice, the adapter fails loudly rather than building a 278 with a blank payer.

#The action envelope

Unity is action-based rather than resource-based. Every call is the same shape, with the operation named in a field.

json
{
  "Action": "GetPatientPolicy",
  "Appname": "...", "AppUserID": "...", "PatientID": "...",
  "Parameter1": "", "Parameter2": "", "Parameter3": "",
  "Parameter4": "", "Parameter5": "", "Parameter6": "",
  "Token": "..."
}
Errors arrive inside a 200
Unity returns HTTP 200 and puts the failure in the result body. A client that branches on status code will treat "Encounter is locked" as a success and carry on.

#Identity must reconcile across the two

The catastrophic case
EHR and Practice Management are separate products with separate patient identifiers, joined by a mapping. Drift does not fail - it returns a valid policy belonging to a different human, and the composed encounter looks entirely well-formed. The authorization built from it requests one patient's procedure against another patient's benefits, and nothing downstream can detect it: by the time a 278 exists, both halves are one object.

reconcileIdentity() runs at the seam, before composition, comparing patient reference, medical record number and date of birth across every contributing source. A disagreement throws. This was found by an eval case written to inject the fault, which discovered there was nothing stopping it.

#Contract status

WhatState
Action namesVerified against the published references - 210 actions harvested, 119 EHR and 91 PM.
Request and response field shapesNot verified. The references are action lists, not schemas.

Every field mapping in the adapter is therefore a placeholder, and the live adapter refuses to run until cassettes are recorded from a sandbox. That is a real blocker, and the console shows it as one rather than as a green checklist.