{"slug": "the-server-rejected-the-norepinephrine-and-that-was-the-best-thing-that-happened", "title": "The server rejected the norepinephrine — and that was the best thing that happened", "summary": "A critical care physician in Colombia built OMAXI, an LLM pipeline that converts Spanish clinical documents into structured data and physician-signable notes. During a validation experiment against a FHIR R4 server, the server rejected a norepinephrine medication record due to a missing dose or rate, prompting the developer to explicitly declare the absence using the standard data-absent-reason extension rather than fabricating a quantity. The developer emphasizes the importance of avoiding valid resources that lie and shares the full write-up and test case on GitHub.", "body_md": "I'm a critical care physician in Colombia. For months I've been\n\nbuilding OMAXI, an LLM pipeline that reads Spanish clinical\n\ndocuments — nursing records, resident notes, lab reports — and\n\nturns them into structured data plus a note a physician can sign.\n\nThe rule is narrow: structure what the documents say, never infer\n\nwhat they don't. In critical care, the failure that matters isn't\n\na missed nuance. It's a confident fabrication.\n\nLast week I ran an experiment: map the pipeline's output to FHIR\n\nR4 and validate it against a real server (a Medplum project) —\n\nactual POSTs, every resource read back to confirm what persisted.\n\nOf 38 resources in the first run, the server rejected 2.\n\nOne of them was norepinephrine — the drug that defines the\n\nseverity of septic shock. The reason: R4 carries an invariant on\n\nMedicationAdministration (`mad-1`\n\n) requiring a dose or a rate.\n\nThe source documented \"0.35 mcg/kg/min\", which can't become a\n\nUCUM quantity without the patient's weight — and the pipeline\n\ndoesn't extract weight. Text alone isn't enough. The standard\n\nsaid no.\n\nThere was an easy fix: write `dose: 0.35 mcg`\n\nand pass validation\n\ninstantly — producing a perfectly valid resource that lies about\n\na vasopressor dose. I did the opposite: declared the absence\n\nexplicitly with the standard `data-absent-reason`\n\nextension\n\n(`as-text`\n\n). It satisfies the invariant without asserting any\n\nquantity, and preserves the original text and route.\n\nThe goal isn't to produce valid resources. It's to avoid\n\nproducing valid resources that lie.\n\nThat rejection turned out to be the most useful moment of the\n\nwhole experiment. The rest of the friction log is just as\n\ninstructive:\n\nBoth runs used entirely fictitious data — including a fabricated\n\nday-2 ICU case (septic shock, four documents, Spanish) that's now\n\nin the repo as a reusable test case for anyone working on\n\nSpanish-language clinical NLP.\n\nFull write-up — what survives the trip to FHIR, what breaks, and\n\nin which layer:\n\n[https://github.com/JesusPantojaP/fhir-spanish-icu-notes](https://github.com/JesusPantojaP/fhir-spanish-icu-notes)\n\nIf you work on FHIR in Latin America, Spanish-language clinical\n\nNLP, or LLM extraction pipelines with validation layers, I'd\n\ngenuinely like to compare notes — especially on terminology\n\nassignment with a human in the loop, which I don't think is\n\nsafely automatable yet.", "url": "https://wpnews.pro/news/the-server-rejected-the-norepinephrine-and-that-was-the-best-thing-that-happened", "canonical_source": "https://dev.to/jesuspantojap/the-server-rejected-the-norepinephrine-and-that-was-the-best-thing-that-happened-tags-fhir-4jmi", "published_at": "2026-08-03 22:33:29+00:00", "updated_at": "2026-08-03 23:12:38.198891+00:00", "lang": "en", "topics": ["large-language-models", "artificial-intelligence", "ai-products", "developer-tools"], "entities": ["OMAXI", "FHIR R4", "Medplum", "norepinephrine", "GitHub", "JesusPantojaP"], "alternates": {"html": "https://wpnews.pro/news/the-server-rejected-the-norepinephrine-and-that-was-the-best-thing-that-happened", "markdown": "https://wpnews.pro/news/the-server-rejected-the-norepinephrine-and-that-was-the-best-thing-that-happened.md", "text": "https://wpnews.pro/news/the-server-rejected-the-norepinephrine-and-that-was-the-best-thing-that-happened.txt", "jsonld": "https://wpnews.pro/news/the-server-rejected-the-norepinephrine-and-that-was-the-best-thing-that-happened.jsonld"}}