import { CodeableConcept, Coding, Composition, CompositionStatus, Condition, Identifier, Immunization, Medication, Observation, Organization, Patient, Practitioner, PractitionerRole, Reference, code, date, dateTime } from '@i4mi/fhir_r4';
import { CHDocumentEPR, CHPatientEPR } from './core';
import { CHAllergyIntolerance } from './allergy';
/**
 * This interface describes CH VACD Vaccination Record Document
 * @see       https://fhir.ch/ig/ch-vacd/StructureDefinition-ch-vacd-document-vaccination-record.html
 * @version   4.0.1
 * @date      2023-12-05
 */
export interface CHVacdVaccinationRecordDocument extends CHDocumentEPR {
    entry: CHVacdVaccinationRecordDocumentEntry[];
}
/**
 * This interface describes CH VACD Vaccination Record Composition
 * @see       https://fhir.ch/ig/ch-vacd/StructureDefinition-ch-vacd-composition-vaccination-record.html
 * @version   4.0.1
 * @date      2023-12-05
 */
export interface CHVacdCompositionVaccinationRecord extends Composition {
    language: code;
    status: CompositionStatus.FINAL;
    type: {
        coding: [
            {
                system: 'http://snomed.info/sct';
                code: '41000179103';
                display: 'Immunization record';
            }
        ];
    };
    subject: Reference;
    date: dateTime;
    author: Reference[];
    title: string;
}
/**
 * This interface describes CH VACD Immunization
 * @see       https://fhir.ch/ig/ch-vacd/StructureDefinition-ch-vacd-immunization.html
 * @version   4.0.1
 * @date      2023-12-05
 */
export interface CHVacdImmunization extends Immunization {
    identifier: Identifier[];
    protocolApplied: {
        targetDisease: CodeableConcept[];
        doseNumberPositiveInt: number;
    }[];
}
/**
 * This interface describes CH VACD Past Illness
 * @see       https://fhir.ch/ig/ch-vacd/StructureDefinition-ch-vacd-pastillnesses.html
 * @version   4.0.1
 * @date      2023-12-05
 */
export interface CHVacdPastIllness extends CHVacdCondition {
    category: undefined;
}
/**
 * This interface describes CH VACD Condition
 * @see       https://fhir.ch/ig/ch-vacd/StructureDefinition-ch-vacd-condition.html
 * @version   4.0.1
 * @date      2023-12-05
 */
export interface CHVacdCondition extends Condition {
    code: CodeableConcept;
    recordedDate: date;
}
/**
 * This interface describes CH VACD Basic Immunization
 * @see       https://fhir.ch/ig/ch-vacd/StructureDefinition-ch-vacd-basic-immunization.html
 * @version   4.0.1
 * @date      2023-12-05
 */
export interface CHVacdBasicImmunization extends CHVacdCondition {
    category: [
        {
            coding: CHVacdBasicImmunizationCategoryCoding[];
        }
    ];
    onsetDateTime: dateTime;
}
/**
 * Category codings for CH VACD Basic Immunization
 */
type CHVacdBasicImmunizationCategoryCoding = {
    system: 'http://terminology.hl7.org/CodeSystem/condition-category';
    code: 'encounter-diagnosis';
    display: 'Encounter diagnosis';
} | Coding;
/**
 * Document entry types for CH VACD Vaccination Record Document
 */
export type CHVacdVaccinationRecordDocumentEntry = {
    fullUrl: string;
    resource: CHVacdVaccinationRecordDocumentEntryResource;
};
export type CHVacdVaccinationRecordDocumentEntryResource = CHVacdCompositionVaccinationRecord | CHPatientEPR | CHVacdImmunization | CHVacdCondition | // for CHVACDMedicalProblems
CHVacdPastIllness | CHAllergyIntolerance | Observation | // for CHVACDLaboratoryAndSerology
Medication | // for CHVACDMedicationForImmunization
Organization | Practitioner | PractitionerRole | Patient;
export {};
