-
Notifications
You must be signed in to change notification settings - Fork 3
/
index.html
181 lines (167 loc) · 7.53 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<html><head><meta charset="utf-8" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="description" content="" />
<meta name="author" content="Maxim Sokhatsky" /><title>HL7</title>
<link rel="stylesheet" href="https://n2o.dev/blank.css" />
<link rel="stylesheet" href="https://n2o.dev/zima.css" />
<link rel="stylesheet" href="https://n2o.dev/pro/pro.css" />
</head><body><nav>
<a href="https://erp.uno/en/">ERP</a>
<a href="https://mail.erp.uno" style="background:#ededed;">HL7</a>
</nav><header>
<a href="https://github.com/erpuno/hl7"><img src="https://openmoji.org/data/color/svg/2695.svg" /></a>
<h1>FHIR</h1>
</header><aside>
<article>
<section>
<h3>SYNOPSIS</h3>
<div>Minimalistic scalable microseconds precise FHIR application server in Elixir.
ISO/HL7 27931:2009 is a simple implementation with the following features:</div>
<div>
<ul><li>Fast (<5ms) JSON Schema Circular Validator RFC Draft-7; </li>
<li>MongoDB, RocksDB and Mnesia backends;</li>
<li>Erlang records as schema source for GRPC/JavaScript/Swift;</li>
<li>HTTP API using Plug;</li>
<li>FHIR Protocol Version R5;</li>
<li>Compact Codebase (10K LOC).</li></ul></div>
<div>
ISO/HL7 FHIR could be used as starter pack or SDK for medical systems.</div><br/>
</section>
<section>
<h3><a href="https://n2o.dev">MODULES</a></h3>
<div><ul><li><a href="man/hl7_endpoint.htm">ENDPOINT</a></li>
<li><a href="man/hl7_service.htm">SERVICE</a></li>
<li><a href="man/hl7_validation.htm">VALIDATION</a></li>
<li><a href="man/hl7_loader.htm">LOADER</a></li>
<li><a href="man/hl7_application.htm">APPLICATION</a></li></ul></div>
<br />
<div>
APR 2024 © <a href="https://github.com/5HT">5HT</a> ISC<br />
VER 0.1
</div>
</section>
<section>
</section>
</article>
</aside><main>
<section>
<a name=principles><h3>API</h3></a>
<p>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 <b>resourceType</b> routes HTTP call to selective module.
</p>
<figure><code>
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"
</code></figure>
</section>
<section>
<a name=principles><h3>MODULES</h3></a>
<p>HL7/FHIR R5 Protocol Modules are grouped by Protocol
Profile domains each under distinct jurisdiction.</p>
<p><b class=se>Primitive</b>. Primitive datatypes are based on <b>draft-07</b> internal definitions:
instant, time, date, dateTime, base64binary,
decimal, integer64, boolean, url, code, string, integer, uri,
canonical, markdown, id, oid, uuid, unsignedInt, positiveInt.</p>
<p><b class=se>General</b>.
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.</p>
<p><b class=se>Foundation</b>.
Infrastructural types represents OSI levels monikers and RPC data structures:
Resource, DomainResource, Basic, Bundle, Composition,
List, Subscription, Endpoint, OperationOutcome, CapabilityStatement.</p>
<p><b class=se>Security</b>.
Security-sensitive types provides ABAC facilities, identity
services and signature protection (CAdES, XAdES, ASIC-S, ДСТУ-4145, ДСТУ-7564):
Consent, Permission, Provenance, Signature.</p>
<p><b class=se>Terminology</b>.
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.</p>
<p><b class=se>Administration</b>.
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.</p>
<p><b class=se>Clinical</b>.
Clinical data types: Condition, Procedure, CarePlan, CareTeam, Goal, DetectedIssue,
ClinicalImression, DeviceRequest, DeviceDispense, DeviceUsage,
DeviceAssociation, DeviceComponent, DeviceUseStatement, MarketingStatus,
SampleData, MedicationRequest, MedicationDispense.</p>
<p><b class=se>Diagnostic</b>.
Diagnostic data types: Observation, Specimen, BodyStructure, BodySite, AdverseEvent,
AllergyIntollerance, Questionnaire.</p>
<p><b class=se>Financial</b>.
Financial data types: Account, Contract, Claim, ChargeItem, EnrollmentResponse, EnrollmentRequest,
Coverage, PaymentNotice, ExplanatoryOfBenefit, Invoice.</p>
<p><b class=se>Workflow</b>.
Workflow modeling data types are mapped onto BPMN business model:
ActivityDefinition, Definition, EventDefinition, MessageDefinition,
PlanDefinition, ObservationDefinition, ClinicalUse, Measure,
OperationDefinition, Requirements.</p>
</section>
<section>
<h3>SCHEMA</h3>
<p></p>
<figure><code>
$ 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"
}
</code></figure>
<p>ISO/HL7 is written in Erlang/OTP and supports <a href="https://rocksdb.org">RocksDB</a> or
<a href="http://erlang.org/doc/man/mnesia.html">Mnesia</a> databases.</p>
<br><center>˙</center>
</section>
</main><footer>
<br><center>˙</center>
<br>
Made with <span class="heart">❤</span> to ERP/1
</footer></body></html>