Bläddra i källkod

1、解决省医保参保地固定写死导致获取人员信息失败问题
2、优化身份证凭证医保结算, 选择身份证类型自动从患者建档信息抓取

zzz 1 år sedan
förälder
incheckning
b729540320

BIN
.vs/slnx.sqlite


+ 9 - 1
Business/CenterBusiness.cs

@@ -166,7 +166,15 @@ namespace PTMedicalInsurance.Business
                 {
                     jsonSignIn.opter_no = "7571C4995A2F4290";
                 }
-               // jsonSignIn.opter_no = Global.user.ID;
+                if (Global.inf.interfaceDr == 15)//安徽省基线版-蜀山老院
+                {
+                    jsonSignIn.opter_no = "48664E4455CC0F8F";
+                }
+                if (Global.inf.interfaceDr == 17)//合肥市基线版-蜀山老院
+                {
+                    jsonSignIn.opter_no = "4D91C975CF902EB2";
+                }
+                // jsonSignIn.opter_no = Global.user.ID;
                 jsonSignIn.mac = Global.curEvt.mac;
                 
                 //MessageBox.Show(Global.inf.hospitalNO + "||" + Global.inf.CreditID + "||" + Global.inf.BusinessID);

+ 29 - 9
Business/HisMainBusiness.cs

@@ -42,6 +42,7 @@ namespace PTMedicalInsurance.Business
         private HisIrisServices hIS = new HisIrisServices();
         private MIIrisServices mIS = new MIIrisServices();
         private CenterBusiness cBus = new CenterBusiness();
+        private InsuServices rIS = new InsuServices();
         /// <summary>
         /// 获取HIS的IRIS配置信息
         /// </summary>
@@ -268,7 +269,7 @@ namespace PTMedicalInsurance.Business
                     //身份证
                     if (cc.cardType == "02")
                     {
-                        if (cc.ID == "")
+                         if (cc.ID == "")
                         {
                             Global.pat.certType = "01";
                             Global.pat.mdtrtcertType = "02";
@@ -282,7 +283,12 @@ namespace PTMedicalInsurance.Business
                             Global.pat.certNO = cc.ID;
                             Global.pat.name = cc.PatName;
                         }
-                       
+                        Global.pat.insuplc_admdvs = Global.pat.card.SearchAdmCode;
+                        if (Global.pat.OtherProv == 0)
+                        {
+                            Global.pat.insuplc_admdvs = "340100";//合肥本地固定340100
+                            //MessageBox.Show(Global.pat.card.SearchAdmCode + Global.pat.card.SearchAdmName);
+                        }
                         Global.pat.card.SN = "";
                     }
                     //社保卡
@@ -314,11 +320,7 @@ namespace PTMedicalInsurance.Business
                         Global.pat.certType = "01";                 
                     }
 
-                    if (Global.pat.OtherProv != 0)
-                    {
-                        Global.pat.insuplc_admdvs = Global.pat.card.SearchAdmCode;
-                        //MessageBox.Show(Global.pat.card.SearchAdmCode + Global.pat.card.SearchAdmName);
-                    }
+                   
                     //if(Global.pat.insuplc_admdvs == "340001")
                     //{
                     //    Global.pat.insuplc_admdvs = "349900";
@@ -582,13 +584,31 @@ namespace PTMedicalInsurance.Business
             // 日期处理
             JObject joBaseInfo = JObject.Parse(JsonHelper.getDestValue(joOutput, "baseinfo"));
             JArray joInsuInfo = JArray.Parse(JsonHelper.getDestValue(joOutput, "insuinfo"));
+            JArray joIDInfo = JArray.Parse(JsonHelper.getDestValue(joOutput, "idetinfo"));
             Utils.convertTimestamp(joBaseInfo, "brdy");
             if (joInsuInfo.Count > 0)
             {
-                Utils.convertTimestamp((JObject)joInsuInfo[0], "psn_insu_date");
+                for (int m = 0; m < joInsuInfo.Count; m++)
+                {
+                    Utils.convertTimestamp((JObject)joInsuInfo[m], "psn_insu_date");
+                }
             }
+            JObject OutIDInfo= new JObject();
+            if (joIDInfo.Count > 0)
+            {  for(int i = 0;i< joIDInfo.Count; i++)
+                {
+                    Utils.convertTimestamp((JObject)joIDInfo[i], "begntime");
+                    Utils.convertTimestamp((JObject)joIDInfo[i], "endtime");
+
+                    OutIDInfo= rIS.getSpecDictionaryValue(Global.inf.interfaceDr.ToString(), "psn_idet_type", joIDInfo[i]["psn_idet_type"].ToString());
+                    joIDInfo[i]["psn_idet_type"] = OutIDInfo["result"]["data"][1]["name"].ToString();
+
+                }
+            }
+
             joOutput["baseinfo"] = joBaseInfo;
             joOutput["insuinfo"] = joInsuInfo;
+            joOutput["idetinfo"] = joIDInfo;
             joOutparam["output"] = joOutput;
 
             //编码转换
@@ -1968,7 +1988,7 @@ namespace PTMedicalInsurance.Business
             JObject joReg = JObject.Parse(outParam);
             Global.pat.medType = JsonHelper.getDestValue(joReg, "data.MedicalType");
             Global.pat.insuType = JsonHelper.getDestValue(joReg, "data.InsuType");
-            Global.pat.mdtrtcertType = JsonHelper.getDestValue(joReg, "data.CertificateType");
+            //Global.pat.mdtrtcertType = JsonHelper.getDestValue(joReg, "data.CertificateType");
             //Global.pat.mdtrtcertNO = JsonHelper.getDestValue(joReg, "data.CertificateNO");//结算取读卡的值,不取登记信息
             Global.pat.certType = JsonHelper.getDestValue(joReg, "data.CertificateType");
             Global.pat.certNO = JsonHelper.getDestValue(joReg, "data.CertificateNO");

+ 17 - 0
Business/InsuServices.cs

@@ -163,6 +163,23 @@ namespace PTMedicalInsurance.Business
             InvokeHelper invoker = new InvokeHelper();
             return invoker.invokeInsuService(joSettlQuery.ToString(), "查询指定字典信息");
         }
+        /// 获取指定字典编码值信息
+        public JObject getSpecDictionaryValue(string interfaceDr, string dicType,string code)
+        {
+            string sqlStr = " select '' Code,'' Name,'' PinyinSearchCode union all ";
+            sqlStr = sqlStr + " SELECT B.Code,B.Descripts AS Name,'' PinyinSearchCode FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr " +
+                "WHERE A.Interface_Dr= " + interfaceDr + " And A.InsuCode = '" + dicType + "' and B.Code='"+ code+"'";
+
+            JObject joSqlstr = new JObject();
+            joSqlstr.Add("sqlStr", sqlStr);
+            JArray jaParam = new JArray();
+            jaParam.Add(joSqlstr);
+            JObject joSettlQuery = new JObject();
+            joSettlQuery.Add("params", jaParam);
+            joSettlQuery.Add("code", "09010063");
+            InvokeHelper invoker = new InvokeHelper();
+            return invoker.invokeInsuService(joSettlQuery.ToString(), "查询指定字典信息");
+        }
 
         /// <summary>
         /// 保存登记信息到云医保平台

+ 2 - 1
Business/IrisServices.cs

@@ -54,7 +54,7 @@ namespace PTMedicalInsurance.Business
             try
             {
                 dynamic joTmp = new JObject();
-                joTmp.admID = Global.pat.adm_Dr;
+                joTmp.admID = Global.pat.adm_Dr;                
                 JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110021", joTmp).ToString(), "获取HIS患者基本信息");
                 if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
                 {
@@ -63,6 +63,7 @@ namespace PTMedicalInsurance.Business
                 }
                 else
                 {
+                    Global.pat.certNO = joRtn["result"]["credNo"].ToString();//用于读卡前调用获取身份证号,节省收费员输入身份证号
                     errMsg = joRtn.ToString();
                     return 0;
                 }

+ 2 - 5
Common/ECTokenReader.cs

@@ -8,6 +8,7 @@ using System.Runtime.InteropServices;
 using System.Security.Policy;
 using System.Text;
 using System.Threading.Tasks;
+using System.Windows.Forms;
 
 namespace AnHuiMI.Common
 {
@@ -103,16 +104,12 @@ namespace AnHuiMI.Common
             IntPtr pRtn = NationEcTrans(sbURL, sbInData, sbOutData);
             sOutPar = sbOutData.ToString();
             string rtn = Marshal.PtrToStringAnsi(pRtn);
-
-
-
-
-
             if (JsonHelper.getDestValue(JObject.Parse(sOutPar), "code") != "0")
             {
                 Global.writeLog("调用认证接口"+transType+"失败:" + sOutPar);
                 sOutPar = "";
             }
+            Global.writeLog("调用认证接口" + transType + "成功:" + sOutPar);
         }
     }
 

+ 1 - 1
Common/Utils.cs

@@ -41,7 +41,7 @@ namespace AnHuiMI.Common
         }
 
         public static void convertTimestamp(JObject joObject,string key)
-        {
+        { 
             if (joObject.ContainsKey(key))
             {
                 Global.writeLog(string.Format("当前对象[{0}]的类型为:{1}", key, joObject.GetValue(key).Type.GetType()));

+ 32 - 2
Forms/ChooseCard.cs

@@ -13,6 +13,7 @@ using PTMedicalInsurance.Helper;
 using Newtonsoft.Json.Linq;
 using PTMedicalInsurance.Forms;
 using PTMedicalInsurance.Variables;
+using PTMedicalInsurance.Business;
 
 namespace PTMedicalInsurance.Forms
 {
@@ -25,6 +26,7 @@ namespace PTMedicalInsurance.Forms
 
         //设置业务实例
         InvokeHelper invoker = new InvokeHelper();
+        private HisIrisServices hIS = new HisIrisServices();
 
         public ChooseCard()
         {
@@ -51,6 +53,8 @@ namespace PTMedicalInsurance.Forms
                 if (tbID.Text == "")
                 {
                     ID = "";
+                    MessageBox.Show("身份证结算,需要输入身份证号");
+                    return;
                 }
                 else
                 {
@@ -79,7 +83,18 @@ namespace PTMedicalInsurance.Forms
             rbgCardType.SelectedIndex = 2;      //身份证
             cbBusinessType.SelectedIndex = 0;   //社保卡
 
-            rbgOtherProv.SelectedIndex = 0;     //本地           
+            rbgOtherProv.SelectedIndex = 0;     //本地
+
+            if (Global.inf.interfaceDr == 12)//安徽省基线版-瑶海
+            {
+                rbgOtherProv.SelectedIndex = 1;
+            }
+            
+            if (Global.inf.interfaceDr == 15)//安徽省基线版-蜀山老院
+            {
+                rbgOtherProv.SelectedIndex = 1;
+            }            
+
         }
 
         private void rbgCardType_ValueChanged(object sender, int index, string text)
@@ -92,7 +107,12 @@ namespace PTMedicalInsurance.Forms
             {
                 cbBusinessType.Enabled = false;
             }
-
+            if (rbgCardType.SelectedIndex == 1)
+            {
+                hIS.GetHisPatBaseInfo(out string errMsg);
+                tbID.Text = Global.pat.certNO;
+            }
+                
             if (rbgCardType.SelectedIndex == 2)
             {
                 cbCardType.SelectedIndex = 0;
@@ -164,6 +184,16 @@ namespace PTMedicalInsurance.Forms
             }
         }
 
+        private void tbID_TextChanged(object sender, EventArgs e)
+        {
+
+        }
+
+        private void rbgOtherProv_ValueChanged(object sender, int index, string text)
+        {
+
+        }
+
         private void cbCBD_DoEnter(object sender, EventArgs e)
         {
             SearchAdmdvs();

+ 18 - 16
Forms/ChooseCard.designer.cs

@@ -64,11 +64,11 @@
             "社保卡"});
             this.rbgCardType.ItemSize = new System.Drawing.Size(180, 35);
             this.rbgCardType.Location = new System.Drawing.Point(0, 0);
-            this.rbgCardType.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+            this.rbgCardType.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
             this.rbgCardType.MinimumSize = new System.Drawing.Size(1, 1);
             this.rbgCardType.Name = "rbgCardType";
-            this.rbgCardType.Padding = new System.Windows.Forms.Padding(0, 40, 0, 0);
-            this.rbgCardType.Size = new System.Drawing.Size(707, 81);
+            this.rbgCardType.Padding = new System.Windows.Forms.Padding(0, 32, 0, 0);
+            this.rbgCardType.Size = new System.Drawing.Size(530, 65);
             this.rbgCardType.TabIndex = 0;
             this.rbgCardType.Text = "就诊凭证类型";
             this.rbgCardType.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
@@ -82,11 +82,11 @@
             this.uiPanel1.Controls.Add(this.btOk);
             this.uiPanel1.Dock = System.Windows.Forms.DockStyle.Bottom;
             this.uiPanel1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.uiPanel1.Location = new System.Drawing.Point(0, 586);
-            this.uiPanel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+            this.uiPanel1.Location = new System.Drawing.Point(0, 469);
+            this.uiPanel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
             this.uiPanel1.MinimumSize = new System.Drawing.Size(1, 1);
             this.uiPanel1.Name = "uiPanel1";
-            this.uiPanel1.Size = new System.Drawing.Size(707, 88);
+            this.uiPanel1.Size = new System.Drawing.Size(530, 70);
             this.uiPanel1.TabIndex = 1;
             this.uiPanel1.Text = null;
             this.uiPanel1.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
@@ -155,11 +155,11 @@
             this.uiPanel2.Controls.Add(this.uiLabel1);
             this.uiPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
             this.uiPanel2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.uiPanel2.Location = new System.Drawing.Point(0, 81);
-            this.uiPanel2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+            this.uiPanel2.Location = new System.Drawing.Point(0, 65);
+            this.uiPanel2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
             this.uiPanel2.MinimumSize = new System.Drawing.Size(1, 1);
             this.uiPanel2.Name = "uiPanel2";
-            this.uiPanel2.Size = new System.Drawing.Size(707, 505);
+            this.uiPanel2.Size = new System.Drawing.Size(530, 404);
             this.uiPanel2.TabIndex = 2;
             this.uiPanel2.Text = null;
             this.uiPanel2.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
@@ -375,6 +375,7 @@
             this.tbID.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
             this.tbID.Watermark = "手工输入";
             this.tbID.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
+            this.tbID.TextChanged += new System.EventHandler(this.tbID_TextChanged);
             // 
             // uiLabel1
             // 
@@ -396,27 +397,28 @@
             "本地",
             "异地(参保地必选)"});
             this.rbgOtherProv.ItemSize = new System.Drawing.Size(180, 35);
-            this.rbgOtherProv.Location = new System.Drawing.Point(0, 81);
-            this.rbgOtherProv.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+            this.rbgOtherProv.Location = new System.Drawing.Point(0, 65);
+            this.rbgOtherProv.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
             this.rbgOtherProv.MinimumSize = new System.Drawing.Size(1, 1);
             this.rbgOtherProv.Name = "rbgOtherProv";
-            this.rbgOtherProv.Padding = new System.Windows.Forms.Padding(0, 40, 0, 0);
-            this.rbgOtherProv.Size = new System.Drawing.Size(707, 79);
+            this.rbgOtherProv.Padding = new System.Windows.Forms.Padding(0, 32, 0, 0);
+            this.rbgOtherProv.Size = new System.Drawing.Size(530, 63);
             this.rbgOtherProv.TabIndex = 3;
             this.rbgOtherProv.Text = null;
             this.rbgOtherProv.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
             this.rbgOtherProv.ZoomScaleRect = new System.Drawing.Rectangle(0, 0, 0, 0);
+            this.rbgOtherProv.ValueChanged += new Sunny.UI.UIRadioButtonGroup.OnValueChanged(this.rbgOtherProv_ValueChanged);
             // 
             // ChooseCard
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(707, 674);
+            this.ClientSize = new System.Drawing.Size(530, 539);
             this.Controls.Add(this.rbgOtherProv);
             this.Controls.Add(this.uiPanel2);
             this.Controls.Add(this.uiPanel1);
             this.Controls.Add(this.rbgCardType);
-            this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.Margin = new System.Windows.Forms.Padding(2);
             this.Name = "ChooseCard";
             this.Text = "医保读卡";
             this.Load += new System.EventHandler(this.ChooseCard_Load);

+ 5 - 3
Forms/SettlementChecklist.cs

@@ -284,6 +284,7 @@ namespace PTMedicalInsurance.Forms
         [STAThread]
         private void print()
         {
+            
             /*
              string chineseSimpleFrl = Global.curEvt.path + @"\Chinese (Simplified).frl";
             // FastReport.Utils.Res.LoadLocale(chineseSimpleFrl);
@@ -327,7 +328,6 @@ namespace PTMedicalInsurance.Forms
                 string SettlementID = dt.Rows[i]["SettlementID"].ToString();
                 string ValidFlag = dt.Rows[i]["ValidFlag"].ToString();
                 string MdtrtID = dt.Rows[i]["MdtrtID"].ToString();
-
                 JObject joRtn = GetFastReportParams("", AdmID, MdtrtID, SettlementID, ValidFlag);
                 if (JsonHelper.parseIrisRtnValue(joRtn, out string errMsg) != 0)
                 {
@@ -391,7 +391,7 @@ namespace PTMedicalInsurance.Forms
         {
 
             try
-            {
+            { 
                 //Thread thread_print = new Thread(new ThreadStart(print));
                 //thread_print.SetApartmentState(ApartmentState.STA); //重点
                 //thread_print.Start();
@@ -554,7 +554,8 @@ namespace PTMedicalInsurance.Forms
                 JArray japatinsuinfo = JArray.Parse(JsonHelper.getDestValue(joRtnSettle, "result.data.patinsuinfo"));
 
                 //转换金额大写
-               string Sumamt = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].Sumamt").ToString());
+                string Sumamt = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].Sumamt").ToString());
+                string HealthInsurancePay = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].HealthInsurancePay").ToString());
                 string ActualPayDeductible = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].ActualPayDeductible").ToString());
                 string PersonCashPay = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].PersonCashPay").ToString());
                 string AccountPaySumamt = FastReportFunction.MoneyToUpper(JsonHelper.getDestValue(joRtnSettle, "result.data.settlement[0].AccountPaySumamt").ToString());
@@ -574,6 +575,7 @@ namespace PTMedicalInsurance.Forms
 
                 JObject jaAmountChiness = new JObject();
                 jaAmountChiness.Add("Sumamt", Sumamt);
+                jaAmountChiness.Add("HealthInsurancePay", HealthInsurancePay);
                 jaAmountChiness.Add("ActualPayDeductible", ActualPayDeductible);
                 jaAmountChiness.Add("PersonCashPay", PersonCashPay);
                 jaAmountChiness.Add("AccountPaySumamt", AccountPaySumamt);

+ 1 - 1
Helper/InvokeHelper.cs

@@ -113,7 +113,7 @@ namespace PTMedicalInsurance.Helper
             {
                 Global.inf.uploadURL = "http://10.88.29.31:80/fsi/api/fileupload/upload";
                 Global.inf.downURL = "http://10.88.29.31:80/fsi/api/fileupload/download";
-                Global.inf.ecURL = "http://10.67.0.49:8080/localcfc/api/hsecfc/localQrCodeQuery";
+                Global.inf.ecURL = "http://10.66.159.55:8080/localcfc/api/hsecfc/localQrCodeQuery";
             }
             if (Global.inf.interfaceDr == 16)//市
             {

+ 15 - 10
Helper/JsonHelper.cs

@@ -300,20 +300,17 @@ namespace PTMedicalInsurance.Helper
             Jo.infno = infno;
             Global.curEvt.msgid = Global.inf.hospitalNO + DateTime.Now.ToString("yyyyMMddHHmmssffff");
             Jo.msgid = Global.curEvt.msgid;
+                                
 
+            // 参保地
+            Jo.insuplc_admdvs = Global.pat.insuplc_admdvs;
             if (Global.pat.insuplc_admdvs == "")
             {
                 Global.pat.insuplc_admdvs = Global.inf.areaCode;
             }
-            
-            Global.pat.insuplc_admdvs = Global.inf.areaCode;
-            Global.pat.mdtrtarea_admvs = Global.inf.areaCode;
-
-            // 参保地
-            Jo.insuplc_admdvs = Global.pat.insuplc_admdvs;
             // 就医地
-            Jo.mdtrtarea_admvs = Global.pat.mdtrtarea_admvs;
-          
+            Jo.mdtrtarea_admvs = Global.inf.areaCode;
+
 
             //if(Global.pat.insuplc_admdvs == "340001"&& infno=="1101"&& Global.inf.interfaceDr==12)
             //{
@@ -326,14 +323,22 @@ namespace PTMedicalInsurance.Helper
             Jo.signtype = "SM2"; ;
             Jo.infver = "v1.0";
             Jo.opter_type = Global.user.type; ;
-            if(Global.inf.interfaceDr == 12)//安徽省基线版
+            if(Global.inf.interfaceDr == 12)//安徽省基线版-瑶海
             {
                 Jo.opter = "A05CA9455BE8BF66";
             }
-            if (Global.inf.interfaceDr == 16)//合肥市基线版
+            if (Global.inf.interfaceDr == 16)//合肥市基线版-瑶海
             {
                 Jo.opter = "7571C4995A2F4290";
             }
+            if (Global.inf.interfaceDr == 15)//安徽省基线版-蜀山老院
+            {
+                Jo.opter = "48664E4455CC0F8F";
+            }
+            if (Global.inf.interfaceDr == 17)//合肥市基线版-蜀山老院
+            {
+                Jo.opter = "4D91C975CF902EB2";
+            }
 
             //Jo.opter = Global.user.ID; ;
             Jo.opter_name = Global.user.name; ;

+ 1 - 1
InsuBusiness.cs

@@ -104,7 +104,7 @@ namespace PTMedicalInsurance
                 {
                     if (mIS.isSigned(ref Global.curEvt.signno) != true)
                     {
-                        if (businessType != "BasicData")//如果是打开数据对照界面不调用初始化 
+                        if (businessType != "BasicData" && businessType != "Print")//如果是打开数据对照界面不调用初始化 
                         {
                             //签到
                             if (cBus.signIn(out joRtn) != 0)

BIN
bin/Debug.zip