use crate::crosswalk::laboratory::{LAB_COMPOSITION, LAB_DIAGNOSTIC_REPORT};
use crate::document::{Authorship, Code, Companion, EU_CORE_PATIENT, Form, Kind, LOINC, Slot};
pub const LAB_BUNDLE: &str = "http://hl7.eu/fhir/laboratory/StructureDefinition/Bundle-eu-lab";
pub const LABORATORY_REPORT: &str = "11502-2";
pub const LAB_SLOTS: [Slot; 9] = [
Slot::new("bloodBank", "18717-9", "Blood bank studies"),
Slot::new("chemistry", "18719-5", "Chemistry studies"),
Slot::new("fertility", "18722-9", "Fertility studies"),
Slot::new("hematology", "18723-7", "Hematology studies"),
Slot::new("microbiology", "18725-2", "Microbiology studies"),
Slot::new("toxicology", "18728-6", "Toxicology studies"),
Slot::new("laboratory", "26436-6", "Laboratory studies"),
Slot::new("annotations", "48767-8", "Annotation comment"),
Slot::new("attachment", "77599-9", "Additional documents"),
];
pub const LABORATORY_REPORT_FORM: Form = Form {
bundle: LAB_BUNDLE,
composition: LAB_COMPOSITION,
patient: EU_CORE_PATIENT,
kind: Kind::Fixed(Code {
system: LOINC,
code: LABORATORY_REPORT,
}),
categories: &[],
authorship: Authorship::Gateway,
slots: &LAB_SLOTS,
report: Some(Companion {
profile: LAB_DIAGNOSTIC_REPORT,
link: "http://hl7.eu/fhir/extensions/StructureDefinition/composition-diagnosticReportReference",
back: "http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition",
}),
encounter: None,
language: false,
};