Packages

ISO/HL7 FHIR Application Server

Current section

Files

Jump to
hl7 lib hl7.ex
Raw

lib/hl7.ex

defmodule HL7 do
@moduledoc """
"""
require Record
@schema [ :"Person", :"Patient", :"Location", :"Organization", :"Composition",
:"DeviceDefinition", :"DeviceDispense", :"DeviceRequest" ]
Enum.each(@schema,
fn t ->
Enum.each(
Record.extract_all(
from_lib: "hl7/include/" <> :erlang.list_to_binary(:erlang.atom_to_list(t)) <> ".hrl"
),
fn {name, definition} ->
prev = :application.get_env(:kernel, :hl7_tables, [])
prev2 = :application.get_env(:hl7, :hl7_fields, [])
case :lists.member(name, prev) do
true ->
:skip
false ->
Record.defrecord(name, definition)
:application.set_env(:kernel, :hl7_tables, [name | prev])
:application.set_env(:hl7, :hl7_fields, [{name,definition} | prev2])
end
end
)
end
)
def schema(), do: @schema
# Maintenance Shell
def test(), do: HL7.Validation.test
def showCodeSystem(name), do: HL7.Terminology.CodeSystem.show(name)
def showValueSet(name), do: HL7.Terminology.ValueSet.show(name)
def showTerminology(name), do: HL7.Terminology.show(name)
def priv(), do: :erlang.iolist_to_binary(:application.get_env(:hl7, :priv_dir, :code.priv_dir(:hl7))) <> "/"
end