Browse Source

pref:原来未提交

zhanfei 1 week ago
parent
commit
c2222b8241

+ 13 - 3
Business/HisMainBusiness.cs

@@ -2657,8 +2657,18 @@ namespace PTMedicalInsurance.Business
             {
                 if (InProcessAnalysis(out errMsg) != 0)
                 {
-                    outParam = JsonHelper.setExceptionJson(-1, "InProcessAnalysis", errMsg).ToString();
-                    return -1;
+                    //outParam = JsonHelper.setExceptionJson(-1, "InProcessAnalysis", errMsg).ToString();
+                    //return -1;
+
+                    if (MessageBox.Show(errMsg + "!是否继续结算?", "事中分析提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
+                    {
+
+                    }
+                    else
+                    {
+                        outParam = JsonHelper.setExceptionJson(-1, "InProcessAnalysis", errMsg).ToString();
+                        return -1;
+                    }
                 }
             }
 
@@ -2881,7 +2891,7 @@ namespace PTMedicalInsurance.Business
                 //JObject jo9001Rtn = new JObject();
                 //cBus.signIn(out jo9001Rtn);
 
-                if (trig_scen == "5")
+                if (trig_scen == "4")
                 {
                     outparam = inparam;
                 }

+ 1 - 1
Business/MobilePay.cs

@@ -1242,7 +1242,7 @@ namespace PTMedicalInsurance.Business
             try
             {
                 string sqlStr = "SELECT * FROM BS_MedInsuSettlement WHERE Hospital_Dr=  " + Global.inf.hospitalDr;
-                sqlStr = sqlStr + " and AdmType = 3 and Adm_Dr= " + MPat.adm_Dr + " and SettlementID= '" + MPat.payOrdId + "'";
+                sqlStr = sqlStr + " and AdmType = 3 and Adm_Dr= " + MPat.adm_Dr + " and SettlementID= '" + MPat.settlID + "'";
                 JObject joSqlstr = new JObject();
                 joSqlstr.Add("sqlStr", sqlStr);
                 JObject joRtn = mIS.DynamicQuerySettlInfo(joSqlstr);

+ 24 - 4
InsuBusiness.cs

@@ -813,8 +813,19 @@ namespace PTMedicalInsurance
                             {
                                 if (hBus.PreAnalysis("2", "", out errMsg) != 0)
                                 {
-                                    rtnResult = JsonHelper.setExceptionJson(-1, "事前分析", errMsg).ToString();
-                                    return rtnResult;
+                                    //rtnResult = JsonHelper.setExceptionJson(-1, "事前分析", errMsg).ToString();
+                                    //return rtnResult;
+
+
+                                    if (MessageBox.Show(errMsg + "!是否继续结算?", "事前分析提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
+                                    {
+
+                                    }
+                                    else 
+                                    {
+                                        rtnResult = JsonHelper.setExceptionJson(-1, "事前分析", errMsg).ToString();
+                                        return rtnResult;
+                                    }
                                 }
                             }
 
@@ -838,8 +849,17 @@ namespace PTMedicalInsurance
 
                                 if (hBus.InProcessAnalysis( out errMsg) != 0)
                                 {
-                                    rtnResult = JsonHelper.setExceptionJson(-1, "【3102】医保明细审核事中分析服务调用失败:", errMsg).ToString();
-                                    return rtnResult;
+                                    //rtnResult = JsonHelper.setExceptionJson(-1, "【3102】医保明细审核事中分析服务调用失败:", errMsg).ToString();
+                                    //return rtnResult;
+                                    if (MessageBox.Show(errMsg + "!是否继续结算?", "事中分析提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
+                                    {
+
+                                    }
+                                    else
+                                    {
+                                        rtnResult = JsonHelper.setExceptionJson(-1, "事中分析", errMsg).ToString();
+                                        return rtnResult;
+                                    }
                                 }
                             }
                             #endregion

+ 36 - 0
Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("KunMingMI")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("KunMingMI")]
+[assembly: AssemblyCopyright("Copyright ©  2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型
+//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("e9b4d618-13f0-4864-9c4c-28b8a6532653")]
+
+// 程序集的版本信息由下列四个值组成: 
+//
+//      主版本
+//      次版本
+//      生成号
+//      修订号
+//
+// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
+//通过使用 "*",如下所示:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.6")]

+ 63 - 0
Properties/Resources.Designer.cs

@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.42000
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace PTMedicalInsurance.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   一个强类型的资源类,用于查找本地化的字符串等。
+    /// </summary>
+    // 此类是由 StronglyTypedResourceBuilder
+    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // (以 /str 作为命令选项),或重新生成 VS 项目。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   返回此类使用的缓存的 ResourceManager 实例。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PTMedicalInsurance.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   重写当前线程的 CurrentUICulture 属性,对
+        ///   使用此强类型资源类的所有资源查找执行重写。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+    }
+}

+ 101 - 0
Properties/Resources.resx

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+	<!-- 
+		Microsoft ResX Schema
+
+		Version 1.3
+
+		The primary goals of this format is to allow a simple XML format 
+		that is mostly human readable. The generation and parsing of the 
+		various data types are done through the TypeConverter classes 
+		associated with the data types.
+
+		Example:
+
+		... ado.net/XML headers & schema ...
+		<resheader name="resmimetype">text/microsoft-resx</resheader>
+		<resheader name="version">1.3</resheader>
+		<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+		<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+		<data name="Name1">this is my long string</data>
+		<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+		<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+			[base64 mime encoded serialized .NET Framework object]
+		</data>
+		<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+			[base64 mime encoded string representing a byte array form of the .NET Framework object]
+		</data>
+
+		There are any number of "resheader" rows that contain simple 
+		name/value pairs.
+
+		Each data row contains a name, and value. The row also contains a 
+		type or mimetype. Type corresponds to a .NET class that support 
+		text/value conversion through the TypeConverter architecture. 
+		Classes that don't support this are serialized and stored with the 
+		mimetype set.
+
+		The mimetype is used for serialized objects, and tells the 
+		ResXResourceReader how to depersist the object. This is currently not 
+		extensible. For a given mimetype the value must be set accordingly:
+
+		Note - application/x-microsoft.net.object.binary.base64 is the format 
+		that the ResXResourceWriter will generate, however the reader can 
+		read any of the formats listed below.
+
+		mimetype: application/x-microsoft.net.object.binary.base64
+		value   : The object must be serialized with 
+			: System.Serialization.Formatters.Binary.BinaryFormatter
+			: and then encoded with base64 encoding.
+
+		mimetype: application/x-microsoft.net.object.soap.base64
+		value   : The object must be serialized with 
+			: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+			: and then encoded with base64 encoding.
+
+		mimetype: application/x-microsoft.net.object.bytearray.base64
+		value   : The object must be serialized into a byte array 
+			: using a System.ComponentModel.TypeConverter
+			: and then encoded with base64 encoding.
+	-->
+	
+	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+		<xsd:element name="root" msdata:IsDataSet="true">
+			<xsd:complexType>
+				<xsd:choice maxOccurs="unbounded">
+					<xsd:element name="data">
+						<xsd:complexType>
+							<xsd:sequence>
+								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+							</xsd:sequence>
+							<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+							<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+							<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+						</xsd:complexType>
+					</xsd:element>
+					<xsd:element name="resheader">
+						<xsd:complexType>
+							<xsd:sequence>
+								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+							</xsd:sequence>
+							<xsd:attribute name="name" type="xsd:string" use="required" />
+						</xsd:complexType>
+					</xsd:element>
+				</xsd:choice>
+			</xsd:complexType>
+		</xsd:element>
+	</xsd:schema>
+	<resheader name="resmimetype">
+		<value>text/microsoft-resx</value>
+	</resheader>
+	<resheader name="version">
+		<value>1.3</value>
+	</resheader>
+	<resheader name="reader">
+		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+	</resheader>
+	<resheader name="writer">
+		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+	</resheader>
+</root>

+ 26 - 0
Properties/Settings.Designer.cs

@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.42000
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace PTMedicalInsurance.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+    }
+}

+ 6 - 0
Properties/Settings.settings

@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+</SettingsFile>

+ 39 - 145
Readme_重庆基线版.md

@@ -19,10 +19,15 @@
 
 ## 业务分支说明
 
-### 名称:南昌医保
+### 名称:重庆基线版医保
 
-- **接口开发**:创智
-- **上线范围**:结算(社保、身份证、电子医保卡)、进销存、事前事中、Lis项目、清单上传
+- **接口开发**:东软
+- **上线范围**:
+	-结算(社保、身份证、电子医保卡)、
+	-进销存
+	-事前事中
+	-Lis项目
+	-清单上传
 
 ### 版本特性
 
@@ -35,157 +40,46 @@
 - **时间**:2025年10月21日
 - **改进点**:
   - **Bug修复**:单条目录维护界面初始化时,增加grdSetterBase.SetCombox方法的异常展示。当查询字典返回结果为空时,会提示找不到绑定的字段。
-  
-#### 版本 1.0.0.4
-- **时间**:2025年10月28日
+#### 版本 1.0.0.4 
+- **时间**:2025年11月12日
 - **改进点**:
-  - **Bug修复**:
-    - **问题描述**:在“事前事中”分析流程中,当存在未进行对照的项目时,系统未能将这些信息在前端界面展示给用户,仅记录在 IRIS 日志中,导致用户无法及时获知问题。
-    - **解决方案**:修复了该问题,确保所有未对照的项目现在能够清晰地在前端界面呈现,提升用户体验和问题排查效率。
-    - **关联的技术变更(方法签名调整)**:
-        - 为支撑上述问题的修复并增强方法的健壮性,对 `PreAndInProcessAnalysis` 类中的多个核心方法进行了重构,统一将返回类型从 `JObject` 改为 `int`,并引入 `out` 参数来返回数据和错误信息。
-        - **变更模式**:
-            - **旧模式**:`public JObject Get3101Inpar(string trig_scen, Patients p)`
-            - **新模式**:`public int Get3101Inpar(string trig_scen, Patients p, out JObject joData, out string errMsg)`
-        - **涉及方法**:
-            - `PreAndInProcessAnalysis.Get3101Inpar`
-            - `PreAndInProcessAnalysis.GetPatient_dtos`
-            - `PreAndInProcessAnalysis.GetFsi_encounter_dtos`
-            - `PreAndInProcessAnalysis.GetFsi__order_dtos`
-        - **说明**:此变更模式设计为可扩展的,未来可应用于其他相关方法。调用方需根据返回的 `int` 值(通常0表示成功,非0表示失败)来判断执行结果,并通过 `out` 参数获取实际数据或具体的错误信息。
-#### 版本 1.0.0.5 
-- **时间**:2025年10月30日
+  - **增加特性**:应医保中心反馈,医生站事前提醒trig_scen不按照文档提供的代码值传5,改为传4.
+#### 版本 1.0.0.5
+- **时间**:2025年11月14日
 - **改进点**:
-  - **Bug修复**:
-      -*PreAndInProcessAnalysis.GetFsi_encounter_dtos*:代码复制,返回值永远为-1.已修复。
- 
+  - **增加特性**:应医保中心反馈,医生站事前提醒trig_scen不按照文档提供的代码值传5,改为传4.
+  - **PTMedicalInsurance.Business.HisMainBusiness.PreAnalysis**:
 
-#### 版本 1.0.0.6
-- **时间**:2025年10月31日
-- **改进点**:
-  - **Bug修复**:修改事前调用时间点
-      *修改前*:门诊事前调用位置位于PTMedicalInsurance.Business.ReadPatientProcess.Process
-      *修改后*:门诊事前调用位置位于PTMedicalInsurance.Business.OPFeeUploadProcess.Process
+    -*修改前*:
+         
+        ```
+            if (trig_scen == "5")
+                {
+                    outparam = inparam;
+                }
 
 
-#### 版本 1.0.0.7
-- **时间**:2025年10月31日
-- **改进点**:
-  - **iris服务优化**:
-      *09010077*:ListType,ChargeItemType,ChargeItemLevel为空时的提示更具体
-  - **功能优化**:med_type为空判断并赋值。东莞HIS会传MED_type,所以不必取全局。其他地方HIS不传,必须取全局  
-  - **PTMedicalInsurance.Business.GetFsi_encounter_dtos**:
-      *修改前*:
-      ```
-      string med_type = JsonHelper.getDestValue(jofsi_encounter_dtos, "med_type");
-      
-      *修改后*:
+      -*修改后*:
       ```
-      string med_type = JsonHelper.getDestValue(jofsi_encounter_dtos, "med_type");
-        if (string.IsNullOrEmpty(med_type))
-        {
-            med_type = Global.pat.medType;
-        
-        }
+                if (trig_scen == "4")
+                {
+                    outparam = inparam;
+                }
+#### 版本 1.0.0.6
+- **时间**:2025年12月5日
+- **改进点**:
+  - **增加特性**:收费处事前事中分析报错后对收费员提示,同时将是否继续结算的权限交给收费员。
+  - **PTMedicalInsurance.Business.HisMainBusiness.preSettlement**:
+  - **PTMedicalInsurance.InsuBusiness.Settlement.M5**:
 
-#### 版本 1.0.0.8
-- **时间**:2025年11月03日
-- **改进点**:     
-    - **功能优化**:对账功能,1.优化SQL语句排版,2.统计查询将医保钱包金额并入新增字段exp__content,3201和3202上传该字段
-    - **PTMedicalInsurance.Forms.Clearing.Btn_Query_Click**:
-      
-       -*修改前*:
-        ```
-        无
-        ```
       -*修改后*:
-        ```
-        // 钱包支付金额
-        "SUM(BillType * WalletPay) AS WalletPay ";
-        ```
-      -*单条对账新增*:
       ```
-        JObject joExp = new JObject();
-        joExp.Add("wlt_fee_sumamt", dt.Rows[i]["WalletPay"].ToString());
-        joCheck.exp_content = joExp;                    //医保钱包支付金额
-      ```
-     -*单条对明细账新增*:
-            ```
-       JObject joExp = new JObject();
-       joExp.Add("wlt_fee_sumamt", dt.Rows[i]["WalletPay"].ToString());
-       joCheck.exp_content = joExp;                    //医保钱包支付金额
-      ```
-    - **功能优化**:结算及结算展示,钱包金额根据分项基金计算
-    - **PTMedicalInsurance.Forms.SettlementForm.SettlementForm**:   修改wlt_pay取值逻辑
-        ```
-        JArray jaSetlDetail = JArray.FromObject(jo["setldetail"]);
-        string wlt_balance = "0.00";
-        string wlt_pay = "0.00";
-        foreach (JObject joDetail in jaSetlDetail)
-        { 
-            if (joDetail["fund_pay_type"].ToString() == "9999981")
+        if (MessageBox.Show(errMsg + "!是否继续结算?", "事中分析提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
             {
-                wlt_pay = joDetail["fund_payamt"].ToString();
+
             }
-        }
-        tbMedInsWalletBalance.Text = wlt_balance;
-        tbMedInsWalletPay.Text = wlt_pay;
-        ```
-    - **PTMedicalInsurance.Business.MIIrisServices.saveSettlement**:   修改wlt_pay后台保存逻辑
-        ```
-        //新增钱包存储
-        JArray jaSetlDetail = JArray.FromObject(jo["setldetail"]);
-        string wlt_balance = "0.00";
-        string wlt_pay = "0.00";
-        foreach (JObject joDetail in jaSetlDetail)
-        {
-            if (joDetail["fund_pay_type"].ToString() == "9999981")
+            else
             {
-                wlt_pay = joDetail["fund_payamt"].ToString();
-            }
-        }
-        joSetlinfo.Add("medIns_wallet_balance", wlt_balance); //医保钱包余额
-        joSetlinfo.Add("medIns_wallet_pay", wlt_pay); //医保钱包支付金额
-      ```  
-
-#### 版本 1.0.0.9
-- **时间**:2025年11月11日
-- **改进点**:     
-    - **功能优化**:移动支付,获取患者信息后,增加对患者信息的筛选。
-    - **PTMedicalInsurance.Business.MobilePay.getMPInsuInfo**:
-      - 具体逻辑:
-      - 1.参保状态不为1的过滤;
-      - 2.险种类型不为310或者390的过滤 
-      - 3.上述逻辑过滤后数据条数为0或大于1的报错
-
-#### 版本 1.0.0.10
-- **时间**:2025年11月12日
-- **改进点**:     
-    - **Bug修复**:结算取节点output.setldetail。
-    - **PTMedicalInsurance.Business.MIIrisServices.saveSettlement**:
-      -*修改前*:
-        ```
-        //新增钱包存储
-                JArray jaSetlDetail = JArray.FromObject(JObject.Parse(JsonHelper.getDestValue(joSettlement, "output.setldetail")));
-        ```
-      -*修改后*:
-        ```
-        //新增钱包存储
-                JArray jaSetlDetail = JArray.FromObject(JsonHelper.getDestValue(joSettlement, "output.setldetail"));
-       ```
-
-#### 版本 1.0.0.11
-- **时间**:2025年11月12日
-- **改进点**:     
-    - **Bug修复**:结算取节点output.setldetail。
-    - **PTMedicalInsurance.Business.MIIrisServices.saveSettlement**:
-      -*修改前*:
-        ```
-        //新增钱包存储
-                 JArray jaSetlDetail = JArray.FromObject(JsonHelper.getDestValue(joSettlement, "output.setldetail"));
-        ```
-      -*修改后*:
-        ```
-        //新增钱包存储
-                JArray jaSetlDetail = JArray.Parse(JsonHelper.getDestValue(joSettlement, "output.setldetail"));
-       ```
+                outParam = JsonHelper.setExceptionJson(-1, "InProcessAnalysis", errMsg).ToString();
+                return -1;
+            }