Exemplo n.º 1
0
Arquivo: Form1.cs Projeto: hr4e/csharp
        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;
            }
        }
Exemplo n.º 2
0
Arquivo: Form1.cs Projeto: hr4e/csharp
        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
        }
Exemplo n.º 3
0
 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;
         }
     }
 }