Projo FHIR Documentation
0.1.0 - ci-build Switzerland flag

Projo FHIR Documentation - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Architectural Decisions

Architectural Decisions

Index of Projo's Architectural Decision Records (ADRs). Each entry links to the source file in docs/adr/.

ADR Title Summary  
0001 Adopt Dark Factory Adopts Software Dark Factory for autonomous ticket-to-PR workflow.  
0002 Adopt plan-slot Organization extension Replaces single-valued default-plan with repeating plan-slot extension binding kind + planDefinition canonical.  
0003 Plan-slot read-both during transition Read-both policy during plan-slot migration; migration scripts under src/functions/scripts/.  
0004 Derive scaling limits from measured FHIR capacity measure-fhir-capacity CLI derives Function App concurrency from measured HikariCP ceiling.  
0005 AC6 webhook circuit breaker In-process circuit breaker for whatsappWebhook inline path (Closed/Open/Half-open).  
0006 Separate lifecycle selection from clinical routing "Router proposes, Projo disposes" pattern; CQL Library + router PlanDefinition for answer-driven routing.  
0007 Plan-slot version pinning and routing kind FHIR-idiomatic canonical version pinning; new onboarding-routing slot kind (no schema migration).
0008 Adopt fhirpath.js evaluation engine HL7 fhirpath.js v4.11.0 with R4 model context for SDC constraint validation.  
0009 Shared SDC constraint extraction Documents duplicated SDC constraint parsing code (sidecar vs shared lib); pending consolidation.  
0010 Patient writeback SDC extract Patient demographic write-back via Binary-wrapped JSON-Patch inside SDC $extract transaction.  
0011 Web response channel Third Function App (web-functions) for browser-based questionnaire submission; bearer-token model; medium=web.  
0012 RCS transport channel (CM.com) Second transport sidecar (sidecar-rcs-cm); medium=rcs; patient last-used-messaging-channel extension; RCS delivers questionnaires via webview button only (never in-band); no 24h gate; CM.com IP-allowlist + shared-secret webhook auth.