Packages
hl7v2
1.4.3
3.10.1
3.9.0
3.8.0
3.7.0
3.6.0
3.5.0
3.4.0
3.3.6
3.3.5
3.3.4
3.3.3
3.3.2
3.3.1
3.3.0
3.2.0
3.1.1
3.1.0
3.0.2
3.0.1
3.0.0
2.11.0
2.10.0
2.9.1
2.9.0
2.8.2
2.8.1
2.8.0
2.7.1
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.0
2.1.3
2.1.2
2.1.1
2.1.0
1.4.6
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0
0.6.0
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.1.0
Pure Elixir HL7 v2.x toolkit — schema-driven parsing, typed segments, message builder, MLLP transport
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/hl7v2.coverage.ex
defmodule Mix.Tasks.Hl7v2.Coverage do
@moduledoc """
Prints HL7 v2.5.1 coverage report for the hl7v2 library.
## Usage
mix hl7v2.coverage
"""
use Mix.Task
@shortdoc "Print HL7 v2.5.1 standards coverage report"
@impl Mix.Task
def run(_args) do
summary = HL7v2.Standard.Coverage.coverage_summary()
Mix.shell().info("""
HL7v2 Library — v2.5.1 Coverage Report
=======================================
Segments: #{summary.typed_segment_count} / #{summary.total_segment_count} standard (#{summary.segment_coverage_pct}%)
Types: #{summary.typed_type_count} / #{summary.total_type_count} standard (#{summary.type_coverage_pct}%)
Fields: #{summary.total_typed_fields} declared across typed segments
Raw holes: #{summary.raw_hole_count}
""")
if summary.raw_hole_count > 0 do
Mix.shell().info(" Raw Holes (fields typed as :raw in otherwise typed segments):")
for {seg, field, seq} <- summary.raw_holes do
Mix.shell().info(" #{seg}-#{seq} (#{field})")
end
Mix.shell().info("")
end
Mix.shell().info(
" Typed Segments: #{Enum.join(HL7v2.Standard.Coverage.typed_segments(), ", ")}"
)
Mix.shell().info("")
unsupported = HL7v2.Standard.Coverage.unsupported_types()
if length(unsupported) > 0 do
Mix.shell().info(" Unsupported Types: #{Enum.join(unsupported, ", ")}")
Mix.shell().info("")
end
end
end