StableVersion4.3/HL_FristAidPlatform_EMRS/Print.cs

657 lines
32 KiB
C#

using HL_FristAidPlatform_Print;
using HL_FristAidPlatform_Public;
using System;
using System.Data;
using System.Windows.Forms;
namespace HL_FristAidPlatform_EMRS
{
public class Print
{
public static string ElectronicMedicalRecord(string GUID, bool isPreview)
{
if (!string.IsNullOrEmpty(GUID))
{
DataTable PrintDT = new DataTable();
PrintDT.Columns.Add("HospitalName");
#region 电子病历
#region 基本信息
PrintDT.Columns.Add("Name");
PrintDT.Columns.Add("Age");
PrintDT.Columns.Add("Gender");
PrintDT.Columns.Add("Nation");
PrintDT.Columns.Add("Address");
PrintDT.Columns.Add("IdentityCard");
PrintDT.Columns.Add("IdentityType");
PrintDT.Columns.Add("Profession");
PrintDT.Columns.Add("EmergencyContact");
PrintDT.Columns.Add("EmergencyContactPhone");
PrintDT.Columns.Add("TransportAddress");
PrintDT.Columns.Add("Attack_Address");
PrintDT.Columns.Add("CauseOfDisease");
PrintDT.Columns.Add("MedicalHistory");
PrintDT.Columns.Add("AllergyHistory");
PrintDT.Columns.Add("ChiefComplaint");
PrintDT.Columns.Add("SiteType");
PrintDT.Columns.Add("DeliveryType");
#endregion
#region 体格检查
PrintDT.Columns.Add("Pulse");
PrintDT.Columns.Add("HeartRate");
PrintDT.Columns.Add("SystolicPressure");
PrintDT.Columns.Add("DiastolicPressure");
PrintDT.Columns.Add("Temperature");
PrintDT.Columns.Add("Breathing");
PrintDT.Columns.Add("Position");
//PrintDT.Columns.Add("Sonscious");
PrintDT.Columns.Add("GeneralQ");
PrintDT.Columns.Add("SkinOther");
PrintDT.Columns.Add("SkinColor");
PrintDT.Columns.Add("PupilL");
PrintDT.Columns.Add("PupilR");
PrintDT.Columns.Add("Reflex");
PrintDT.Columns.Add("HeadOther");
PrintDT.Columns.Add("IsNeckRigidity");
PrintDT.Columns.Add("IsJugularFilling");
PrintDT.Columns.Add("IsCarotidPulsation");
PrintDT.Columns.Add("IsBreathStop");
PrintDT.Columns.Add("IsBreathSoundsL");
PrintDT.Columns.Add("BreathSoundsL");
PrintDT.Columns.Add("IsMoistRalesL");
PrintDT.Columns.Add("IsDryRalesL");
PrintDT.Columns.Add("IsBreathSoundsR");
PrintDT.Columns.Add("BreathSoundsR");
PrintDT.Columns.Add("IsMoistRalesR");
PrintDT.Columns.Add("IsDryRalesR");
PrintDT.Columns.Add("Rhythm");
PrintDT.Columns.Add("HeartSounds");
PrintDT.Columns.Add("IsNoise");
PrintDT.Columns.Add("NoisePosition");
PrintDT.Columns.Add("Waist");
PrintDT.Columns.Add("Liver");
PrintDT.Columns.Add("IsBackPain");
PrintDT.Columns.Add("IsWaistPian");
PrintDT.Columns.Add("Spleen");
PrintDT.Columns.Add("BowelSound");
PrintDT.Columns.Add("PainOther");
PrintDT.Columns.Add("WaistOther");
PrintDT.Columns.Add("Spine");
PrintDT.Columns.Add("MRC");
PrintDT.Columns.Add("MRSLT");
PrintDT.Columns.Add("MRSLD");
PrintDT.Columns.Add("MRSRT");
PrintDT.Columns.Add("MRSRD");
PrintDT.Columns.Add("IsEdema");
PrintDT.Columns.Add("MRSOther");
PrintDT.Columns.Add("PhysiologicalReflex");
PrintDT.Columns.Add("Babinskisign");
PrintDT.Columns.Add("NervousPosition");
PrintDT.Columns.Add("HealthCheckUpOther");
#endregion
#region 专科检查
PrintDT.Columns.Add("BrainType");
PrintDT.Columns.Add("BranInjury");
PrintDT.Columns.Add("MaxillofacialType");
PrintDT.Columns.Add("MaxillofacialInjury");
PrintDT.Columns.Add("ChestType");
PrintDT.Columns.Add("ChestInjury");
PrintDT.Columns.Add("AbdomenType");
PrintDT.Columns.Add("AbdomenInjury");
PrintDT.Columns.Add("BackType");
PrintDT.Columns.Add("BackInjury");
PrintDT.Columns.Add("SpineType");
PrintDT.Columns.Add("SpineInjury");
PrintDT.Columns.Add("limbType");
PrintDT.Columns.Add("limbInjury");
#endregion
#region 辅助检查
PrintDT.Columns.Add("GLU");
PrintDT.Columns.Add("SPO2");
PrintDT.Columns.Add("Other");
PrintDT.Columns.Add("PrimaryDiagnosis");
PrintDT.Columns.Add("Illness");
PrintDT.Columns.Add("Measures");
PrintDT.Columns.Add("ChangeOnTheWay");
PrintDT.Columns.Add("FirstAidEffect");
PrintDT.Columns.Add("VisitResult");
PrintDT.Columns.Add("DeathCertificate");
PrintDT.Columns.Add("FilledBy");
PrintDT.Columns.Add("ArrivalTime");
#endregion
#endregion
string Url = string.Format("api/service/T_Service_Patient/MedicalRecordPrint?GUID={0}", GUID);
DataTable DateDT = DBHelpClass.Get(Url);
if (DateDT != null && DateDT.Rows.Count > 0)
{
foreach (DataRow row in DateDT.Rows)
{
//循环打印
PrintDT.Rows.Clear();
DataRow dr = PrintDT.NewRow();
#region 基本信息
dr["Name"] = row["Name"];
dr["Age"] = row["Age"];
switch (row["Gender"].ToString())
{
case "0":
dr["Gender"] = "未知";
break;
case "1":
dr["Gender"] = "男";
break;
case "2":
dr["Gender"] = "女";
break;
}
dr["Nation"] = row["Nation"];
dr["Address"] = row["Address"];
dr["IdentityCard"] = row["IdentityCard"];
dr["IdentityType"] = row["IdentityType"];
dr["Profession"] = row["Profession"];
dr["EmergencyContact"] = row["EmergencyContact"];
dr["EmergencyContactPhone"] = row["EmergencyContactPhone"];
dr["TransportAddress"] = row["TransportAddress"];
dr["Attack_Address"] = row["Attack_Address"];
dr["CauseOfDisease"] = row["CauseOfDisease"];
dr["MedicalHistory"] = row["MedicalHistory"];
dr["AllergyHistory"] = row["AllergyHistory"];
dr["ChiefComplaint"] = row["ChiefComplaint"];
dr["SiteType"] = row["SiteType"];
dr["DeliveryType"] = row["DeliveryType"];
#endregion
#region 体格检查
dr["Pulse"] = row["Pulse"];
dr["HeartRate"] = row["HeartRate"];
dr["SystolicPressure"] = row["SystolicPressure"];
dr["DiastolicPressure"] = row["DiastolicPressure"];
dr["Temperature"] = row["Temperature"];
dr["Breathing"] = row["Breathing"];
dr["Position"] = row["Position"];
//dr["Sonscious"] = row["Sonscious"];
dr["GeneralQ"] = row["GeneralQ"];
dr["SkinOther"] = row["SkinOther"];
dr["SkinColor"] = row["SkinColor"];
dr["PupilL"] = row["PupilL"];
dr["PupilR"] = row["PupilR"];
dr["Reflex"] = row["Reflex"];
dr["HeadOther"] = row["HeadOther"];
dr["IsNeckRigidity"] = row["IsNeckRigidity"];
dr["IsJugularFilling"] = row["IsJugularFilling"];
dr["IsCarotidPulsation"] = row["IsCarotidPulsation"];
dr["IsBreathStop"] = row["IsBreathStop"];
dr["IsBreathSoundsL"] = row["IsBreathSoundsL"];
dr["BreathSoundsL"] = row["BreathSoundsL"];
dr["IsMoistRalesL"] = row["IsMoistRalesL"];
dr["IsDryRalesL"] = row["IsDryRalesL"];
dr["IsBreathSoundsR"] = row["IsBreathSoundsR"];
dr["BreathSoundsR"] = row["BreathSoundsR"];
dr["IsMoistRalesR"] = row["IsMoistRalesR"];
dr["IsDryRalesR"] = row["IsDryRalesR"];
dr["Rhythm"] = row["Rhythm"];
dr["HeartSounds"] = row["HeartSounds"];
dr["IsNoise"] = row["IsNoise"];
dr["NoisePosition"] = row["NoisePosition"];
dr["Waist"] = row["Waist"];
dr["Liver"] = row["Liver"];
dr["IsBackPain"] = row["IsBackPain"];
dr["IsWaistPian"] = row["IsWaistPian"];
dr["Spleen"] = row["Spleen"];
dr["BowelSound"] = row["BowelSound"];
dr["PainOther"] = row["PainOther"];
dr["WaistOther"] = row["WaistOther"];
dr["Spine"] = row["Spine"];
dr["MRC"] = row["MRC"];
dr["MRSLT"] = row["MRSLT"];
dr["MRSLD"] = row["MRSLD"];
dr["MRSRT"] = row["MRSRT"];
dr["MRSRD"] = row["MRSRD"];
dr["IsEdema"] = row["IsEdema"];
dr["MRSOther"] = row["MRSOther"];
dr["PhysiologicalReflex"] = row["PhysiologicalReflex"];
dr["Babinskisign"] = row["Babinskisign"];
switch (row["NervousPosition"])
{
case "-1":
dr["NervousPosition"] = "无";
break;
case "0":
dr["NervousPosition"] = "左";
break;
case "1":
dr["NervousPosition"] = "右";
break;
case "2":
dr["NervousPosition"] = "双侧";
break;
}
dr["HealthCheckUpOther"] = row["HealthCheckUpOther"];
#endregion
#region 专科检查
switch (row["BrainType"])
{
case "-1":
dr["BrainType"] = "无";
break;
case "0":
dr["BrainType"] = "开放性";
break;
case "1":
dr["BrainType"] = "闭合性";
break;
case "2":
dr["BrainType"] = "烧伤";
break;
}
dr["BranInjury"] = row["BranInjury"];
switch (row["MaxillofacialType"])
{
case "-1":
dr["MaxillofacialType"] = "无";
break;
case "0":
dr["MaxillofacialType"] = "开放性";
break;
case "1":
dr["MaxillofacialType"] = "闭合性";
break;
case "2":
dr["MaxillofacialType"] = "烧伤";
break;
}
dr["MaxillofacialInjury"] = row["MaxillofacialInjury"];
switch (row["ChestType"])
{
case "-1":
dr["ChestType"] = "无";
break;
case "0":
dr["ChestType"] = "开放性";
break;
case "1":
dr["ChestType"] = "闭合性";
break;
case "2":
dr["ChestType"] = "烧伤";
break;
}
dr["ChestInjury"] = row["ChestInjury"];
switch (row["AbdomenType"])
{
case "-1":
dr["AbdomenType"] = "无";
break;
case "0":
dr["AbdomenType"] = "开放性";
break;
case "1":
dr["AbdomenType"] = "闭合性";
break;
case "2":
dr["AbdomenType"] = "烧伤";
break;
}
dr["AbdomenInjury"] = row["AbdomenInjury"];
switch (row["BackType"])
{
case "-1":
dr["BackType"] = "无";
break;
case "0":
dr["BackType"] = "开放性";
break;
case "1":
dr["BackType"] = "闭合性";
break;
case "2":
dr["BackType"] = "烧伤";
break;
}
dr["BackInjury"] = row["BackInjury"];
switch (row["SpineType"])
{
case "-1":
dr["SpineType"] = "无";
break;
case "0":
dr["SpineType"] = "开放性";
break;
case "1":
dr["SpineType"] = "闭合性";
break;
case "2":
dr["SpineType"] = "烧伤";
break;
}
dr["SpineInjury"] = row["SpineInjury"];
switch (row["limbType"])
{
case "-1":
dr["limbType"] = "无";
break;
case "0":
dr["limbType"] = "开放性";
break;
case "1":
dr["limbType"] = "闭合性";
break;
case "2":
dr["limbType"] = "烧伤";
break;
}
dr["limbInjury"] = row["limbInjury"];
#endregion
#region 辅助检查
dr["GLU"] = row["GLU"];
dr["SPO2"] = row["SPO2"];
dr["Other"] = row["Other"];
dr["PrimaryDiagnosis"] = row["PrimaryDiagnosis"];
dr["Illness"] = row["Illness"];
dr["Measures"] = row["Measures"];
dr["ChangeOnTheWay"] = row["ChangeOnTheWay"];
dr["FirstAidEffect"] = row["FirstAidEffect"];
dr["VisitResult"] = row["VisitResult"];
dr["DeathCertificate"] = row["DeathCertificate"];
dr["FilledBy"] = row["FilledBy"];
dr["ArrivalTime"] = row["ArrivalTime"];
#endregion
dr["HospitalName"] = row["HospitalName"];
PrintDT.Rows.Add(dr);
HL_FristAidPlatform_Print.PrintByGridpp print = new HL_FristAidPlatform_Print.PrintByGridpp();
string path = Application.StartupPath.Split('\\')[0] + "\\院前急救电子病例\\";
print.PrintReportToPDF(PrintDT, GUID, "MedicalRecord.grf", path, GUID);
}
return "";
}
else
{
return "目前系统设置中没有需要打印时间节点条码或数据获取失败!请联系管理员。";
}
}
else
{
return "传入的患者编号为空。"; ;
}
}
public static string GetPatientMedicalOfJN(string GUID, bool isPreview)
{
try
{
if (!string.IsNullOrEmpty(GUID))
{
DataTable PrintDT = new DataTable();
#region 金牛院前急救记录
PrintDT.Columns.Add("Name");
PrintDT.Columns.Add("Age");
PrintDT.Columns.Add("Gender");
PrintDT.Columns.Add("MobilePhone");
PrintDT.Columns.Add("WaitingAddress");
PrintDT.Columns.Add("DrivingTime");
PrintDT.Columns.Add("ArrivalTime");
PrintDT.Columns.Add("BoardingTime");
PrintDT.Columns.Add("ReturnTime");
PrintDT.Columns.Add("Killip");
PrintDT.Columns.Add("ChiefComplaint");
PrintDT.Columns.Add("AllergicHistory");
PrintDT.Columns.Add("Pulse");
PrintDT.Columns.Add("HeartRate");
PrintDT.Columns.Add("SystolicPressure");
PrintDT.Columns.Add("Pathogeny");
PrintDT.Columns.Add("DiastolicPressure");
PrintDT.Columns.Add("Temperature");
PrintDT.Columns.Add("Breathing");
PrintDT.Columns.Add("ActiveBleed");
PrintDT.Columns.Add("ActiveBleedSite");
PrintDT.Columns.Add("BreathingState");
PrintDT.Columns.Add("AirwayAbnormal");
PrintDT.Columns.Add("HeadAbnormal");
PrintDT.Columns.Add("HeadAbnormalInfo");
PrintDT.Columns.Add("ChestAbnormal");
PrintDT.Columns.Add("ChestAbnormalInfo");
PrintDT.Columns.Add("EMRSPath");
PrintDT.Columns.Add("Provider");
PrintDT.Columns.Add("MedicationRecord");
PrintDT.Columns.Add("Fever");
PrintDT.Columns.Add("OwnerAllergyHistory");
PrintDT.Columns.Add("HeartDiseaseHistory");
PrintDT.Columns.Add("HypertensionHistory");
PrintDT.Columns.Add("DiabetesHistory");
PrintDT.Columns.Add("CPulse");
PrintDT.Columns.Add("CHeartRate");
PrintDT.Columns.Add("CSystolicPressure");
PrintDT.Columns.Add("CDiastolicPressure");
PrintDT.Columns.Add("CTemperature");
PrintDT.Columns.Add("CBreathing");
PrintDT.Columns.Add("SP02");
PrintDT.Columns.Add("CSPO2");
PrintDT.Columns.Add("CDatetime");
PrintDT.Columns.Add("PrimaryDiagnosis");
PrintDT.Columns.Add("Measures");
PrintDT.Columns.Add("WhereAbouts");
PrintDT.Columns.Add("Sonscious");
PrintDT.Columns.Add("DoctorName");
PrintDT.Columns.Add("NurseName");
PrintDT.Columns.Add("TransportAddress");
PrintDT.Columns.Add("AllergicHistoryInfo");
PrintDT.Columns.Add("ProvideMedical");
PrintDT.Columns.Add("SkinColor");
PrintDT.Columns.Add("SkinAbnormal");
PrintDT.Columns.Add("Waist");
PrintDT.Columns.Add("WaistAbnormal");
PrintDT.Columns.Add("MRC");
PrintDT.Columns.Add("MRCAbnormal");
PrintDT.Columns.Add("ChangeOnTheWay");
PrintDT.Columns.Add("CallTime");
PrintDT.Columns.Add("AirwayOpen");
PrintDT.Columns.Add("PupilL");
PrintDT.Columns.Add("PupilR");
PrintDT.Columns.Add("ReflexL");
PrintDT.Columns.Add("ReflexR");
#endregion
string Url = string.Format("api/service/T_Service_Patient/GetPatientMedicalOfJN?GUID={0}", GUID);
DataTable DateDT = DBHelpClass.Get(Url);
if (DateDT != null && DateDT.Rows.Count > 0)
{
foreach (DataRow row in DateDT.Rows)
{
//循环打印
PrintDT.Rows.Clear();
DataRow dr = PrintDT.NewRow();
dr["Name"] = row["Name"];
dr["Age"] = row["Age"];
switch (row["Gender"].ToString())
{
case "0":
dr["Gender"] = "未知";
break;
case "1":
dr["Gender"] = "男";
break;
case "2":
dr["Gender"] = "女";
break;
}
dr["MobilePhone"] = row["MobilePhone"];
dr["Pathogeny"] = row["Pathogeny"];
dr["CallTime"] = row["CallTime"];
dr["DrivingTime"] = row["DrivingTime"];
dr["ArrivalTime"] = row["ArrivalTime"];
dr["BoardingTime"] = row["BoardingTime"];
dr["ReturnTime"] = row["ReturnTime"];
dr["Killip"] = row["Killip"];
dr["ChiefComplaint"] = row["ChiefComplaint"];
dr["Pulse"] = row["Pulse"];
dr["HeartRate"] = row["HeartRate"];
dr["SystolicPressure"] = row["SystolicPressure"];
dr["DiastolicPressure"] = row["DiastolicPressure"];
dr["Temperature"] = row["Temperature"];
dr["Breathing"] = row["Breathing"];
dr["ActiveBleed"] = row["ActiveBleed"];
dr["ActiveBleedSite"] = row["ActiveBleedSite"];
dr["AirwayOpen"] = row["AirwayOpen"];
switch (row["BreathingState"].ToString())// 0 正常 1 困难 2 窒息 3 停止
{
case "0":
dr["BreathingState"] = "正常";
break;
case "1":
dr["BreathingState"] = "困难";
break;
case "2":
dr["BreathingState"] = "窒息";
break;
case "3":
dr["BreathingState"] = "停止";
break;
}
dr["AirwayAbnormal"] = row["AirwayAbnormal"];
dr["HeadAbnormal"] = row["HeadAbnormal"];
dr["HeadAbnormalInfo"] = row["HeadAbnormalInfo"];
dr["ChestAbnormal"] = row["ChestAbnormal"];
dr["ChestAbnormalInfo"] = row["ChestAbnormalInfo"];
dr["EMRSPath"] = row["EMRSPath"];
dr["Provider"] = row["Provider"];
dr["MedicationRecord"] = row["MedicationRecord"];
dr["Fever"] = row["Fever"];
dr["OwnerAllergyHistory"] = row["OwnerAllergyHistory"];
dr["CPulse"] = row["CPulse"];
dr["CHeartRate"] = row["CHeartRate"];
dr["CSystolicPressure"] = row["CSystolicPressure"];
dr["CDiastolicPressure"] = row["CDiastolicPressure"];
dr["CTemperature"] = row["CTemperature"];
dr["CBreathing"] = row["CBreathing"];
dr["SP02"] = row["SP02"];
dr["CSPO2"] = row["CSPO2"];
dr["CDatetime"] = row["CDatetime"];
dr["WaitingAddress"] = row["WaitingAddress"];
dr["PrimaryDiagnosis"] = row["PrimaryDiagnosis"];
dr["Measures"] = row["Measures"];
dr["Sonscious"] = row["Sonscious"];
dr["DoctorName"] = row["DoctorName"];
dr["NurseName"] = row["NurseName"];
//0到院 1 转院 2现场救治 3 拒绝治疗 4拒绝送院 5抢救无效死亡 6 自行离去 7未接到患者
switch (row["WhereAbouts"].ToString())
{
case "0":
dr["WhereAbouts"] = "送回本院";
break;
case "1":
dr["WhereAbouts"] = "转往他院";
break;
case "2":
dr["WhereAbouts"] = "现场救治";
break;
case "3":
dr["WhereAbouts"] = "拒绝治疗";
break;
case "4":
dr["WhereAbouts"] = "拒绝送院";
break;
case "5":
dr["WhereAbouts"] = "抢救无效死亡";
break;
}
dr["TransportAddress"] = row["TransportAddress"];
string str = "";
if (!string.IsNullOrEmpty(row["HeartDiseaseHistory"].ToString()))
{
str += row["HeartDiseaseHistory"];
}
if (!string.IsNullOrEmpty(row["HypertensionHistory"].ToString()))
{
str += str + ',';
str += row["HypertensionHistory"];
}
if (!string.IsNullOrEmpty(row["DiabetesHistory"].ToString()))
{
str += str + ',';
str += row["DiabetesHistory"];
}
dr["AllergicHistory"] = str;
dr["AllergicHistoryInfo"] = str + row["AllergicHistoryInfo"];
dr["ProvideMedical"] = row["ProvideMedical"];
dr["PupilL"] = row["PupilL"];
dr["PupilR"] = row["PupilR"];
dr["ReflexL"] = row["ReflexL"];
dr["ReflexR"] = row["ReflexR"];
dr["SkinColor"] = row["SkinColor"];
if (row["SkinColor"].ToString() != "正常")
{
dr["SkinColor"] = "异常";
dr["SkinAbnormal"] = row["SkinColor"];
}
else
{
dr["SkinColor"] = row["SkinColor"];
}
if (row["Waist"].ToString() == "肌紧张")
{
dr["Waist"] = "异常";
dr["WaistAbnormal"] = row["Waist"];
}
else
{
dr["Waist"] = "正常";
}
if (row["MRC"].ToString() == "正常")
{
dr["MRC"] = "正常";
}
else
{
dr["MRC"] = "异常";
dr["MRCAbnormal"] = row["MRC"];
}
dr["ChangeOnTheWay"] = row["ChangeOnTheWay"];
dr["PupilL"] = row["PupilL"];
dr["PupilR"] = row["PupilR"];
dr["ReflexL"] = row["ReflexL"];
dr["ReflexR"] = row["ReflexR"];
PrintDT.Rows.Add(dr);
HL_FristAidPlatform_Print.PrintByGridpp print = new HL_FristAidPlatform_Print.PrintByGridpp();
string path = Application.StartupPath.Split('\\')[0] + "\\院前急救电子病例\\";
print.PrintReportToPDF(PrintDT, GUID, "JNMedicalRecord.grf", path, GUID);
}
return "";
}
else
{
return "目前系统设置中没有需要打印时间节点条码或数据获取失败!请联系管理员。";
}
}
else
{
return "传入的患者编号为空。"; ;
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}