1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
void WriteToStream(BinaryWriter w, string text, int len)
{
String s = String.IsNullOrEmpty(text) ? "" : text;
w.Write(s);
byte[] t = new byte[len - s.Length];
w.Write(t);
}
public static double ToDouble(DateTime what)
{
return BitConverter.ToDouble(BitConverter.GetBytes(what.Ticks), 0);
}
public bool Save()
{
FileStream stream = new FileStream(Fichier, FileMode.Create);
BinaryWriter writer = new BinaryWriter(stream);
System.UInt16 zero = 0;
System.UInt16 one = 1;
System.UInt16 two = 2;
writer.Write(INFOEX_ID);
writer.Write(INFOEX_RELEASE_140);
WriteToStream(writer, PatientId, MAXLEN_PATIENT_ID);
WriteToStream(writer, PatientLastName, MAXLEN_PATIENT_LASTNAME);
WriteToStream(writer, PatientFirstName, MAXLEN_PATIENT_FIRSTNAME);
WriteToStream(writer, PatientLastName2, MAXLEN_PATIENT_LASTNAME2);
writer.Write(ToDouble(PatientDob));
switch (PatientSex)
{
case InfoexSex.sexMale:
writer.Write(one);
break;
case InfoexSex.sexFemale:
writer.Write(two);
break;
default:
writer.Write(zero); /* InfoexSex.sexUnspecified */
break;
}
writer.Write(PhysicianId);
WriteToStream(writer, DeviceCode, MAXLEN_DEVICE_CODE);
WriteToStream(writer, DeviceSerialNumber, MAXLEN_DEVICE_SERIAL_NUMBER);
writer.Write(ExamType);
writer.Write(ExamIsNew ? one : zero);
writer.Write(ExamIsSigned ? one : zero);
WriteToStream(writer, PhysicianSignature, MAXLEN_PHYSICIAN_SIGNATURE);
WriteToStream(writer, ExamIndication, MAXLEN_EXAM_INDICATION);
WriteToStream(writer, ExamMedication, MAXLEN_EXAM_MEDICATION);
writer.Write(ToDouble(ExamDate));
WriteToStream(writer, ExamDiagnosis, MAXLEN_EXAM_DIAGNOSIS);
writer.Write(DeviceType);
WriteToStream(writer, PatientAddress, MAXLEN_PATIENT_ADDRESS);
WriteToStream(writer, PatientZip, MAXLEN_PATIENT_ZIP);
WriteToStream(writer, PatientState, MAXLEN_PATIENT_STATE);
WriteToStream(writer, PatientCity, MAXLEN_PATIENT_CITY);
WriteToStream(writer, PatientPhone1, MAXLEN_PATIENT_PHONE1);
WriteToStream(writer, PatientPhone2, MAXLEN_PATIENT_PHONE2);
WriteToStream(writer, PatientFax, MAXLEN_PATIENT_FAX);
WriteToStream(writer, PatientEmail, MAXLEN_PATIENT_EMAIL);
writer.Write(ToDouble(SignatureDate));
writer.Close();
stream.Close(); |
Partager