MoonBit-native FHIR R4/R5 JSON validation, profiles, NDJSON, Bundle analytics, terminology, privacy, and CLI workflows.
moon check --deny-warn
moon test --deny-warn
moon run cmd/main -- --example patient
moon run cmd/main -- --json '{"resourceType":"Observation","status":"final","code":{"text":"heart rate"}}'///|
test "validate an Observation" {
let value = parse_json(example_observation_json()).unwrap()
inspect(is_valid(value), content="true")
}pub(all) struct ConstraintSet {
name : String
constraints : Array[ResourceConstraint]
} derive(Eq, ToJson, Debug)pub(all) struct ExportOptions {
format : ExportFormat
include_header : Bool
canonical : Bool
redact : Bool
} derive(Eq, ToJson, Debug)pub(all) struct FhirService {
options : ProcessingOptions
catalog : TerminologyCatalog
} derive(Eq, ToJson, Debug)fn FhirService::export_data(_self : FhirService, values : Array[Json], options : ExportOptions) -> Stringpub(all) struct OperationOutcome {
resource_type : String
issues : Array[OperationOutcomeIssue]
} derive(Eq, ToJson, Debug)pub(all) struct ProcessingOptions {
version : FhirVersion
profile : Profile?
privacy_policy : PrivacyPolicy?
reject_warnings : Bool
} derive(Eq, ToJson, Debug)pub(all) struct ResourceConstraint {
path : String
kind : ConstraintKind
expected : String
message : String
} derive(Eq, ToJson, Debug)fn ResourceConstraint::type_is(path : String, expected : String, message? : String) -> ResourceConstraintpub(all) enum ResourceKind {
Patient
Observation
Medication
MedicationRequest
DiagnosticReport
Encounter
Condition
Procedure
Immunization
AllergyIntolerance
CarePlan
Practitioner
Organization
Location
ServiceRequest
Goal
CareTeam
Device
Specimen
Questionnaire
List
Composition
DocumentReference
Provenance
AuditEvent
Bundle
Other(String)
} derive(Eq, ToJson, Debug)pub(all) struct ResourceSchema {
resource_type : String
version : FhirVersion
fields : Array[SchemaField]
summary : String
} derive(Eq, ToJson, Debug)fn TerminologyCatalog::add_alias(self : TerminologyCatalog, alias_name : String, name : String) -> Unitfn TerminologyCatalog::validate(self : TerminologyCatalog, name : String, path : String, system : String?, code : String) -> TerminologyIssue?fn period_overlap(left_start : String, left_end : String, right_start : String, right_end : String) -> Boolfn terminology_status_is_valid(kind : String, status : String) -> Boolfn validate_code(path : String, system : String?, code : String, value_set : ValueSet) -> TerminologyIssue?fn validate_codeable_concept(value : Json, path : String, value_set : ValueSet) -> Array[TerminologyIssue]fn validate_with_profile(value : Json, profile : Profile, version? : FhirVersion) -> ValidationReportInstall
Download zipMoonBit-native FHIR R4/R5 JSON validation, profiles, NDJSON, Bundle analytics, terminology, privacy, and CLI workflows.