public void exportlinkData() { String filename = "health_data.csv"; String filefullName = Path.Combine(this.exportFolder, filename); FileStream fileStream = new FileStream(filefullName, FileMode.Create); fileStream.Close(); using (StreamWriter writer = new StreamWriter(filefullName)) { writer.WriteLine(HealthCareData.toCVSHeader()); HealthCareData healthCareData = null; foreach (var item in seq_healthCareDataMap) { healthCareData = item.Value; if (healthCareData.icd10_principle_dx.Contains("V") || healthCareData.icd10_external_cause.Contains("V")) { writer.WriteLine(healthCareData.toCVS()); } } } addtextln("Export Link Data Completed, ROW :" + seq_healthCareDataMap.Count); }
private void joinDiganosis_OPD() { HealthCareData healthCareData = null; addtextln("Read OPD"); opdDataIndex = Utils.setupDataDic(opdList[0]); string diagType = ""; string icd10 = ""; for (int index = 1; index < opdList.Count; index++) { String line = opdList[index]; string[] data = line.Split(','); String seq = Utils.getVal("SEQ", data, opdDataIndex); if (seq_healthCareDataMap.ContainsKey(seq)) { healthCareData = seq_healthCareDataMap[seq]; diagType = Utils.getVal("DIAGTYPE", data, opdDataIndex); icd10 = Utils.getVal("DIAGCODE", data, opdDataIndex); healthCareData.setICD10(diagType, icd10); } } }
private void joinDeath() { //HOSPCODE PID HOSPDEATH AN SEQ DDEATH CDEATH_A CDEATH_B CDEATH_C CDEATH_D ODISEASE CDEATH PREGDEATH PDEATH if (deathList.Count() == 0) { return; } HealthCareData healthCareData = null; addtextln("Read Death"); deathDataIndex = Utils.setupDataDic(deathList[0]); String seq = ""; String pid = ""; String an = ""; for (int index = 1; index < deathList.Count; index++) { String line = deathList[index]; string[] data = line.Split(','); seq = Utils.getVal("SEQ", data, deathDataIndex); if (seq_healthCareDataMap.ContainsKey(seq)) { healthCareData = seq_healthCareDataMap[seq]; pushDeathData(healthCareData, data); } pid = Utils.getVal("PID", data, deathDataIndex); if (pid_healthCareDataMap.ContainsKey(pid)) { List <HealthCareData> careDatas = pid_healthCareDataMap[pid]; careDatas.ForEach(delegate(HealthCareData careData) { pushDeathData(careData, data); }); } an = Utils.getVal("AN", data, deathDataIndex); if (an_healthCareDataMap.ContainsKey(an)) { List <HealthCareData> careDatas = an_healthCareDataMap[an]; careDatas.ForEach(delegate(HealthCareData careData) { pushDeathData(careData, data); }); } } }
private void pushDeathData(HealthCareData healthCareData, string[] data) { //HOSPCODE PID HOSPDEATH AN SEQ DDEATH CDEATH_A CDEATH_B CDEATH_C CDEATH_D ODISEASE CDEATH PREGDEATH PDEATH healthCareData.hospdeath = Utils.getVal("HOSPDEATH", data, deathDataIndex); healthCareData.ddeath = Utils.getVal("DDEATH", data, deathDataIndex); healthCareData.cdeath_a = Utils.getVal("CDEATH_A", data, deathDataIndex); healthCareData.cdeath_b = Utils.getVal("CDEATH_B", data, deathDataIndex); healthCareData.cdeath_c = Utils.getVal("CDEATH_C", data, deathDataIndex); healthCareData.cdeath_d = Utils.getVal("CDEATH_D", data, deathDataIndex); healthCareData.odisease = Utils.getVal("ODISEASE", data, deathDataIndex); healthCareData.cdeath = Utils.getVal("CDEATH", data, deathDataIndex); healthCareData.pregdeath = Utils.getVal("PREGDEATH", data, deathDataIndex); healthCareData.pdeath = Utils.getVal("PDEATH", data, deathDataIndex); }
private void joinService() { serviceDataIndex = Utils.setupDataDic(serviceList[0]); addtextln("Read Service"); HealthCareData healthCareData = null; for (int index = 1; index < serviceList.Count; index++) { healthCareData = new HealthCareData(); String line = serviceList[index]; string[] data = line.Split(','); String seq = Utils.getVal("SEQ", data, serviceDataIndex); String pid = Utils.getVal("PID", data, serviceDataIndex); String date_serv = Utils.getVal("DATE_SERV", data, serviceDataIndex); healthCareData.seq = seq; healthCareData.pid = pid; healthCareData.hospcode = Utils.getVal("HOSPCODE", data, serviceDataIndex); healthCareData.hn = Utils.getVal("HN", data, serviceDataIndex); healthCareData.date_serv = date_serv; healthCareData.time_serv = Utils.getVal("TIME_SERV", data, serviceDataIndex); healthCareData.location = Utils.getVal("LOCATION", data, serviceDataIndex); healthCareData.type_in = Utils.getVal("TYPEIN", data, serviceDataIndex); healthCareData.refer_in_hosp = Utils.getVal("REFERINHOSP", data, serviceDataIndex); healthCareData.cause_in = Utils.getVal("CAUSEIN", data, serviceDataIndex); healthCareData.typeout = Utils.getVal("TYPEOUT", data, serviceDataIndex); seq_healthCareDataMap.Add(seq, healthCareData); if (!pid_healthCareDataMap.ContainsKey(pid)) { List <HealthCareData> careData = new List <HealthCareData>(); careData.Add(healthCareData); pid_healthCareDataMap.Add(pid, careData); } else { List <HealthCareData> careData = pid_healthCareDataMap[pid]; careData.Add(healthCareData); } healthCareDataList.Add(healthCareData); } }
private void pushAccidentData(HealthCareData healthCareData, string[] data) { healthCareData.aetype = Utils.getVal("AETYPE", data, accidentDataIndex); healthCareData.aeplace = Utils.getVal("AEPLACE", data, accidentDataIndex); healthCareData.typein_ae = Utils.getVal("TYPEIN_AE", data, accidentDataIndex); healthCareData.traffic = Utils.getVal("TRAFFIC", data, accidentDataIndex); healthCareData.vehicle = Utils.getVal("VEHICLE", data, accidentDataIndex); healthCareData.alcohol = Utils.getVal("ALCOHOL", data, accidentDataIndex); healthCareData.nacrotic_drug = Utils.getVal("NACROTIC_DRUG", data, accidentDataIndex); healthCareData.belt = Utils.getVal("BELT", data, accidentDataIndex); healthCareData.helmet = Utils.getVal("HELMET", data, accidentDataIndex); healthCareData.airway = Utils.getVal("AIRWAY", data, accidentDataIndex); healthCareData.stopbleed = Utils.getVal("STOPBLEED", data, accidentDataIndex); healthCareData.splint = Utils.getVal("SPLINT", data, accidentDataIndex); healthCareData.fluid = Utils.getVal("FLUID", data, accidentDataIndex); healthCareData.urgency = Utils.getVal("URGENCY", data, accidentDataIndex); healthCareData.coma_eye = Utils.getVal("COMA_EYE", data, accidentDataIndex); healthCareData.coma_speak = Utils.getVal("COMA_SPEAK", data, accidentDataIndex); healthCareData.coma_movement = Utils.getVal("COMA_MOVEMENT", data, accidentDataIndex); }
private void joinAccident() { //PID SEQ DATETIME_SERV DATETIME_AE AETYPE AEPLACE TYPEIN_AE TRAFFIC VEHICLE ALCOHOL NACROTIC_DRUG //BELT HELMET AIRWAY STOPBLEED SPLINT FLUID URGENCY COMA_EYE COMA_SPEAK COMA_MOVEMENT HealthCareData healthCareData = null; addtextln("Read Accident"); accidentDataIndex = Utils.setupDataDic(accidentList[0]); String seq = ""; String pid = ""; for (int index = 1; index < accidentList.Count; index++) { String line = accidentList[index]; string[] data = line.Split(','); seq = Utils.getVal("SEQ", data, accidentDataIndex); if (seq_healthCareDataMap.ContainsKey(seq)) { healthCareData = seq_healthCareDataMap[seq]; pushAccidentData(healthCareData, data); } pid = Utils.getVal("PID", data, accidentDataIndex); if (pid_healthCareDataMap.ContainsKey(pid)) { List <HealthCareData> careDatas = pid_healthCareDataMap[pid]; careDatas.ForEach(delegate(HealthCareData careData) { pushAccidentData(careData, data); }); } } }
private void calcualateData() { HealthCareData healthCareData = null; String typeout = ""; String discharge_status = ""; foreach (HealthCareData item in healthCareDataList) { healthCareData = item; String date_serv = healthCareData.date_serv; String birth_date = healthCareData.birthdate; try { int year_serv = int.Parse(date_serv.Substring(0, 4)); int year_birth = int.Parse(birth_date.Substring(0, 4)); int age = year_serv - year_birth; healthCareData.age_at_service = age; } catch (Exception e) { // Console.WriteLine(date_serv + "Serve " + birth_date + "Birth " + e.ToString()); } typeout = healthCareData.typeout; discharge_status = healthCareData.discharge_status; int typeout_int = 0; int discharge_int = 0; string CDEATH = healthCareData.cdeath; try { if (typeout.Length > 0) { typeout_int = int.Parse(typeout); } if (discharge_status.Length > 0) { discharge_int = int.Parse(discharge_status); } } catch (Exception e) { // Console.WriteLine(e.ToString() + "typeout " + typeout + " discharge_status " + discharge_status); } if ((typeout_int >= 4 && typeout_int <= 6) || (discharge_int == 8 || discharge_int == 9) || CDEATH != null) { healthCareData.deathstatus = "1"; if (healthCareData.icd10_principle_dx.Contains("V") || healthCareData.icd10_external_cause.Contains("V")) { joinDeathList.Add(healthCareData); } } else { healthCareData.deathstatus = "0"; } } addtextln("Death Count from Health Data: " + joinDeathList.Count()); }
private void joinDiganosis_IPD() { HealthCareData healthCareData = null; addtextln("Read IPD"); ipdDataIndex = Utils.setupDataDic(ipdList[0]); String diagType = ""; String icd10 = ""; String date; for (int index = 1; index < ipdList.Count; index++) { String line = ipdList[index]; string[] data = line.Split(','); String pid = Utils.getVal("PID", data, ipdDataIndex); String an = Utils.getVal("AN", data, ipdDataIndex); diagType = Utils.getVal("DIAGTYPE", data, ipdDataIndex); icd10 = Utils.getVal("DIAGCODE", data, ipdDataIndex); date = Utils.getVal("DATETIME_ADMIT", data, ipdDataIndex); if (an_healthCareDataMap.ContainsKey(an)) { List <HealthCareData> careDatas = an_healthCareDataMap[an]; if (careDatas.Count == 1) { healthCareData = careDatas[0]; healthCareData.setICD10(diagType, icd10); } else if (careDatas.Count > 1) { careDatas.ForEach(delegate(HealthCareData careData) { healthCareData = careData; if (healthCareData.checkSameDataByDate(date)) { healthCareData.setICD10(diagType, icd10); } }); } } else if (pid_healthCareDataMap.ContainsKey(pid)) { List <HealthCareData> careDatas = pid_healthCareDataMap[pid]; if (careDatas.Count == 1) { healthCareData = careDatas[0]; healthCareData.setICD10(diagType, icd10); } else if (careDatas.Count > 1) { careDatas.ForEach(delegate(HealthCareData careData) { healthCareData = careData; if (healthCareData.checkSameDataByDate(date)) { healthCareData.setICD10(diagType, icd10); } }); } } } }
private void joinAdmission() { HealthCareData healthCareData = null; addtextln("Read Admit"); admidDataIndex = Utils.setupDataDic(admidList[0]); for (int index = 1; index < admidList.Count; index++) { String line = admidList[index]; string[] data = line.Split(','); String seq = Utils.getVal("SEQ", data, admidDataIndex); String pid = Utils.getVal("PID", data, admidDataIndex); String date_admit = Utils.getVal("DATETIME_ADMIT", data, admidDataIndex); String date_serv = date_admit.Substring(0, 8); String time_serv = date_admit.Substring(8, 6); healthCareData = new HealthCareData(); healthCareData.seq = seq; healthCareData.pid = pid; healthCareData.hospcode = Utils.getVal("HOSPCODE", data, serviceDataIndex); healthCareData.hn = Utils.getVal("HN", data, serviceDataIndex); healthCareData.date_serv = date_serv; healthCareData.time_serv = time_serv; healthCareData.type_in = Utils.getVal("TYPEIN", data, serviceDataIndex); healthCareData.refer_in_hosp = Utils.getVal("REFERINHOSP", data, serviceDataIndex); healthCareData.cause_in = Utils.getVal("CAUSEIN", data, serviceDataIndex); healthCareData.an = Utils.getVal("AN", data, admidDataIndex); healthCareData.discharge_status = Utils.getVal("DISCHSTATUS", data, admidDataIndex); healthCareData.date_admit = date_admit; String an = Utils.getVal("AN", data, admidDataIndex); if (seq_healthCareDataMap.ContainsKey(seq)) { healthCareData = seq_healthCareDataMap[seq]; healthCareData.an = Utils.getVal("AN", data, admidDataIndex); healthCareData.discharge_status = Utils.getVal("DISCHSTATUS", data, admidDataIndex); healthCareData.date_admit = date_admit; } else { seq_healthCareDataMap.Add(seq, healthCareData); healthCareDataList.Add(healthCareData); if (pid_healthCareDataMap.ContainsKey(pid)) { List <HealthCareData> careData = pid_healthCareDataMap[pid]; careData.Add(healthCareData); } else { List <HealthCareData> careData = new List <HealthCareData>(); careData.Add(healthCareData); pid_healthCareDataMap.Add(pid, careData); } } if (an_healthCareDataMap.ContainsKey(an)) { List <HealthCareData> careData = an_healthCareDataMap[an]; careData.Add(healthCareData); } else { List <HealthCareData> careData = new List <HealthCareData>(); careData.Add(healthCareData); an_healthCareDataMap.Add(an, careData); } } }