Packages

ISO/HL7 FHIR Application Server

Current section

Files

Jump to
hl7 lib hl7_service.ex
Raw

lib/hl7_service.ex

defmodule HL7.Service do
import Plug.Conn
# Implemented
def root(conn), do: HL7.Meta.meta(conn)
def postRoot(conn), do: HL7.Meta.meta(conn)
def postMeta(conn), do: HL7.Meta.meta(conn)
def meta(conn), do: HL7.Meta.meta(conn)
def get4(conn,base,type,id,spec), do: HL7.Get.get(conn,base,type,id,spec)
def post4(conn,base,type,id,"$validate" = spec), do: HL7.Validate.validate(conn,base,type,id,spec)
def post4(conn,base,compartment,id,qualifier), do: HL7.Compartment.compartment(conn,base,compartment,id,qualifier)
def put4(conn,base,type,id,spec), do: HL7.Put.put(conn,base,type,id,spec)
def delete4(conn,base,type,id,spec), do: HL7.Delete.delete(conn,base,type,id,spec)
def post2(conn,base,qualifier), do: HL7.Search.search(conn,base,qualifier)
def post3(conn,base,resource,qualifier), do: HL7.Search.post3(conn,base,resource,qualifier)
def post5(conn,base,compartment,id,resource,qualifier), do: HL7.Compartment.post5(conn,base,compartment,id,resource,qualifier)
# Not Implemented Yet
def postDiff(conn), do: send_resp(conn, 200, encode([%{}]))
def postExport(conn), do: send_resp(conn, 200, encode([%{}]))
def reindex(conn), do: send_resp(conn, 200, encode([%{}]))
def history(conn), do: send_resp(conn, 200, encode([%{}]))
def diff(conn), do: send_resp(conn, 200, encode([%{}]))
def metadata(conn), do: send_resp(conn, 200, encode([%{"resourceType" => "CapabilityStatement"}]))
def export(conn), do: send_resp(conn, 200, encode([%{"resourceType" => "CapabilityStatement"}]))
# Reference Implementation: http://hapi.fhir.org/
def encode(x) do
case Jason.encode(x) do
{:ok, bin} -> bin <> "\n"
{:error, %Protocol.UndefinedError{description: _, protocol: _, value: {:error, %Xema.ValidationError{message: _, reason: err}}}} -> err <> "\n"
{:error, %Xema.ValidationError{message: _, reason: err}} -> err <> "\n"
end |> Jason.Formatter.pretty_print
end
end