<!--

	      Cardiac Data Exchange Document Type Definion
                             version 0.2
		    http://www.eactscongenitaldb.org


			   (c) 2005 Magnum 2

This program is free software; you can redistribute it and/or modify it 
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License along 
with this program; if not, write to the Free Software Foundation, Inc., 
675 Mass Ave, Cambridge, MA 02139, USA. 

=======================================================================

This is the definition file for the Cardiac Data Exchange for EACTS
Congenital Database, Data Collection Software. It should be used for
validating the data exchange files.

-->
<!ELEMENT CardiacDataExchange (Dictionaries?, Hospitals)>
<!ATTLIST CardiacDataExchange
	version CDATA #IMPLIED
	date CDATA #IMPLIED
        ExportNumber CDATA #IMPLIED
>
<!ELEMENT Dictionaries (Factors, Casecategories)>

<!-- Factors -->
<!ELEMENT Factors (Class*)>
<!ELEMENT Class (Name, Group*)>
<!ELEMENT Group (Name, Subgroup*)>
<!ELEMENT Subgroup (Name, Factor*)>
<!ELEMENT Factor (Name)>
<!ATTLIST Factor
    factor_code CDATA #REQUIRED
    obsolete (yes|no) #REQUIRED
>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Code (#PCDATA)>

<!-- Case categories -->
<!ELEMENT Casecategories (Area*)>
<!ELEMENT Area (Name, Category*)>
<!ELEMENT Category (Name)>

<!-- Hospitals -->

<!ELEMENT Hospitals (Hospital*)>
<!ELEMENT Hospital (HospitalDetails, Staff, Patients)>
<!ATTLIST Hospital
    code CDATA #REQUIRED
>

<!-- hospital details -->
<!ELEMENT HospitalDetails (Fax|Address1|Address2|ZipCode|Country|City|Name|Phone)*>
<!ELEMENT Fax (#PCDATA)>
<!ELEMENT Address1 (#PCDATA)>
<!ELEMENT Address2 (#PCDATA)>
<!ELEMENT ZipCode (#PCDATA)>
<!ELEMENT Country (#PCDATA)>
<!ELEMENT City (#PCDATA)>
<!ELEMENT Phone (#PCDATA)>

<!-- Hospital Staff -->
<!ELEMENT Staff (Member*)>
<!ELEMENT Member (FirstName?, LastName?, Role, FirstName?, LastName?)>
<!ATTLIST Member
    staff_code CDATA #REQUIRED
>
<!ELEMENT FirstName (#PCDATA)>
<!ELEMENT LastName (#PCDATA)>
<!ELEMENT Role (#PCDATA)>

<!-- patients -->
<!ELEMENT Patients (Patient*)>
<!ELEMENT Patient (
    PatientDetails,
    Diagnoses,
    NonCardiacAbnormalities,
    Admissions
)>
<!ATTLIST Patient
    patient_no CDATA #REQUIRED
>

<!-- patient details -->

<!ELEMENT PatientDetails (
    LocalID?,
    FormerPatientID?,
    Gender,
    DateOfBirth,
    DateOfDeath,
    GestationalAge,
    PrimaryOperationNo,
    PrimaryProcedure,
    FirstName?,
    LastName?,
    AntenatalDiagnosis
)>
<!ELEMENT PrimaryOperationNo (#PCDATA)>
<!ELEMENT FormerPatientID (#PCDATA)>
<!ELEMENT DateOfBirth (#PCDATA)>
<!ELEMENT Gender (#PCDATA)>
<!ELEMENT LocalID (#PCDATA)>
<!ELEMENT DateOfDeath (#PCDATA)>
<!ELEMENT PrimaryProcedure (Name?)>
<!ATTLIST PrimaryProcedure
    procedure_code CDATA #IMPLIED
>
<!ELEMENT GestationalAge (#PCDATA)>
<!ELEMENT AntenatalDiagnosis (#PCDATA)>

<!-- patient factors -->

<!ELEMENT Diagnoses (Diagnosis*)>
<!ELEMENT Diagnosis (Name?)>
<!ATTLIST Diagnosis
    diagnosis_code CDATA #REQUIRED
    priority CDATA #REQUIRED
>
<!ELEMENT NonCardiacAbnormalities (NonCardiacAbnormality*)>
<!ELEMENT NonCardiacAbnormality (Name?)>
<!ATTLIST NonCardiacAbnormality
    nca_code CDATA #REQUIRED
>

<!-- admissions -->
<!ELEMENT Admissions (Admission*)>
<!ELEMENT Admission (Operations, AdmissionDetails)>
<!ATTLIST Admission
    admission_no CDATA #REQUIRED
>
<!ELEMENT AdmissionDetails (DateOfAdmission, DateOfDischarge)>
<!ELEMENT DateOfAdmission (#PCDATA)>
<!ELEMENT DateOfDischarge (#PCDATA)>

<!-- operations -->
<!ELEMENT Operations (Operation*)>
<!ELEMENT Operation (
    OperationDetails,
    OtherStaff?,
    Procedures,
    GeneralPreoperativeRiskFactors,
    Complications
)>
<!ATTLIST Operation
    operation_no CDATA #REQUIRED
>

<!-- operation details -->
<!ELEMENT OperationDetails (
    FormerOperationId?,
    DateOfSurgery,
    ICUDischarge,
    StatusAt30Days,
    Height,
    Weight,
    SurgeonCode,
    CaseCategory,
    CPBTime,
    IPPV,
    AOXTime,
    CirculatoryArrestTime,
    Push?,
    PriorOperations?
)>
<!ELEMENT FormerOperationId (#PCDATA)>
<!ELEMENT DateOfSurgery (#PCDATA)>
<!ELEMENT ICUDischarge (#PCDATA)>
<!ELEMENT StatusAt30Days (#PCDATA)>
<!ELEMENT Height (#PCDATA)>
<!ELEMENT Weight (#PCDATA)>
<!ELEMENT SurgeonCode (#PCDATA)>
<!ELEMENT CaseCategory (#PCDATA)>
<!ELEMENT CPBTime (#PCDATA)>
<!ELEMENT IPPV (#PCDATA)>
<!ELEMENT AOXTime (#PCDATA)>
<!ELEMENT CirculatoryArrestTime (#PCDATA)>
<!ELEMENT Push (#PCDATA)>
<!ELEMENT PriorOperations (
    PriorOperationsNumber,
    PriorHospitalName,
    PriorHospitalDetail
)>
<!ELEMENT PriorOperationsNumber (#PCDATA)>
<!ELEMENT PriorHospitalName (#PCDATA)>
<!ELEMENT PriorHospitalDetail (#PCDATA)>

<!-- Other Staff -->
<!ELEMENT OtherStaff (Member*)>

<!-- Procedures -->
<!ELEMENT Procedures (Procedure*)>
<!ELEMENT Procedure (Name?)>
<!ATTLIST Procedure
    procedure_code CDATA #REQUIRED
    priority CDATA #REQUIRED
>

<!-- Complications -->
<!ELEMENT Complications (Complication*)>
<!ELEMENT Complication (Name?)>
<!ATTLIST Complication
    complication_code CDATA #REQUIRED
>

<!-- General Preoperative Risk Factors -->
<!ELEMENT GeneralPreoperativeRiskFactors (GeneralPreoperativeRiskFactor*, Name?)>
<!ELEMENT GeneralPreoperativeRiskFactor (Name?)>
<!ATTLIST GeneralPreoperativeRiskFactor
    gprf_code CDATA #REQUIRED
>
