fhir 1.0.0

Fast Healthcare Interoperability Resources (FHIR) API is a standardized, RESTful interface for exchanging electronic health records.
Documentation
//! Command-line entry point for the FHIR specifications parser / generator.

use fhir::DEFINITIONS_DIR;
use fhir::r5::parse;
use std::fs::File;
use std::io::BufReader;

/// Read `profiles-types.json` and generate a Rust source file for each FHIR R5
/// datatype it defines.
fn generate_profiles_types() {
    let path = DEFINITIONS_DIR.join("profiles-types.json");
    let file = File::open(path).expect("open");
    let reader = BufReader::new(file);
    let bundle: parse::profiles_types::Bundle = ::serde_json::from_reader(reader).unwrap();
    bundle
        .entry
        .into_iter()
        .map(|resource_head| resource_head.resource)
        .for_each(|resource| {
            parse::profiles_types::resource_into_rust(&resource).expect("resource_into_rust");
        });
}

fn main() {
    generate_profiles_types();
    // Extract per-element metadata (bindings, choice types, reference targets,
    // cardinality, summary flags) into tmp/out/meta.json and src/r5/meta/generated.rs.
    parse::meta::generate();
}