GRACE iconI AM GRACE
Integrations & developers

Built to drop into your ecosystem

GRACE is interface-first. Push live data from your EHR, integration engine, fetal-monitoring AI, or HR system, and GRACE turns it into a real-time acuity/staffing level with tiered surge alerts. Authentication uses a scoped Bearer API key, minted per integration so a vendor key can do exactly one job and nothing more.

Works with your stack

EHR & charting

  • Epic
  • Oracle Health (Cerner)
  • MEDITECH
  • Altera

ADT, diagnoses, and orders via HL7 v2 or FHIR R4.

Interface engines

  • Mirth / NextGen Connect
  • Rhapsody
  • Cloverleaf
  • Generic REST

Point your existing engine at our scoped ingest endpoints.

Fetal monitoring & signals

  • PeriGen
  • Flowsheets / vitals
  • Labs (LOINC)
  • Meds (RxNorm)

FHR category, MEWS, mag, BMI, GBS → acuity modifiers.

Workforce & alerting

  • Workday
  • Oracle HCM
  • Pulsara
  • Webhooks · SMS · Email

Skill-mix + tenure in; tiered surge alerts out.

Don't see your vendor? If it speaks HL7 v2, FHIR R4, or REST, it connects. Scoped keys and a per-hospital terminology map handle the site-specific details.

Inbound interfaces

InterfaceEndpointScope
HL7 v2 ADT
A01/A02/A03/A04/A08/A11/A12 via Mirth, Rhapsody, Cloverleaf.
/api/ingest/hl7ingest:hl7
FHIR R4
Encounter, Condition, Observation, MedicationAdministration. Modifiers acquired from meds + flowsheets.
/api/ingest/fhiringest:fhir
Clinical signals
Normalized meds/observations/labs → acuity modifiers (PeriGen, EFM, MEWS, flowsheets).
/api/ingest/clinicalingest:clinical
Roster
Skill mix + tenure from Workday / Oracle HCM / staffing board.
/api/ingest/rosteringest:roster
Census
Full room census snapshots.
/api/ingest/censusingest:census
Staffing
Nurses on duty + call-staff availability.
/api/ingest/staffingingest:staffing
Generic ADT
Single JSON admit/discharge/transfer event.
/api/ingest/adtingest:adt
Batch
Historical backfill, ≤500 events.
/api/ingest/batchingest:batch
Status
Pipeline + unit-state health check.
/api/ingest/statusread:status

Native protocol — read the verdict back out

GRACE has its own vendor-neutral protocol (grace.v1) that works without HL7 or FHIR. Push data in with the ingest endpoints above, then read the computed verdict back out with a scoped key. Every read returns one consistent envelope, so a human or an agent learns the shape once:

Read endpointPathScope
Unit state (full verdict)
Level, driving axis, per-axis breakdown, AWHONN shortfall, roster, per-room scores.
/api/v1/unit-stateread:unit-state
Level (compact)
Headline level + driver. Cheap to poll for status pages and checks.
/api/v1/levelread:unit-state
Forecast
GRACE level trajectory + 8h AWHONN staffing-demand forecast.
/api/v1/predictread:predict
# Read the live verdict — no HL7/FHIR required
curl https://iamgrace.baby/api/v1/level \
  -H "Authorization: Bearer grace_xxx"

# → grace.v1 envelope
{
  "protocol": "grace.v1",
  "ok": true,
  "data": {
    "level": "red",
    "drivingAxis": "staffing",
    "drivingAxisLabel": "AWHONN staffing shortfall",
    "awhonnShortfall": 2
  },
  "meta": { "requestId": "…", "generatedAt": "…", "hospitalId": "…" }
}

Errors use the same envelope with { "ok": false, "error": { "code", "message" } } and stable codes (unauthorized, forbidden_scope, not_found, unprocessable). Send an X-Request-Id header and we echo it back in meta.requestId.

Acquiring the modifiers

Most high-value acuity modifiers are not diagnoses — they are medications, flowsheet observations, and labs. Send them as normalized clinical signals (or as FHIR Observation / MedicationAdministration resources) and GRACE maps them to acuity factors automatically, applying time-based decay where AWHONN ratios change over time (e.g. magnesium sulfate is 1:1 for the first hour, then 1:2).

curl -X POST https://iamgrace.baby/api/ingest/clinical \
  -H "Authorization: Bearer grace_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": 12,
    "roomLabel": "LDR 12",
    "signals": [
      { "kind": "medication", "system": "RxNorm", "code": "6585",
        "display": "magnesium sulfate", "status": "active",
        "startedAt": "2026-06-21T22:05:00Z" },
      { "kind": "observation", "system": "LOINC", "code": "32421-5",
        "value": "Category II", "observedAt": "2026-06-21T22:30:00Z" }
    ]
  }'

Unknown site-local codes fall through to a per-hospital terminology map, so "group beta strep" at one site and "GBS" at another both resolve to the same factor once an admin maps them.

Modifier coverage map

42 modifiers · 14 via diagnosis · 11 via signal · 21 site-mapped
Read this first — it's a starting template

This is a starting template based on GRACE's default code mappings, not a guarantee of coverage. Every interface is unique, so each site completes a terminology mapping (managed at /app/integrations) to reach fuller coverage and to automate the site-mapped modifiers.

HL7 v2 ADT carries diagnoses only (DG1), so it reaches the diagnosis-acquired modifiers. Medication and observation modifiers arrive via FHIR R4 (Observation / MedicationAdministration) or POST /api/ingest/clinical.

The table below shows how each acuity modifier is acquired out of the box.Diagnosis = HL7 v2 DG1 / FHIR Condition; Signal = FHIR Observation / MedicationAdministration or /api/ingest/clinical; Site-mapped = no shipped rule — activate it for your hospital with a terminology mapping or manual entry.

ModifierAcquired viaDefault codes
Magnesium sulfate infusion
high-mag
AWHONN 1:1 for the first 60 min, then time-decays to 1:2.
DiagnosisSignalICD-10-CM: O15*, O99.89 · SNOMED-CT: 432815009 · medication — RxNorm 6585/29155
Morbid obesity (BMI ≥ 40)
high-obesity-bmi40
DiagnosisSignalICD-10-CM: O99.21* · observation — LOINC 39156-5
Poorly controlled diabetes / IV insulin
high-diabetes-poorly-controlled
DiagnosisSignalICD-10-CM: O24.0*, O24.3* · medication — RxNorm 5856/51428
Indeterminate FHR (Category II)
labor-fhr-cat-ii
From a diagnosis (O68) GRACE defaults to Cat II — only a coded observation distinguishes Cat III.
DiagnosisSignalICD-10-CM: O68* · observation — LOINC 32421-5/11949-4
Pre-eclampsia / PIH
high-preeclampsia
DiagnosisICD-10-CM: O14*, O11–O13, O16, O15* · SNOMED-CT: 398254007, 15938005, 46764007
Eclampsia — active seizure / post-ictal
high-eclampsia
DiagnosisICD-10-CM: O15* · SNOMED-CT: 15938005
Active hemorrhage
high-hemorrhage
DiagnosisICD-10-CM: O46*, O72*, O44.1*, O45* · SNOMED-CT: 47821001, 28766005, 17617000, 36813001, 415105001
Postpartum hemorrhage / stabilization
pp-hemorrhage
DiagnosisICD-10-CM: O72* · SNOMED-CT: 47821001, 28766005
IUFD / fetal demise
high-iufd
DiagnosisICD-10-CM: Z37.1/4/7, O36.4* · SNOMED-CT: 276507005, 237364002
Bereavement / perinatal loss care
high-bereavement
DiagnosisICD-10-CM: Z37.1/4/7, O36.4*
Maternal cardiac disease
high-cardiac
DiagnosisICD-10-CM: O99.41*
Maternal pulmonary disease
high-pulmonary
DiagnosisICD-10-CM: O99.51*
TOLAC / VBAC attempt
labor-tolac
DiagnosisICD-10-CM: O66.41
Multiple gestation in labor
labor-multiple-gestation
DiagnosisICD-10-CM: O30*
Critical / high-alert medication infusion (1:1)
high-critical-med-infusion
Signalmedication — RxNorm (by display)
Abnormal FHR (Category III)
labor-fhr-cat-iii
Not reachable from a diagnosis code — requires a coded FHR observation value.
Signalobservation — LOINC 32421-5/11949-4
MEWS / MEOWS trigger active
mews-active
Signalobservation — LOINC (MEWS/MEOWS by display)
Group B Strep positive (GBS+)
high-gbs-positive
Signallab — LOINC 88277-2/31773-6
Supplemental oxygen therapy
high-oxygen-therapy
Signalobservation — LOINC (oxygen / FiO2 by display)
Decreased fetal movement reported
high-decreased-fetal-movement
Signalobservation — local FETAL_MOVEMENT_DECREASED
Active pushing (second stage)
labor-active-pushing
Signalobservation — local SECOND_STAGE/ACTIVE_PUSHING
MEWS acknowledged — RN evaluating
mews-acknowledged
Site-mapped
Rule-out preterm labor
triage-rule-out-ptl
Site-mapped
Rule-out PPROM
triage-rule-out-pprom
Site-mapped
History of substance use disorder
high-substance-abuse-hx
Site-mapped
History of mental / behavioral health condition
high-mental-health-hx
Site-mapped
Known fetal / congenital anomaly
high-fetal-anomaly
Site-mapped
Recent trauma (MVA, fall, IPV)
high-recent-trauma
Site-mapped
Active vaginal bleeding (not show / spotting)
high-vag-bleeding
Default ICD-10 bleeding codes route to high-hemorrhage; map locally if you want this distinct modifier.
Site-mapped
Placenta previa
high-placenta-previa
O44.1 routes to high-hemorrhage by default; map locally for the distinct previa modifier.
Site-mapped
Prolapsed umbilical cord (STAT)
high-prolapsed-cord
Site-mapped
Fetal parts visible / imminent birth
high-fetal-parts-visible
Site-mapped
Birth imminent (time window)
birth-imminent
Driven by the labor-flow time window, not a code.
Site-mapped
Epidural initiation (≥30 min bedside)
labor-epidural-init
Site-mapped
Nitrous oxide analgesia
labor-nitrous-oxide
Site-mapped
Day-of-cesarean couplet flag
pp-csection-day
Site-mapped
Newborn surgery / circumcision (peri-op)
nb-surgery
Site-mapped
Centralized fetal telemetry monitoring
nb-telemetry
Site-mapped
Interpreter-mediated care
env-interpreter
Site-mapped
Dedicated labor-support role needed
env-labor-support
Site-mapped
Equity / SDoH risk
env-equity-risk
Site-mapped
Care-complexity / nurse-fatigue marker
pp-burnout-risk
Site-mapped
Site-to-site mapping: close the gaps by mapping your local codes to GRACE factors in the terminology table (admins, at /app/integrations), or via POST /api/admin/terminology. Unmapped codes seen on live feeds are collected into a worklist so you can map them as they appear. Agents can read this same table as JSON at /api/public/integration-capabilities.

Scoped API keys

Mint a key per integration at /app/integrations and grant only the scopes it needs. A PeriGen key might carry only ingest:clinical; a Workday key only ingest:roster.

ingest:adt

Generic JSON admit/discharge/transfer events.

ingest:hl7

Raw HL7 v2 ADT messages.

ingest:fhir

FHIR Encounter / Condition / Observation / MedicationAdministration.

ingest:census

Bulk room census snapshots.

ingest:staffing

Nurses-on-duty + call-staff availability.

ingest:clinical

Meds / observations / labs → acuity modifiers (PeriGen, flowsheets).

ingest:roster

Skill-mix + tenure roster (Workday / Oracle HCM).

ingest:batch

Bulk historical ADT backfill.

read:status

Read ingest pipeline + unit-state status.

read:unit-state

Read the computed GRACE verdict: unit level, room scores, AWHONN shortfall.

read:predict

Read the GRACE level + staffing-demand forecast.

Outbound interfaces

GRACE emits tiered surge alerts over email, SMS (Telnyx), and HMAC-signed webhooks. Point a webhook at your integration engine or a per-vendor adapter (Pulsara, Epic Secure Chat, secure messaging) and relay alerts to the devices your team already uses. Each delivery includes an X-Grace-Signature header (sha256=HMAC_SHA256(secret, rawBody)).

Beyond alerts, GRACE pushes native state events the moment the computed verdict changes — so a partner system can mirror GRACE in real time without polling. Events ship in the same grace.v1 envelope:

EventFires when
surge.level_changedUnit GRACE level changed (e.g. yellow → red). Includes prior level + driving axis.
room.rescoredA room's color changed after an ingest. Includes prior color, score, and factors.

Configure endpoints and signing secrets at /app/integrations. Agents can read the full machine contract — read endpoints, envelope, and webhook events — at /api/public/integration-capabilities or /api/openapi.json.

Ready to connect a unit? Request a demo and we'll provision scoped keys for your environment.