private bool IntakeTabCopyFormToPatientData() { bool checkDataGood = true; bool checkScribeAssigned = true; if (comboBoxScribeList.Text == "NI") checkScribeAssigned = false; if (label46.Text == "" || label47.Text == "" || label51.Text == "" || label88.Text == "" || label89.Text == "" || label90.Text == "" || label91.Text == "" || label92.Text == "" || label93.Text == "" || label94.Text == "" || label95.Text == "" || label97.Text == "" || label98.Text == "" || label89.Text == "" || !checkScribeAssigned) checkDataGood = false; if (checkScribeAssigned) { if (checkDataGood) { if (intakeStatus.newPatient) { #region form settings //set patient ID DateTime dt = DateTime.Now; string patientOID = clinicData.hr4eOID + ".P" + clinicData.stationName + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Second.ToString(); patientForm.patientData.id = patientOID; patientForm.clinicData.xmlns = clinicData.greenCCDxmlns; patientForm.clinicData.xmlns_xsi = clinicData.greenCCDxmlns_xsi; patientForm.clinicData.xmlns_hr4e = clinicData.greenCCDxmlns_hr4e; patientForm.clinicData.xsi_schemaLocation = clinicData.greenCCDxsi_schemaLocation; patientForm.clinicData.docID = patientForm.GetUUID(); patientForm.clinicData.title = clinicData.docTitle; patientForm.clinicData.versionNumber = clinicData.docVersion; patientForm.clinicData.confidentialityCodeSystem = clinicData.confidentialityCodeSystem; patientForm.clinicData.confidentialityCode = clinicData.confidentialityCode; patientForm.clinicData.documentTimeStamp = patientForm.GetTimeStamp() + clinicData.timeZone; #region Null Data patientForm.patientData.streetNull = "NI"; patientForm.patientData.stateNull = "NI"; patientForm.patientData.postalCodeNull = "NI"; patientForm.patientData.telecomNull = "NI"; #endregion patientForm.patientData.genderCodeSystem = clinicData.genderCode; patientForm.clinicData.custodianID = clinicData.custodianID; patientForm.clinicData.custodianName = clinicData.custodianName; patientForm.clinicData.clinicStartDate = clinicData.dateStart; patientForm.clinicData.clinicEndDate = clinicData.dateEnd; patientForm.clinicData.author.authorNamePrefix = clinicData.authorPrefix; patientForm.clinicData.author.authorNameFirst = clinicData.authorFirstName; patientForm.clinicData.author.authorNameLast = clinicData.authorLastName; patientForm.clinicData.author.authorTimeStamp = patientForm.GetTimeStamp() + clinicData.timeZone; patientForm.clinicData.gpsCoordinates = clinicData.gps; patientForm.clinicData.clinicName = clinicData.clinicName; patientForm.clinicData.clinicDetails = clinicData.clinicDetails; #endregion } #region patient data patientForm.patientData.presentVillage = ComboBoxIntakeTabPresentVillage.Text; patientForm.patientData.firstName = TextBoxIntakeTabPatientFirstNameIn.Text; patientForm.patientData.lastName = TextBoxIntakeTabPatientLastNameIn.Text; patientForm.patientData.genderCode = label51.Text; patientForm.patientData.dateOfBirth = label88.Text; string statedYear; string statedMonth; if (TextBoxIntakeTabStatedAgeYears.Text.Length == 1) statedYear = "0" + TextBoxIntakeTabStatedAgeYears.Text; else statedYear = TextBoxIntakeTabStatedAgeYears.Text; if (TextBoxIntakeTabStatedAgeMonths.Text.Length == 1) statedMonth = "0" + TextBoxIntakeTabStatedAgeMonths.Text; else statedMonth = TextBoxIntakeTabStatedAgeMonths.Text; string estYear; string estMonth; if (TextBoxIntakeTabEstAgeYears.Text.Length == 1) estYear = "0" + TextBoxIntakeTabEstAgeYears.Text; else estYear = TextBoxIntakeTabEstAgeYears.Text; if (TextBoxIntakeTabEstAgeMonths.Text.Length == 1) estMonth = "0" + TextBoxIntakeTabEstAgeMonths.Text; else estMonth = TextBoxIntakeTabEstAgeMonths.Text; patientForm.patientData.statedAge = statedYear + statedMonth; patientForm.patientData.estimatedAge = estYear + estMonth; patientForm.patientData.yearInSchool = label94.Text; patientForm.patientData.statusInSchool = ComboBoxIntakeTabStatusInSchool.Text; patientForm.patientData.homeVillage = ComboBoxIntakeTabHomeVillage.Text; patientForm.patientData.tribe = ComboBoxIntakeTabTribe.Text; #endregion patient data #region add languages string[] languages = label91.Text.Split(','); patientForm.patientData.Languages.Clear(); foreach (string l in languages) { patientForm.patientData.Languages.Add(clinicData.GetLanguageCode(l)); } #endregion #region add scribe //add scribe to provider list bool scribeAlreadyInProviderList = false; foreach (Provider p in patientForm.clinicData.providers) { if (p.id == stationScribe.id) scribeAlreadyInProviderList = true; } if (!scribeAlreadyInProviderList) { stationScribe.comment = "Intake Station Scribe"; patientForm.clinicData.providers.Add(stationScribe); } #endregion #region add teacher Support teacher = clinicData.GetSupportStruct(comboBox28.Text); if (teacher.firstName != null) { bool supportAlreadyInSupportList = false; foreach (Support s in patientForm.patientData.Supports) { if (s.lastname == teacher.lastname && s.firstName == teacher.firstName && s.schoolName == teacher.schoolName) supportAlreadyInSupportList = true; } if (!supportAlreadyInSupportList) { patientForm.patientData.Supports.Add(teacher); } } else { teacher = CreateSupport(comboBox28.Text, ComboBoxIntakeTabSchoolList.Text, "NI", "unlisted school"); } #endregion end add teacher #region add initial vitals VitalSign height = new VitalSign(); height.id = "NI";//DEBUG need height ID; height.timeStamp = patientForm.GetTimeStamp() + clinicData.timeZone; height.status = "completed"; height.unit = "cm"; height.value = textBox29.Text; height.code = "NI";//DEBUG need code height.codeSystem = clinicData.vitalSignCode; height.displayName = "Body Height";//DEBUG need official display names height.comment = "Intake Vitals"; VitalSign weight = new VitalSign(); weight.id = "NI";//DEBUG need height ID; weight.timeStamp = patientForm.GetTimeStamp() + clinicData.timeZone; weight.status = "completed"; weight.unit = "kg"; weight.value = textBox26.Text; weight.code = "NI";//DEBUG need code weight.codeSystem = clinicData.vitalSignCode; weight.displayName = "Body Weight";//DEBUG need official display names weight.comment = "Intake Vitals"; VitalSign bmi = new VitalSign(); bmi.id = "NI";//DEBUG need height ID; bmi.timeStamp = patientForm.GetTimeStamp() + clinicData.timeZone; bmi.status = "completed"; bmi.unit = "NI"; bmi.value = textBox28.Text; bmi.code = "NI";//DEBUG need code bmi.codeSystem = clinicData.vitalSignCode; bmi.displayName = "BMI";//DEBUG need official display names bmi.comment = "Intake Vitals"; VitalSign zScore = new VitalSign(); zScore.id = "NI";//DEBUG need height ID; zScore.timeStamp = patientForm.GetTimeStamp() + clinicData.timeZone; zScore.status = "completed"; zScore.unit = "NI"; zScore.value = textBox27.Text; zScore.code = "NI";//DEBUG need code zScore.codeSystem = clinicData.vitalSignCode; zScore.displayName = "Z-Score";//DEBUG need official display names zScore.comment = "Intake Vitals"; if (patientForm.encounterData.vitalSigns.Count < 1) patientForm.encounterData.vitalSigns.Add(height); else patientForm.encounterData.vitalSigns[0] = height; if (patientForm.encounterData.vitalSigns.Count < 2) patientForm.encounterData.vitalSigns.Add(weight); else patientForm.encounterData.vitalSigns[1] = weight; if (patientForm.encounterData.vitalSigns.Count < 3) patientForm.encounterData.vitalSigns.Add(bmi); else patientForm.encounterData.vitalSigns[2] = bmi; if (patientForm.encounterData.vitalSigns.Count < 4) patientForm.encounterData.vitalSigns.Add(zScore); else patientForm.encounterData.vitalSigns[3] = zScore; #endregion end add initial vitals #region initialize encounter patientForm.encounterData.encounter.id = patientForm.GetUUID(); patientForm.encounterData.encounter.codeSystem = clinicData.encounterTypeCode; patientForm.encounterData.encounter.code = clinicData.encountertype; patientForm.encounterData.encounter.textDescription = clinicData.encountertype; patientForm.encounterData.encounter.timeStamp = patientForm.GetTimeStamp() + clinicData.timeZone; patientForm.encounterData.encounter.reason = "Chief Complaint:"; patientForm.encounterData.encounter.notes = "Encounter Notes:"; #endregion return true; } else { MessageBox.Show("Could Not Write, Data Missing", "Print Error"); return false; } } else { MessageBox.Show("Please Assign A Scribe","Print Error"); return false; } }
private void StoreTriageData() { #region store vitals foreach (TriageVitals tv in triageStatus.triageVitals) { string timestamp = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString(); string hourminute = tv.situation.Substring(1, 2) + tv.situation.Substring(4, 2) + "00" + clinicData.timeZone; timestamp += hourminute; if (tv.t != null) { VitalSign t = new VitalSign(); t.id = "NI";//DEBUG need ID; t.timeStamp = timestamp; t.status = "completed"; t.unit = "c"; t.value = tv.t; t.code = "NI";//DEBUG need code t.codeSystem = clinicData.vitalSignCode; t.displayName = "Tempurature";//DEBUG need official display names t.comment = "Triage: " + tv.situation; patientForm.encounterData.vitalSigns.Add(t); } if (tv.p != null) { VitalSign p = new VitalSign(); p.id = "NI";//DEBUG need ID; p.timeStamp = timestamp; p.status = "completed"; p.unit = "NI"; p.value = tv.p; p.code = "NI";//DEBUG need code p.codeSystem = clinicData.vitalSignCode; p.displayName = "pulse";//DEBUG need official display names p.comment = "Triage: " + tv.situation; patientForm.encounterData.vitalSigns.Add(p); } if (tv.bp != null) { VitalSign b = new VitalSign(); b.id = "NI";//DEBUG need ID; b.timeStamp = timestamp; b.status = "completed"; b.unit = "NI"; b.value = tv.t; b.code = "NI";//DEBUG need code b.codeSystem = clinicData.vitalSignCode; b.displayName = "blood pressure";//DEBUG need official display names b.comment = "Triage: " + tv.situation; patientForm.encounterData.vitalSigns.Add(b); } if (tv.o2sat != null) { VitalSign o = new VitalSign(); o.id = "NI";//DEBUG need ID; o.timeStamp = timestamp; o.status = "completed"; o.unit = "NI"; o.value = tv.t; o.code = "NI";//DEBUG need code o.codeSystem = clinicData.vitalSignCode; o.displayName = "o2 saturation";//DEBUG need official display names o.comment = "Triage: " + tv.situation; patientForm.encounterData.vitalSigns.Add(o); } } #endregion end vitals patientForm.encounterData.encounter.reason = label75.Text; #region create red flags foreach (RedFlags r in triageStatus.redFlags) { Condition c = new Condition(); c.code = "NI"; c.codeSystem = clinicData.problemCode; c.code = "00000"; //DEBUG need codes! c.problemName = r.name; c.displayName = "Red Flags"; c.startYear = "1900"; //DEBUG start dates??? c.comment = r.comment; patientForm.encounterData.conditions.Add(c); } #endregion #region create Assessments Condition cc = new Condition(); cc.code = "NI"; cc.codeSystem = clinicData.problemCode; cc.code = "1"; //using 1 for active assessments, 0 for deleted cc.problemName = label75.Text; cc.displayName = "Assessment"; cc.startYear = "1900"; //DEBUG start dates??? cc.comment = "Enter Notes Here"; patientForm.encounterData.conditions.Add(cc); foreach (RedFlags r in triageStatus.redFlags) { Condition c = new Condition(); c.code = "NI"; c.codeSystem = clinicData.problemCode; c.code = "1"; //DEBUG need codes! c.problemName = r.name; c.displayName = "Assessment"; c.startYear = "1900"; //DEBUG start dates??? c.comment = r.comment; patientForm.encounterData.conditions.Add(c); } #endregion #region create immunizations foreach (WhoVaccine w in triageStatus.whoVaccines) { Immunization i = new Immunization(); i.code = "000000"; //DEBUG need codes i.codeSystem = clinicData.immunizationCode; i.comment = "Clinic Tab"; i.dateAdministered = w.date; i.displayName = w.name; i.text = "WHO Vaccines"; patientForm.encounterData.immunizations.Add(i); } #endregion end immunizations }
private void ReadVitalSigns(XmlTextReader textReader) { bool readingVitalSigns = true; while (readingVitalSigns) { textReader.Read(); switch (textReader.LocalName) { case "vitalSigns": readingVitalSigns = false; break; case "vitalSign": VitalSign newVitalSign = new VitalSign(); bool readingVitalSign = true; while (readingVitalSign) { textReader.Read(); switch (textReader.LocalName) { case "vitalSign": readingVitalSign = false; break; case "resultID": newVitalSign.id = textReader.GetAttribute(0); break; case "resultDateTime": newVitalSign.timeStamp = textReader.GetAttribute(0); break; case "resultType": newVitalSign.codeSystem = textReader.GetAttribute(0); newVitalSign.displayName = textReader.GetAttribute(1); newVitalSign.code = textReader.GetAttribute(2); break; case "resultStatus": newVitalSign.status = textReader.GetAttribute(0); break; case "physicalQuantity": newVitalSign.value = textReader.GetAttribute(0); newVitalSign.unit = textReader.GetAttribute(1); break; case "comment": textReader.Read(); textReader.Read(); newVitalSign.comment = textReader.Value.ToString(); textReader.Read(); textReader.Read(); break; } } patientForm.encounterData.vitalSigns.Add(newVitalSign); break; } } }