# Standards Compliance Med-SEAL Suite is built on international healthcare interoperability standards to ensure data portability, clinical accuracy, and regulatory alignment. ## Standards Matrix | Standard | Version | Component | Usage | |---|---|---|---| | **HL7 FHIR** | R4 (4.0.1) | Medplum | Primary data format for all clinical resources | | **DICOM** | 3.0 | Orthanc | Medical imaging storage and transfer | | **DICOMweb** | - | Orthanc REST API | Web-based access to imaging data | | **HL7 v2** | 2.x | OpenMRS / OpenEMR | Legacy messaging (ADT, ORU) | | **ICD-10** | 2024 | OpenEMR | Diagnosis coding | | **SNOMED CT** | International | OpenEMR, Medplum | Clinical terminology | | **LOINC** | 2.77 | Medplum, AI Service | Lab and vital sign coding | | **RxNorm** | - | Medplum, AI Service | Medication terminology + drug interaction lookup | | **CPT** | 2024 | OpenEMR | Procedure coding | | **NDF-RT** | - | AI Service (A4) | Drug-food interaction database | ## FHIR R4 Compliance Med-SEAL uses FHIR R4 as its primary interoperability standard. All data exchange between services uses FHIR resources serialised as JSON. ### Capabilities - **CRUD** - create, read, update, delete on all supported resource types - **Search** - parameterised searches with chaining and includes - **Transactions** - atomic batch operations via Bundle resources - **Subscriptions** - event-driven triggers for real-time workflows - **Terminology** - `$validate-code`, `$translate`, `$lookup` operations - **Validation** - `$validate` against profiles ### SMART on FHIR Agent access control follows SMART on FHIR scoping: | Agent | Scope | |---|---| | A1 (Companion) | `patient/Patient.read`, `patient/Observation.read`, `patient/Communication.write` | | A2 (Clinical Reasoning) | `patient/Condition.read`, `patient/MedicationRequest.read`, `patient/Observation.read` | | A3 (Nudge) | `patient/Communication.write`, `patient/Flag.write`, `patient/CommunicationRequest.write` | | A5 (Insight Synthesis) | `patient/*.read`, `patient/Composition.write` | | A6 (Measurement) | `patient/Observation.read`, `patient/MeasureReport.write` | ## Terminology Bindings Key LOINC codes used: | Measurement | LOINC Code | |---|---| | Systolic blood pressure | 8480-6 | | Diastolic blood pressure | 8462-4 | | Blood glucose | 2345-7 | | Heart rate | 8867-4 | | Step count | 55423-8 | | Body weight | 29463-7 | | HbA1c | 4548-4 | ## Security Architecture Network segmentation and trust boundary diagram for IT audit (ISO 27001, HIPAA). Shows data classification levels and access control checkpoints. ```{uml} @startuml skinparam componentStyle uml2 rectangle "Untrusted Zone\n(Public Internet)" #FDD { actor "Patient\n(Mobile)" as PatientActor actor "Clinician\n(Browser)" as ClinicianActor actor "Admin\n(Browser)" as AdminActor } rectangle "DMZ\n(Reverse Proxy / TLS Termination)" #FED { component "HTTPS Gateway\n(nginx / Caddy)" as Gateway } rectangle "Application Zone\n(Docker: medseal-net)" #DFD { rectangle "Services" { component "Patient Portal\nNative" as Portal component "AI Service\n:4003" as AISvc component "AI Frontend\n:3001" as AIUI component "OpenEMR\n:8081" as OE component "Medplum App\n:3000" as MedApp } rectangle "AI Safety" { component "SEA-LION Guard" as Guard component "LLM (med-r1)" as LLM } rectangle "Data Zone\n<>" #EEF { component "Medplum Server\n:8103" as MedSrv database "Medplum DB\n<>" as MedDB database "OpenEMR DB\n<>" as OEDB database "SSO DB\n<>" as SSODB database "Audit Logs\n<>" as AuditDB } } PatientActor --> Gateway : HTTPS (TLS 1.3) ClinicianActor --> Gateway : HTTPS (TLS 1.3) AdminActor --> Gateway : HTTPS (TLS 1.3) Gateway --> Portal Gateway --> OE Gateway --> AIUI Gateway --> MedApp Gateway --> AISvc AISvc --> Guard : All I/O AISvc --> LLM : De-identified prompts AISvc --> MedSrv : FHIR R4 AISvc --> SSODB : Auth AISvc --> AuditDB : AuditEvent write Guard ..> AuditDB : PII redaction log MedSrv --> MedDB OE --> OEDB AISvc --> OEDB : User sync note bottom of MedDB **Data Classification: RESTRICTED** Contains all PHI (Patient, Condition, Observation, MedicationRequest, etc.) Encrypted at rest. Access via FHIR scopes only. end note note bottom of SSODB **Data Classification: CONFIDENTIAL** Contains PII (usernames, emails, password hashes). Encrypted at rest. end note note bottom of AuditDB **Data Classification: INTERNAL** Immutable audit trail. Retained 7 years per policy. end note @enduml ```