Home/Device Sandbox
Medical device sandbox

Point a device at it and see what a reasoning engine makes of five minutes.

A public endpoint that accepts infusion pump and ventilator data, computes a five-minute interval summary, and hands that summary to a reasoning engine alongside a synthetic patient chart. What comes back is what the engine concluded and, more usefully, what it could not conclude and why.

Running right nowLIVE

Check it before you trust it. This returns what the endpoint accepts, needs no key, and is generated by the deployed code, so it always describes what is actually running:

curl https://aimedagent.net/device

You issue your own key

No approval step, no form, no waiting and nobody to email. It is free, there is nothing to sign, and there is no agreement, no fee and no NDA.

# no dependencies, needs only Node 18 or newer
curl -O https://aimedagent.net/pcde-client.mjs

# mints a key in your name, builds a synthetic five-minute pump
# window, sends it, and prints what came back. One command.
node pcde-client.mjs --org "Your Company" --demo

Or mint one directly, if you would rather point your own gateway at it:

curl -X POST https://aimedagent.net/device/key \
  -H 'Content-Type: application/json' \
  -d '{"organization":"Your Company"}'

Your organization name goes inside the key, so a connection is attributable without a lookup and nobody keeps a list. That is the only job the key does. It is a name tag, not a security boundary, because there is nothing behind the door worth forcing.

Two doors

Send what you already emit, or send JSON. Nothing else is required of you.

DoorWhat it takes
POST /device/hl7
application/hl7-v2
The IHE PCD-01, PCD-10 or PCD-04 your gateway already produces, unchanged. One message or a window of them in a single body. The epoch arithmetic happens here, not on your side. This is the door that needs no new code from a legacy vendor: a URL and a bearer token.
POST /device/epoch
application/json
Samples, or a summary you computed yourself. Schema is in the ingest specification.
POST /device/key
application/json
An organization name. Returns a working key immediately.
GET /device
no key needed
Capability statement, generated by the running code.
GET /device/health
no key needed
Liveness.

The interval is yours to choose between one and ten minutes, set when you mint your key. Five is the default, and it exists so the interval is a testable variable rather than an assumption.

What comes back

Not an inbox. The response is the point.

Timestamps that carry no time of day, or that all land on the same instant, are reported as such rather than silently accepted. That failure produced a wrong-but-plausible answer here once, and the correction is now permanent.

Claimed versus observed

A vendor’s IHE Integration Statement names profiles. It does not say which transactions, which options, or against which revision of the Technical Framework. Statements in the field range from naming five profiles with no transaction numbers and “HL7 Not Applicable”, to naming every transaction explicitly. Same claimed profile, very different amounts of information.

So the response also tells you what you actually sent. Not a verdict. Nothing here fails.

Delivery Stop does not mean the infusion stopped. It also fires on a rate change, a secondary start, a bolus and a VTBI change. The meaning is not in the event code, it is in the status and mode carried alongside, and it only resolves when you read the Stop together with the Start that follows it. A receiver reading the code alone is wrong more often than it is right, and wrong silently. The response counts how many times that happened in your window.

One thing we find that no validator will. IPEC Rev 1.4 carries KVO in MDC_PUMP_MODE. Shipping products carry it in MDC_PUMP_STAT. Same clinical event, two incompatible encodings, both defensible against their own source. If your stream mixes them, the response says so.

These readings are ours, not the standard’s, and the response says so on every send. Table X.1.2.1-3 in the Rev 1.4 supplement is titled Clinical Scenarios. It illustrates. It does not prescribe, and nothing in the supplement requires a receiver to correlate a Stop with a following Start at all. Every receiver infers this independently, from worked examples, and arrives somewhere slightly different. That is the gap this sandbox exists to show. The NIST DEV tool validates a message you paste into a box. This reports what a system does across a window.

A companion, for the other half of the problem

This sandbox measures one device against the published tables. It does not help you choose between vendors, and it does not address the thing that actually goes wrong at scale: a hospital does not deploy one pump, it deploys several hundred at once onto a wireless network nobody tested for that.

Infusion pumps on hospital networks is an open, vendor-neutral scoring sheet for exactly that question. Score up to three vendors side by side across capability, wireless performance, server architecture, interoperability, and a measured wireless test protocol. Free, no sign-in, nothing collected. There is no standard for this and no notified body to ask, which is the whole reason it exists.

The rules, which are short

Simulator or generated output only. Never a real patient. The endpoint refuses anything carrying a patient name, a birth date or an identifier outside a published synthetic allowlist, and it refuses it before the payload is stored, logged or read by a model. A refusal names the field path, never the value.

Nothing you send is retained. Compute, reason, return, discard. One line per event goes to the server log: a fixed marker, whether it was a key mint or a send, and the organization name you supplied. No payload, no field, no value, ever.

Synthetic, not de-identified. Those are different categories carrying very different risk. Data that was never about a person is not protected health information at all. De-identified data invites a provenance question neither party can audit.

Why a manufacturer would bother

For twenty years every argument for device connectivity has been made to hospitals, and it has failed, because the benefit lands on the hospital and the cost lands on the manufacturer. This is the version where the manufacturer gets something directly.

Nobody is named without written consent. Silence is not consent, and a company that connects and says nothing appears in no published count.

Ingest specification (PDF, 14 pages) Reference client The argument behind it Tell me you connected Version 0.4, 31 August 2026. Section 10a documents the conformance block the endpoint returns. GET /device returns current behavior and needs no key.

Built on published standards only. IHE Devices Technical Framework Rev 10.0, Final Text, 4 November 2024, Volume 3 sections 7.1 and 7.2 for terminology, ISO/IEEE 11073 for the device model, and UCUM for units. Nothing in the specification derives from any vendor's proprietary documentation.

Daniel Pettus spent forty years in medical device and health IT leadership at Alaris, CareFusion and BD, contributed to IHE Patient Care Device interoperability standards, and is named on two United States patents. He writes Inside the Loop at insidetheloopdp.substack.com and is the author of The Technology Was Never the Problem, at pettusbook.com.

AI MedAgent is a research demonstration of a patent-pending method. Advisory only. Not a medical device. Not for clinical use. Synthetic data only.