[{"data":1,"prerenderedAt":590},["ShallowReactive",2],{"home":3,"article-\u002Fblog\u002Fagentic-software-factory-fhir-graphpg":321},{"id":4,"title":5,"articleCta":6,"capabilities":11,"capabilitiesSectionText":52,"capabilitiesSectionTitle":53,"closing":54,"contact":59,"engagements":71,"engagementsSectionText":103,"engagementsSectionTitle":104,"extension":105,"faq":106,"footer":144,"founder":149,"getStartedSectionTitle":164,"getStartedSteps":165,"heroCtaButton":178,"heroKicker":179,"heroPoints":180,"introSectionText":184,"introSectionTitle":185,"meta":186,"microcopy":187,"navbar":203,"processSectionText":226,"processSectionTitle":227,"processSteps":228,"qualifier":245,"services":264,"servicesSectionText":285,"servicesSectionTitle":286,"stem":287,"trustBar":288,"whyUs":295,"whyUsSectionTitle":319,"__hash__":320},"home\u002Fhome.yaml","AI Automation, Agents & Software Architecture Consultancy",{"kicker":7,"title":8,"primary":9,"secondary":10},"Working on something like this?","A 30-minute call tells us both whether we can help.","Book a discovery call","More field notes",[12,16,20,24,28,32,36,40,44,48],{"title":13,"icon":14,"description":15},"Custom Software, Built Around Your Workflow","code","One-size-fits-all fits nobody in particular. We design and ship software that matches the way your team operates, not the way a generic product wants you to.",{"title":17,"icon":18,"description":19},"AI Automation & Agentic Workflows","workflow","n8n orchestrations, LangGraph agents, and RAG pipelines that quietly handle the repetitive work in the background. Fewer tickets, fewer copy-paste jobs, more throughput.",{"title":21,"icon":22,"description":23},"MCP Integrations for AI-Ready Tools","plug","We build Model Context Protocol servers that expose your internal systems to Claude, ChatGPT, and Copilot, so your team can use AI safely against the data that matters.",{"title":25,"icon":26,"description":27},"ERP, CRM & Data Integrations","database","We wire up the systems that should have been talking years ago. Clean data flows between ERP, CRM, and operational tools, plus dashboards that turn it into decisions.",{"title":29,"icon":30,"description":31},"Full-Stack Engineering","layers","Frontend, backend, databases, APIs: we cover the whole build in Vue, React, Node, Python, PostgreSQL, Redis and MongoDB. One team owning the stack top-to-bottom means fewer seams for bugs to hide in.",{"title":33,"icon":34,"description":35},"Cloud, Platform Engineering & DevOps","cloud","AWS, Azure, GCP. Kubernetes, Terraform, CI\u002FCD pipelines, infrastructure as code. We build the platform your app runs on so deploys are boring, environments are reproducible, and on-call isn't a horror story.",{"title":37,"icon":38,"description":39},"Security, SecOps & Compliance","shield","Security built in from day one, not bolted on before the audit. Threat modelling, least-privilege access, secret management, dependency hygiene, and the paper trail to prove it. Comfortable working under HIPAA, SOC 2, and enterprise security review.",{"title":41,"icon":42,"description":43},"Architecture & System Design","network","Monolith, microservices, event-driven or serverless: we pick the shape that matches your scale, your team, and your budget, not the one that looks impressive in a talk. Clear boundaries, clean contracts, documentation a human can read.",{"title":45,"icon":46,"description":47},"Industry Experience That Transfers","building","Healthcare (HIPAA, HL7, FHIR), insurance, fintech, logistics, SaaS. Different industries share the same underlying problems, and the patterns that solve them carry over.",{"title":49,"icon":50,"description":51},"The Idea You Haven't Built Yet","lightbulb","Got a weird integration, a backlog of 'we should automate this', or a product idea that no vendor covers? Tell us about it. The interesting work tends to start with a messy whiteboard.","When the SaaS subscriptions stop adding up and the spreadsheets start creaking, it's time for something built around how your business works. Here's where we come in.","When Off-the-Shelf Software Stops Fitting",{"kicker":55,"title":56,"accent":57,"tagline":58},"Next step","Bring the problem.","We'll bring the architecture.","Software architecture and AI automation consultancy, led by a senior architect.",{"title":60,"description":61,"form":62},"Let's Talk About the Work You'd Rather Not Do Manually.","Tell us what's slow, brittle, or eating your team's week. We'll tell you whether automation, an AI agent, or a proper architecture rethink is the right call, and what it would take.",{"title":63,"description":64,"namePlaceholder":65,"emailPlaceholder":66,"messagePlaceholder":67,"submitButton":68,"errorMessage":69,"thankYouMessage":70},"Get in Touch","Tell us about your project or pain points.","Your Name","Your Email","How can we help?","Let's Talk","Oops! Something went wrong. Please try again later, or email us at","Thank you! We'll be in touch shortly.",[72,78,83,88,93,98],{"title":73,"featured":74,"bestFor":75,"description":76,"price":77},"Discovery Sprint",true,"Best for: teams with a fuzzy problem and a real deadline.","A focused one-to-two week engagement to turn a vague brief into a concrete plan. You walk away with an architecture recommendation, a costed roadmap, and a clear go\u002Fno-go.","Fixed fee · scoped up front",{"title":79,"bestFor":80,"description":81,"price":82},"Architecture Review","Best for: existing systems, vendor proposals, or pre-build sanity checks.","We review your codebase, infrastructure, or an incoming quote and give you a plain-English report: what's solid, what's risky, what to fix first, and what it'll cost.","Fixed fee · 1–2 weeks",{"title":84,"bestFor":85,"description":86,"price":87},"System & Architecture Audit","Best for: due diligence, pre-acquisition, or deep technical forensics across a product suite.","A multi-week, independent deep-dive across architecture, codebase, CI\u002FCD, security posture, and cloud-readiness. Delivered as a structured written report for executive stakeholders: technical risks, modernization gaps, and prioritized recommendations, backed by evidence.","Fixed fee · 3–12 weeks",{"title":89,"bestFor":90,"description":91,"price":92},"Fractional Architect Retainer","Best for: founders and SMEs without a full-time technical lead.","Ongoing senior technical leadership on a monthly retainer. You get a CTO-level adviser on call for hiring, architecture, vendor calls, and the decisions that are expensive to get wrong.","Monthly retainer · flexible scope",{"title":94,"bestFor":95,"description":96,"price":97},"Fixed-Scope Build","Best for: automations, integrations, and well-defined features.","You know what you need. We scope it, quote it, and ship it in four to twelve weeks, with working software demoed every fortnight.","Fixed quote after discovery",{"title":99,"bestFor":100,"description":101,"price":102},"Ongoing Delivery Partner","Best for: longer builds and teams that want a steady senior partner.","A small, senior pod working alongside your team on a rolling basis. Great for modernization, platform work, and anything that needs architectural consistency over months, not weeks.","Monthly · capped effort","Pick the engagement shape that fits the problem. We'll tell you which one you probably need.","Ways to Work With Us","yaml",{"title":107,"subtitle":108,"cta":109,"questions":110},"Frequently Asked Questions","The questions we hear most often on discovery calls.","Still have questions? Email us at",[111,114,117,120,123,126,129,132,135,138,141],{"question":112,"answer":113},"What does Innovi Pro do?","We're a small software consultancy. Two things we do well: help you make the big technical decisions (architecture, stack, vendors, scaling), and build the software and automations that come out of those decisions. Think senior engineering partner rather than body-shop agency.",{"question":115,"answer":116},"Who do you work with?","Founders and SMEs who've outgrown spreadsheets and SaaS duct tape, scale-ups that need a senior hand on the architecture, and established companies that want to modernize operations without a year-long transformation project. Industry-wise we've shipped work in healthcare, insurance, fintech, logistics, and SaaS.",{"question":118,"answer":119},"How is this different from hiring an agency or a dev shop?","You talk to the people doing the work. No layered account managers, no pitch-deck team handing you off to juniors. Engagements are led by a senior software architect, delivered by a small trusted network, and sized to the outcome — not to fill a bench.",{"question":121,"answer":122},"Do you only do AI work?","No. AI and automation are a big part of what we do because that's where most of the quick wins are right now, but the core of the business is solid software architecture and custom development. Sometimes the best answer is a better database schema, not an AI agent.",{"question":124,"answer":125},"How do engagements typically start?","With a short discovery call: no deck, no hard sell. We want to understand what is slow, brittle, or blocked. From there you get one of three things: a fixed-scope project proposal, a retainer for ongoing architectural guidance, or an honest 'you don't need us for this' and a pointer in the right direction.",{"question":127,"answer":128},"How much does a project cost?","It depends on scope and on how involved you want us to be. Discovery sprints, reviews and audits are fixed-fee and scoped up front. Builds get a fixed quote once discovery has defined them. Advisory and delivery partnerships run on a monthly retainer. Every proposal lists the deliverables, what is out of scope and how each deliverable will be accepted. We'd rather quote accurately than quote fast.",{"question":130,"answer":131},"How quickly can you start?","Discovery calls usually happen within the week. For smaller automation or advisory work we can often start within two weeks. Larger builds are planned around your timeline and ours. We deliberately keep the active client list small so the people you meet are the ones actually doing the work.",{"question":133,"answer":134},"Will you work with our existing team and tools?","Almost always, yes. Most of our work augments an in-house team rather than replacing it. We adapt to your stack, your processes, and your codebase; we're not here to rewrite everything in our favorite framework.",{"question":136,"answer":137},"What about security, compliance, and data protection?","Taken seriously by default. We've worked under HIPAA in healthcare and inside the security expectations of large regulated enterprises. NDAs are standard, data stays where it should, and we're comfortable operating in environments where audit trails and access control aren't optional.",{"question":139,"answer":140},"Do you have a preferred automation platform?","We use n8n heavily because it provides the right balance of power and transparency for most business automation. That said, we're not religious about tools. If a project is better served by a custom workflow engine, a LangGraph agent, or even plain code, that's what we'll recommend.",{"question":142,"answer":143},"We're not sure what we need yet. Is it too early to talk?","That's the best time to talk. A 30-minute call before you commit to a direction tends to save months of rebuilding later. Bring the problem, not a spec, and we'll help you figure out the shape of the solution.",{"title":145,"address":146,"email":147,"copyright":148},"Innovi Pro","Cluj-Napoca, Romania","contact@innovi.pro","© 2025 Innovi Pro. All rights reserved.",{"kicker":150,"name":151,"role":152,"photoAlt":153,"bio":154,"tags":157},"The architect behind Innovi Pro","Mihai Farcas","Lead Software Architect","Mihai Farcas, Lead Software Architect at Innovi Pro",[155,156],"I help teams across industries design and deliver custom software that is secure, scalable, and built around real operational needs. My work combines **architecture consulting** with hands-on delivery through a trusted network of engineers, so you can ship without hiring a full team first.","I write about the engineering behind this work on [mihai.ltd](https:\u002F\u002Fmihai.ltd\u002Fblog) and on the [Innovi Pro blog](\u002Fblog).",[158,159,160,161,162,163],"Software architecture","Agentic AI","n8n","MCP","Kubernetes","Healthcare IT","Get Started In 4 Easy Steps",[166,169,172,175],{"title":167,"description":168},"Reach Out","Email us or fill out the contact form describing your project requirements.",{"title":170,"description":171},"Discovery Call","We'll schedule a discovery call to discuss your vision and goals.",{"title":173,"description":174},"Get a Quote","Get a tailored proposal outlining the recommended solutions, timeline, and cost.",{"title":176,"description":177},"We Start Building","Once you're ready, we kick off the development process and keep you updated every step of the way.","See How We Can Help","Software architecture · AI automation · Cluj-Napoca",[181,182,183],"Led by a senior software architect","Production n8n & agentic AI systems","HIPAA, HL7 and FHIR experience","We build the AI agents, n8n workflows, and MCP integrations that take the repetitive, unglamorous work off your team, so people spend their time on the parts of the job that need a human.","AI Automation Built Around [Your Business.]",{},{"primaryCta":9,"stackTitle":188,"scorecardLink":189,"partnerBadge":190,"qualifierCta":193,"ideaCta":194,"featuredEngagement":195,"engagementsHelp":196,"engagementsHelpLink":197,"whyUsCard":198,"formNote":202},"The stack we ship on","The method",{"kicker":191,"label":192},"Production stack","n8n automation","Sounds like us? Let's talk","Tell us about it","Typical first step","Not sure which one fits?","Book a call and we'll tell you.",{"kicker":199,"title":200,"cta":201},"Start here","A 30-minute call. No deck, no hard sell.","Book it","NDAs are standard. Your message goes straight to the architect.",{"items":204},[205,208,211,214,217,220,223],{"title":206,"url":207},"Services","\u002F#services",{"title":209,"url":210},"Capabilities","\u002F#capabilities",{"title":212,"url":213},"Process","\u002F#process",{"title":215,"url":216},"Engagements","\u002F#engagements",{"title":218,"url":219},"Why Us","\u002F#why-us",{"title":221,"url":222},"Blog","\u002Fblog",{"title":224,"url":225},"Book a Call","\u002F#contact","No mystery, no 40-page Statements of Work. Here is what working with us looks like.","How We Work",[229,233,237,241],{"title":230,"meta":231,"description":232},"1. Discovery Call","30 min · free","A 30-minute conversation. You describe what's slow, broken, or blocking. We ask the awkward questions. No deck, no pitch, no obligation. If we're not the right fit, we'll say so and point you at someone who is, when we know one.",{"title":234,"meta":235,"description":236},"2. Architecture & Scoping","1–2 weeks · fixed fee","A short, paid deep-dive of one to two weeks. You get a written architecture recommendation, a risk list, and a costed roadmap. This alone is often the most valuable thing clients buy from us.",{"title":238,"meta":239,"description":240},"3. Build, Automate, Integrate","2-week cycles","Delivered in short, visible iterations: two-week cycles with working software at the end of each. We work in the open: shared backlog, shared repo, direct access to the engineers.",{"title":242,"meta":243,"description":244},"4. Handover & Keep-The-Lights-On","Optional retainer","You get clean code, documentation a human can read, and a team that's trained to own it. We stick around on a light retainer if you want ongoing architectural guidance, or step fully out. Your call.",{"title":246,"subtitle":247,"items":248},"Is this you?","Most of our best engagements start with one of these.",[249,252,255,258,261],{"title":250,"description":251},"Your SaaS stack has quietly become a spreadsheet with extra steps.","Ten tools, three of them half-used, and the real process still lives in someone's inbox. You need software that fits the way your team works.",{"title":253,"description":254},"You inherited a codebase and you're not sure if it's salvageable.","Maybe a previous agency, maybe a co-founder who left. You need a clear-eyed second opinion before you put another cent into it.",{"title":256,"description":257},"Your team spends half its week on work a computer should be doing.","Invoicing, triage, copy-pasting between systems, answering the same five questions. You're ready to automate but want it done properly, not with a fragile chain of scripts.",{"title":259,"description":260},"You're about to commit to a 6-figure build and want a second pair of eyes.","An independent architecture review before you sign. Vendor quotes decoded into plain English. A roadmap you can follow.",{"title":262,"description":263},"You know AI should be helping, but you don't know where to start.","Not another chatbot demo: automations and agents plugged into the systems you already run, with straight advice about what is worth doing and what is hype.",[265,275],{"title":266,"description":267,"icon":268,"deliverables":269},"Software Architecture & Technical Consultancy","A senior architect in your corner, without the full-time headcount. Independent system and architecture audits, technical due diligence, vendor code reviews, cloud and container readiness assessments, and costed modernization roadmaps. We produce written, data-driven reports executives can act on and engineers actually respect. Especially useful before acquisitions, major rebuilds, or any six-figure technical decision.","architect",[270,271,272,273,274],"Architecture and system audits","Technical due diligence","Vendor code reviews","Cloud and container readiness","Costed modernization roadmaps",{"title":276,"description":277,"icon":278,"deliverables":279},"AI Automation, Agents & n8n Workflows","Production-grade automation, not demo-ware. We design n8n workflows, build custom agentic AI with LangGraph, and ship MCP servers that plug your internal tools straight into Claude, ChatGPT, and Copilot. Autonomous agents for support, invoicing, and back-office ops. Clean integrations between ERP, CRM, and AI that keep working on a Monday morning.","automation",[280,281,282,283,284],"n8n workflows","LangGraph agents","MCP servers for Claude, ChatGPT and Copilot","Support, invoicing and back-office agents","ERP and CRM integrations","Two ways to work with us: strategic consultancy when the decisions are expensive, and hands-on delivery when it's time to build. Often both.","What We Do","home",{"title":289,"items":290},"Senior experience you can reach directly.",[291,292,293,294],"10+ years shipping enterprise software","Experience across healthcare, insurance, fintech & SaaS","Published on DEV, YouTube & industry blogs","HIPAA · HL7 · FHIR experience",[296,300,303,307,311,315],{"title":297,"icon":298,"description":299},"A Team Led by an Architect","compass","Every engagement is led end-to-end by a senior software architect: the same person on the discovery call, in the design doc, and on the pull requests. No handoff to a junior delivery team, no layer of account managers translating between you and the build.",{"title":301,"icon":26,"description":302},"In-House Technology: GraphPG","For high-performance API and data layer challenges, we build client solutions on top of GraphPG—our self-developed open-source engine that compiles PostgreSQL schemas into instant GraphQL and REST APIs with zero ORM overhead.",{"title":304,"icon":305,"description":306},"Deep n8n Expertise, Serious About AI","badge","Extensive production experience in n8n, LangGraph, MCP, and the wider agentic AI stack. We pick the right tool for the job instead of forcing every problem into the same framework.",{"title":308,"icon":309,"description":310},"Enterprise Experience, Startup Pace","gauge","Patterns learned on large-scale enterprise systems, applied at the speed a smaller team needs. Secure, scalable, and not over-engineered.",{"title":312,"icon":313,"description":314},"Small Team, Direct Access","users","You talk to the people doing the work. Decisions happen in hours, not change-request cycles. Lean on purpose, so your budget goes into outcomes instead of overhead.",{"title":316,"icon":317,"description":318},"AI-Accelerated Delivery","sparkles","We use AI to move faster where it helps (code scaffolding, research, testing) and keep humans in charge of the parts that matter. You get more software, sooner, without the usual quality trade-off.","Why Teams Work With Us","kiqaF1iGiKC3v27DpBXyk6H_uQLIPyZi0Phh4GuCa18",{"id":322,"title":323,"author":145,"body":324,"canonical":570,"date":571,"description":572,"extension":573,"image":360,"imageAlt":574,"imageFallback":575,"meta":576,"navigation":74,"ogImage":575,"path":577,"published":74,"readingTime":578,"seo":579,"stem":580,"tags":581,"twitterCard":587,"type":588,"__hash__":589},"blog\u002Fblog\u002Fagentic-software-factory-fhir-graphpg.md","Fast and Correct: Building FHIR Software with graphpg and Coding Agents",{"type":325,"value":326,"toc":562},"minimark",[327,331,335,351,354,362,367,370,373,377,380,383,386,389,393,396,403,406,435,442,446,449,452,471,474,481,508,512,515,518,522,525,528,549,558],[328,329,323],"h1",{"id":330},"fast-and-correct-building-fhir-software-with-graphpg-and-coding-agents",[332,333,334],"p",{},"Speed and correctness often trade against each other. In healthcare software the trade is worse, because a fast mistake can expose a patient record or double-book a clinician.",[332,336,337,338,345,346,350],{},"I got both on a FHIR R5 platform: a data model with more than 170 tables, row-level security, appointment booking, a patient portal and a clinician workspace. I did not write an API layer, and the system refuses to break its own rules. Two things made that possible. ",[339,340,344],"a",{"href":341,"rel":342},"https:\u002F\u002Fgithub.com\u002Fmihailtd\u002Fgraphpg",[343],"nofollow","graphpg"," is an open-source engine I built that turns a PostgreSQL schema into GraphQL and REST. The second is an ",[347,348,349],"strong",{},"agentic software factory",": coding agents that work inside rules the database and the generated contract enforce.",[332,352,353],{},"I won't give you a delivery date, because scope and integrations set that. This article is about what the method changes: how much you stop writing, and how much you stop worrying about.",[332,355,356],{},[357,358],"img",{"alt":359,"src":360,"title":361},"Three-column diagram of the software factory: a human decides the FHIR model, security rules and constraints; graphpg generates the API and a typed contract; coding agents build screens, typed operations and browser tests inside that contract.","\u002Fblog\u002Fdiagrams\u002Fagentic-software-factory-fhir-graphpg.webp","The database sets the rules. Agents build inside them.",[363,364,366],"h2",{"id":365},"why-healthcare-builds-run-slow","Why healthcare builds run slow",[332,368,369],{},"A clinical product carries a lot of plumbing. Each table gets endpoints. Each endpoint gets pagination, filters, and an authorization check. A nested screen requires a resolver that does not fire one query per row. None of that is clinical work, yet all of it has to be right.",[332,371,372],{},"Ask any agency you are comparing how much of their estimate is plumbing like this. The answer tells you where your budget goes.",[363,374,376],{"id":375},"velocity-the-api-layer-disappears","Velocity: the API layer disappears",[332,378,379],{},"graphpg reads the PostgreSQL catalog at startup and serves a GraphQL API and a REST API from it. Filtering, ordering, pagination and nested writes come with the schema. Each request compiles into one SQL statement, so a nested chart query is one round trip.",[332,381,382],{},"Add a column in a migration, and the API, the schema export and the typed client change with it. You write no endpoint and update no resolver.",[332,384,385],{},"The engine is also quick to start. On this schema, 173 tables at the time, graphpg built the full GraphQL schema in 85 ms and PostGraphile took 880 ms. I measured both on PostgreSQL 18.6 on 2 October 2026, before graphpg 1.0, so rerun it on your own schema before you trust the ratio.",[332,387,388],{},"Time moves from plumbing to the part clients notice: the clinical workflow and the screens.",[363,390,392],{"id":391},"correctness-the-database-refuses-to-be-wrong","Correctness: the database refuses to be wrong",[332,394,395],{},"I put access control and scheduling integrity in PostgreSQL, not in application code.",[332,397,398,399,402],{},"Patients can read their own record. The public can read a sanitized doctor directory. A clinician opens a patient's chart only with a care relationship or a full-chart approval, and the API answers with a typed ",[14,400,401],{},"PATIENT_CHART_ACCESS"," error otherwise. Row-level security enforces these rules on every query, whoever wrote the query, human or agent.",[332,404,405],{},"Booking works the same way. The database refuses to book one practitioner twice at the same time:",[407,408,413],"pre",{"className":409,"code":410,"language":411,"meta":412,"style":412},"language-sql shiki shiki-themes github-dark-default","ALTER TABLE appointments ADD CONSTRAINT appointments_practitioner_no_overlap\n  EXCLUDE USING gist (practitioner_id WITH =, period WITH &&)\n  WHERE (status NOT IN ('cancelled', 'entered-in-error', 'noshow'));\n","sql","",[14,414,415,423,429],{"__ignoreMap":412},[416,417,420],"span",{"class":418,"line":419},"line",1,[416,421,422],{},"ALTER TABLE appointments ADD CONSTRAINT appointments_practitioner_no_overlap\n",[416,424,426],{"class":418,"line":425},2,[416,427,428],{},"  EXCLUDE USING gist (practitioner_id WITH =, period WITH &&)\n",[416,430,432],{"class":418,"line":431},3,[416,433,434],{},"  WHERE (status NOT IN ('cancelled', 'entered-in-error', 'noshow'));\n",[332,436,437,438,441],{},"When two patients race for one slot, the loser gets a typed ",[14,439,440],{},"SLOT_UNAVAILABLE"," error, not a double booking. These controls support a HIPAA program. They do not replace one.",[363,443,445],{"id":444},"agents-fast-because-the-checks-are-fast","Agents: fast because the checks are fast",[332,447,448],{},"An agentic software factory is not a chatbot that suggests snippets. Agents take a task, change the code, run the checks and fix what fails. The factory part is the set of rules and checks around them.",[332,450,451],{},"Agents go wrong when nothing checks them. They invent a field, skip an authorization filter, or change one place and miss four others. The method removes those failure modes:",[453,454,455,459,462,465,468],"ul",{},[456,457,458],"li",{},"The project carries a written rule file for agents. They model FHIR tier by tier, write every schema change as a migration, and never hand-edit the generated GraphQL schema or the generated TypeScript types.",[456,460,461],{},"GraphQL Code Generator turns the graphpg schema into typed operations. A field that does not exist is a compile error, not a runtime surprise.",[456,463,464],{},"Row-level security holds even when an agent forgets a filter.",[456,466,467],{},"More than 40 database test scripts run on PGlite, PostgreSQL compiled to WebAssembly. Applying every migration takes about 2 seconds and the suites about 3 more, so an agent gets an answer in seconds.",[456,469,470],{},"Playwright browser tests run against a throwaway stack that uses the published graphpg image.",[332,472,473],{},"I review the migrations and the policies. The agents do the repetitive work of screens, forms and tests, and the checks catch what they get wrong.",[332,475,476],{},[357,477],{"alt":478,"src":479,"title":480},"Three columns: generated, not written (GraphQL and REST, typed client, nested writes); enforced, not remembered (row-level security, hard constraints, typed errors); checked, not trusted (pinned schema, compile errors, fast test loop).","\u002Fblog\u002Fdiagrams\u002Fvelocity-correctness.webp","What graphpg removes, and what it refuses to get wrong.",[332,482,483,484,489,490,495,496,501,502,507],{},"I wrote more about the two key guardrails on mihai.ltd: ",[339,485,488],{"href":486,"rel":487},"https:\u002F\u002Fmihai.ltd\u002Fblog\u002Fend-to-end-type-safety-ai-coding-agents",[343],"end-to-end type safety for AI coding agents"," and ",[339,491,494],{"href":492,"rel":493},"https:\u002F\u002Fmihai.ltd\u002Fblog\u002Frow-level-security-ai-coding-agents",[343],"row-level security for AI-built apps",". The design of the engine is in ",[339,497,500],{"href":498,"rel":499},"https:\u002F\u002Fmihai.ltd\u002Fblog\u002Fbuilding-graphpg-graphql-and-rest-from-postgres",[343],"Why GraphQL and REST Should Share One Engine",". The graphpg documentation covers ",[339,503,506],{"href":504,"rel":505},"https:\u002F\u002Fmihailtd.github.io\u002Fgraphpg\u002Fdocs\u002Fai-agents",[343],"agents that build applications"," and configuration.",[363,509,511],{"id":510},"what-this-is-and-what-it-is-not","What this is, and what it is not",[332,513,514],{},"It is a FHIR R5 data model with GraphQL and REST APIs generated from it. Each resource keeps its full FHIR payload as JSONB, and the columns the product queries sit next to it.",[332,516,517],{},"It is not a certified or conformant FHIR server, and HL7 does not endorse it. The database checks structure with JSON Schema, which is not full FHIR profile validation. If your product has to exchange data with hospital systems, that needs a conformant endpoint, and we scope it as its own piece of work.",[363,519,521],{"id":520},"work-with-innovi-pro","Work with Innovi Pro",[332,523,524],{},"Speed without correctness is a liability in healthcare, and correctness without speed is a budget problem. The method gives you both, and it keeps agent work checkable.",[332,526,527],{},"Here is how an engagement starts:",[453,529,530,533,541],{},[456,531,532],{},"A paid architecture and scoping engagement of one to two weeks at a fixed fee, ending in a written recommendation, a risk list and a costed roadmap.",[456,534,535,536,540],{},"Delivery in two-week cycles, with working software at the end of each. The five phases are in ",[339,537,539],{"href":538},"\u002Fblog\u002Fhow-innovi-pro-works-delivering-custom-healthcare-software-solutions","how Innovi Pro delivers custom healthcare software",".",[456,542,543,544,548],{},"An ",[339,545,547],{"href":546},"\u002Fblog\u002Farchitecture-audit-eight-dimensions","architecture audit"," first, if you already have a FHIR stack and want a second opinion.",[332,550,551,552,557],{},"If you are planning a clinical product, ",[339,553,556],{"href":554,"rel":555},"https:\u002F\u002Finnovi.pro\u002F#contact",[343],"book a discovery call",". Bring your workflow and your deadline, and we will tell you what the method can and cannot do for them.",[559,560,561],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":412,"searchDepth":425,"depth":425,"links":563},[564,565,566,567,568,569],{"id":365,"depth":425,"text":366},{"id":375,"depth":425,"text":376},{"id":391,"depth":425,"text":392},{"id":444,"depth":425,"text":445},{"id":510,"depth":425,"text":511},{"id":520,"depth":425,"text":521},"https:\u002F\u002Finnovi.pro\u002Fblog\u002Fagentic-software-factory-fhir-graphpg","2026-10-30","How graphpg removes the API layer and enforces security and booking rules in PostgreSQL, so coding agents can build FHIR healthcare software fast without breaking it.","md","Three-column diagram of the software factory: a human decides the FHIR model, security rules and constraints; graphpg generates the GraphQL and REST API and a typed contract; coding agents build the screens, typed operations and browser tests inside that contract.","\u002Fblog\u002Fdiagrams\u002Fagentic-software-factory-fhir-graphpg.png",{},"\u002Fblog\u002Fagentic-software-factory-fhir-graphpg","7 min",{"title":323,"description":572},"blog\u002Fagentic-software-factory-fhir-graphpg",[582,583,584,585,344,586],"healthcare software","FHIR","agentic AI","software factory","architecture","summary_large_image","article","vb4UOQibrYEL9mUg4TToMExyHqQmjB8kC4eQk4TEi10",1794135505866]