FHIR

API

The HL7/FHIR HTTP API is designed to be simple being able to perform HTTP GET PUT DELETE methods as atomic operations generating history Bundle. The HTTP path resourceType routes HTTP call to selective module.

get "/" post "/" get "/$meta" post "/$meta" get "/metadata" get "/_history" get "/_diff" get "/$export" post "/$export" post "/$diff" post "/$reindex" get "/CodeSystem/$lookup" get "/CodeSystem/:id/$lookup" get "/CodeSystem/$validate-code" get "/CodeSystem/:id/$validate-code" get "/ValueSet/$expand" get "/ValueSet/:id/$expand" get "/ConceptMap/$closure" get "/ConceptMap/:id/$closure" get "/ConceptMap/$translate" get "/ConceptMap/:id/$translate" post "/CodeSystem/$validate-code" post "/:resourceType/$validate" get "/:resourceType/:id" put "/:resourceType/:id" delete "/:resourceType/:id" post "/_search" post "/:res/_search" post "/:comp/:id/_search" post "/:comp/:id/:res/_search"

MODULES

HL7/FHIR R5 Protocol Modules are grouped by Protocol Profile domains each under distinct jurisdiction.

Primitive. Primitive datatypes are based on draft-07 internal definitions: instant, time, date, dateTime, base64binary, decimal, integer64, boolean, url, code, string, integer, uri, canonical, markdown, id, oid, uuid, unsignedInt, positiveInt.

General. General-purpose types represent atomic or vector non-dictionary but complex values: Address, Age, Annotation, Attachment, ContactPoint, Count, Distance, Dosage, Duration, Element, HumanName, Identifier, Meta, Money, Period, Quantity, Ratio, Range, RatioRange, Reference, SampledData, Timing, Binary.

Foundation. Infrastructural types represents OSI levels monikers and RPC data structures: Resource, DomainResource, Basic, Bundle, Composition, List, Subscription, Endpoint, OperationOutcome, CapabilityStatement.

Security. Security-sensitive types provides ABAC facilities, identity services and signature protection (CAdES, XAdES, ASIC-S, ДСТУ-4145, ДСТУ-7564): Consent, Permission, Provenance, Signature.

Terminology. Dictionary-related data types that caries most of medical international dictionaries and questionaries such as SNOMED, LOINC, MMSE, WHODAS, IQ, ICD-10/11: CodeSystem, ValueSet, ConceptMap, NamingSystem, Coding, CodeableConcept, CodeableReference, Coding, Medication, Ingredient, Substances, ProductPackageDefinition, Manufacturer.

Administration. Administrative types represents business process of the patient related services: Patient, RelatedPerson, Person, Group, Practitioner, PractitionerRole, Organization, Account, Location, HealthcareService, Schedule, Communication, Slot, SpecimenDefinition, EpisodOfCare, Encounter, EncounterHistory, Appointment, Flag, ObservationDefinition, NutritionProduct, Device, DeviceDefinition, AuditEvent, MedicationAdministration.

Clinical. Clinical data types: Condition, Procedure, CarePlan, CareTeam, Goal, DetectedIssue, ClinicalImression, DeviceRequest, DeviceDispense, DeviceUsage, DeviceAssociation, DeviceComponent, DeviceUseStatement, MarketingStatus, SampleData, MedicationRequest, MedicationDispense.

Diagnostic. Diagnostic data types: Observation, Specimen, BodyStructure, BodySite, AdverseEvent, AllergyIntollerance, Questionnaire.

Financial. Financial data types: Account, Contract, Claim, ChargeItem, EnrollmentResponse, EnrollmentRequest, Coverage, PaymentNotice, ExplanatoryOfBenefit, Invoice.

Workflow. Workflow modeling data types are mapped onto BPMN business model: ActivityDefinition, Definition, EventDefinition, MessageDefinition, PlanDefinition, ObservationDefinition, ClinicalUse, Measure, OperationDefinition, Requirements.

SCHEMA

$ curl -X POST "http://localhost:9234/List/\$validate" -d @priv/samples/List/List.json { "issues": [ { "code": "invariant", "details": "dom-6: A resource should have narrative for robust management", "expression": "List", "severity": "warning" }, { "code": "informational", "details": "Validation is successful!", "severity": "information" } ], "resourceType": "OperationOutcome" }

ISO/HL7 is written in Erlang/OTP and supports RocksDB or Mnesia databases.


˙