123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181 |
- /******************************************************************************
- * 文件名称: CardReader.cs
- * 文件说明: 读卡的封装,包括社保卡,身份证,电子凭证等等
- * 当前版本: V1.0
- * 创建日期: 2022-06-25
- *
- * * 2020-06-20: 增加 IrisServices 类(基类)
- * ***** 2020-06-25: 增加 CardReader 方法,获取URL地址,USER信息,地方版SSCard.dll使用
- * ***** 2020-06-25: 增加 CardReader 方法重载,国家版电子凭证使用
- *
- *
- * * 2020-06-20: 增加 HisIrisServices 类(子类)
- * ***** 2020-06-25: 增加 CardReader 方法,获取URL地址,USER信息,地方版SSCard.dll使用
- * ***** 2020-06-25: 增加 CardReader 方法重载,国家版电子凭证使用
- *
- *
- * * 2020-06-20: 增加 MIIrisServices 类(子类)
- * ***** 2020-06-25: 增加 CardReader 方法,获取URL地址,USER信息,地方版SSCard.dll使用
- * ***** 2020-06-25: 增加 CardReader 方法重载,国家版电子凭证使用
- ******************************************************************************/
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using PTMedicalInsurance.Variables;
- using PTMedicalInsurance.Helper;
- using System.Windows.Forms;
- namespace PTMedicalInsurance.Business
- {
-
- class IrisServices
- {
- }
- class HisIrisServices
- {
- private InvokeHelper invoker = new InvokeHelper();
- /// <summary>
- /// 获取诊断信息
- /// </summary>
- /// <param name="jaSession"></param>
- /// <param name="diagnoses"></param>
- /// <returns></returns>
- public int getPatDiagnoses(Patients pat, out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- JObject joTmp = new JObject();
- joTmp.Add("admID", pat.adm_Dr);
- joTmp.Add("psn_no", pat.psn_no);
- //JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110001", joTmp).ToString(), "获取诊断信息");
- JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110014", joTmp).ToString(), "获取诊断信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = "获取诊断信息失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "getPatDiagnoses 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 返回登记信息给HIS
- /// </summary>
- /// <param name="joRegIn"></param>
- /// <param name="joRegOut"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int returnRegisterInfo(JObject joRegIn, JObject joRegOut, out string outParam)
- {
- string errMsg;
- try
- {
- JObject joIn = new JObject();
- joIn.Add("admID", Global.pat.adm_Dr);
- joIn.Add("mdtrt_id", JsonHelper.getDestValue(joRegOut, "output.prm_akc190"));
- joIn.Add("interfaceDr", Global.inf.interfaceDr);
- joIn.Add("billID", Global.pat.billID);
- joIn.Add("psn_type", Global.pat.psn_type);
- joIn.Add("psn_no", Global.pat.psn_no);
- joIn.Add("fixmedins_code", Global.inf.hospitalNO);
- joIn.Add("insutype", Global.pat.insuType);
- joIn.Add("med_type", Global.pat.medType);
- joIn.Add("insuplc_admdvs", Global.pat.insuplc_admdvs);
- joIn.Add("input",joRegIn);
- string serviceCode = "05110002", serviceName = "将登记信息返回给HIS";
- string inpar = JsonHelper.setIrisInpar(serviceCode, joIn).ToString();
- JObject joRtn = invoker.invokeHISService(inpar,serviceName);
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = "中心登记成功但云HIS平台保存失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- outParam = "返回给HIS成功";
- return 0;
- }
- }
- catch (Exception ex )
- {
- outParam = "HIS保存登记信息出现异常:!" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 获取His费用
- /// </summary>
- /// <param name="pat"></param>
- /// <param name="errMsg"></param>
- /// <returns></returns>
- public int getHisFee(Patients pat, out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- dynamic joIrisParam = new JObject();
- JArray jaIrisParams = new JArray();
- JObject joIrisTmp = new JObject();
- joIrisParam.code = "05110003";
- joIrisParam.session = Global.curEvt.jaSession;
- joIrisTmp.Add("admID", pat.adm_Dr);
- joIrisTmp.Add("billID", pat.billID);
- joIrisTmp.Add("recordID", pat.recordID);
- jaIrisParams.Add(joIrisTmp);
- joIrisParam.Add("params", JArray.FromObject(jaIrisParams));
- JObject joRtn = invoker.invokeHISService(joIrisParam.ToString(), "获取HIS费用");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "deleteFee 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 取消登记信息
- /// </summary>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int cancleRegister( out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- dynamic joTmp = new JObject();
- joTmp.Add("admID", Global.pat.adm_Dr);
- joTmp.Add("interfaceDr", Global.inf.interfaceDr);
- joTmp.Add("billID", Global.pat.billID);
- string serviceCode = "05110004";
- string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
- JObject joRtn = invoker.invokeHISService(inpar, "取消HIS登记信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = joRtn.ToString();
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "取消登记异常" + ":" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// HIS预结算
- /// </summary>
- /// <param name="joParam"></param>
- /// <param name="joSetlinfo"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int preSettlementInfo(JObject joParam, JObject joSetlinfo, out string outParam)
- {
- string errMsg;
- try
- {
- //费用转换
- JObject joInsuPayInfo = new JObject();
- joInsuPayInfo.Add("setl_id", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka103"));
- joInsuPayInfo.Add("medfee_sumamt", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka055"));
- joInsuPayInfo.Add("fulamt_ownpay_amt", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka056"));
- joInsuPayInfo.Add("overlmt_selfpay", "");
- joInsuPayInfo.Add("preselfpay_amt", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka057"));
- joInsuPayInfo.Add("inscp_scp_amt", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka111"));
- joInsuPayInfo.Add("act_pay_dedc", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka058"));
- joInsuPayInfo.Add("hifp_pay", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka248"));
- joInsuPayInfo.Add("pool_prop_selfpay", "");
- joInsuPayInfo.Add("cvlserv_pay", JsonHelper.getDestValue(joSetlinfo, "output.prm_yke030"));
- joInsuPayInfo.Add("hifes_pay", "");
- joInsuPayInfo.Add("hifmi_pay", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka062"));
- joInsuPayInfo.Add("hifob_pay", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka082"));
- joInsuPayInfo.Add("maf_pay", JsonHelper.getDestValue(joSetlinfo, "output.prm_ake181"));
- joInsuPayInfo.Add("oth_pay", JsonHelper.getDestValue(joSetlinfo, "output.prm_ake173"));
- joInsuPayInfo.Add("psn_part_amt", "");
- joInsuPayInfo.Add("balc", "");
- joInsuPayInfo.Add("acct_mulaid_pay", "");
- joInsuPayInfo.Add("medins_setl_id", Global.pat.billID);
- joInsuPayInfo.Add("clr_optins", JsonHelper.getDestValue(joSetlinfo, "output.prm_ykb037"));
- joInsuPayInfo.Add("clr_way", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka054"));
- joInsuPayInfo.Add("clr_type", JsonHelper.getDestValue(joSetlinfo, "output.prm_yka316"));
- joInsuPayInfo.Add("psn_name", Global.pat.name);
- dynamic joTmp = new JObject();
- joTmp = joParam.DeepClone();
-
- joTmp.insuPayInfo = joInsuPayInfo;
- joTmp.updateUserID = Global.user.ID;
- joTmp.middleSettleFlag = "";
- JObject joSumFee = new JObject();
- if (sumInsuRtnSettlInfo("43",joSetlinfo, out joSumFee, out errMsg) != 0)
- {
- outParam = "汇总结算结果失败,请联系管理员!" + errMsg;
- return -1;
- }
- joTmp.sumFeeObj = joSumFee;
- JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110020", joTmp).ToString(), "返回2303结算结果给HIS");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = "返回2303结算结果给HIS失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "返回2303结算结果给HIS出现异常:!" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 返回住院结算信息给HIS
- /// </summary>
- /// <param name="joParam"></param>
- /// <param name="joSetlinfo"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int returnInpatSettlementInfo(JObject joSettlRtn, JObject joSetlinfo, out string outParam)
- {
- string errMsg;
- try
- {
- dynamic joTmp = new JObject();
- joTmp.admID = Global.pat.adm_Dr;
- joTmp.recordID = Global.pat.recordID;
- joTmp.billID = Global.pat.billID;
- joTmp.insuPayInfo = joSetlinfo;
- joTmp.updateUserID = Global.user.ID;
- joTmp.middleSettleFlag = "";
- JObject joSumFee = new JObject();
- if (sumInsuRtnSettlInfo("41", joSettlRtn, out joSumFee, out errMsg) != 0)
- {
- outParam = "汇总结算结果失败,请联系管理员!" + errMsg;
- return -1;
- }
- joTmp.sumFeeObj = joSumFee;
- //JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110007", joTmp).ToString(), "返回2304结算结果给HIS");
- JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110017", joTmp).ToString(), "返回2304结算结果给HIS");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = "返回2304结算结果给HIS失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "返回2304结算结果给HIS出现异常:!" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 获取结算费用的封装
- /// </summary>
- /// <param name="jo"></param>
- /// <param name="path"></param>
- /// <returns></returns>
- private decimal getFee(JObject jo,string path)
- {
- try
- {
- string temp = JsonHelper.getDestValue(jo, path);
- if (temp == "")
- {
- return 0;
- }
- else
- {
- return decimal.Round(decimal.Parse(temp),2);
- }
- }
- catch (Exception ex)
- {
- Global.writeLog("getFee异常:" + ex.Message);
- return 0;
- }
- }
- /// <summary>
- /// 汇总医保返回的结算金额(按照HIS的原则汇总,后期HIS按照这个来进行勾稽关系判断)
- /// </summary>
- /// <param name="jo"></param>
- /// <returns></returns>
- public int sumInsuRtnSettlInfo(string funNO,JObject jo,out JObject joSumFee ,out string errMsg )
- {
- // 医疗费总额是患者在医药机构花费的所有诊疗、药品、耗材、服务设施等项目费用的总和 = 基金支付总额 + 个人负担总金额 + 其他(如医院负担金额);
- //3、基金支付总额 = 基本医保统筹基金支出(含职工基本医疗保险、居民基本医疗保险)+补充医疗保险基金支出 (含覆盖全体参保人的居民大病保险和大额医疗费用补助、覆盖部分参保人的企业职工大额医疗费用补助和公务员医疗补助等)+医疗救助基金支出 + 其他支出(如伤残人员医疗保障基金支出);
- //5、个人账户支出中包含账户共济支付金额
- joSumFee = new JObject();
- errMsg = "";
- decimal ybAmt, psnAcctAmt, hospAmt, psnCashAmt, medFee;//医保基金支付(含其他基金支付,比如民政补助,商业保险等),账户支付,医院承担,现金支付,实际总费用(HIS)
- decimal centerSumumt;//中心的总费用 贵州的计算公式貌似每个地区不一致
- //以下猜测
- //如果是单病种,如果患者的实际总费用小于单病种定额,同时患者又有超限额费用(比如晶体单价超了),那么现金支付=超限价金额,医保基金支付= 单病种定额 ,此时公式计算为中心返回的总费用= 单病种定额 + 现金支付
- // 不能用医院实际金额去计算,同时,医院承担金额还是按照单病种定额-医院实际金额返回
- //如果是单病种,如果患者的实际总费用大于单病种定额,同时患者又有超限额费用(比如晶体单价超了),那么现金支付=超限价金额,医保基金支付= 单病种定额 ,此时公式计算为中心返回的总费用= 患者实际总费用 + 现金支付
- // 此时用医院实际金额去计算,同时,医院承担金额还是按照单病种定额-医院实际金额返回(负的)
- try
- {
- ybAmt = 0;psnAcctAmt = 0;hospAmt = 0;psnCashAmt = 0;medFee = 0;centerSumumt = 0;
- if (funNO == "48")
- {
- ybAmt = getFee(jo, "output.prm_yka248") //本次基本医疗报销金额
- + getFee(jo, "output.prm_yka062") //本次大病医疗报销金额
- + getFee(jo, "output.prm_yke030") //本次公务员报销金额
- + getFee(jo, "output.prm_ake032") //城 乡 居 民 卫 计 局 补 偿 金 额 ( 卫 计 补 偿 )
- + getFee(jo, "output.prm_ake181") //医疗救助补偿金额
- + getFee(jo, "output.prm_ake183") //优抚补偿金额
- + getFee(jo, "output.prm_ake173") //其他基金
- + getFee(jo, "output.prm_yka082") //大额补充保险报销金额
- + getFee(jo, "output.prm_yka083"); //大病额外报销
- psnAcctAmt = getFee(jo, "output.prm_yka065");
- psnCashAmt = getFee(jo, "output.psn_cash_pay");
- hospAmt = getFee(jo, "output.hosp_part_amt");
- medFee = getFee(jo, "output.prm_yka055");
- centerSumumt = getFee(jo, "output.prm_yka525");
- }
- if (funNO == "41")
- {
- ybAmt = getFee(jo, "output.prm_yka248") //本次基本医疗报销金额
- + getFee(jo, "output.prm_yka062") //本次大病医疗报销金额
- + getFee(jo, "output.prm_yke030") //本次公务员报销金额
- + getFee(jo, "output.prm_ake032") //城 乡 居 民 卫 计 局 补 偿 金 额 ( 卫 计 补 偿 )
- + getFee(jo, "output.prm_ake181") //医疗救助补偿金额
- + getFee(jo, "output.prm_ake183") //优抚补偿金额
- + getFee(jo, "output.prm_ake173") //其他基金
- + getFee(jo, "output.prm_yka082") //大额补充保险报销金额
- + getFee(jo, "output.prm_yka083"); //大病额外报销
- psnAcctAmt = getFee(jo, "output.prm_yka065");
- psnCashAmt = getFee(jo, "output.psn_cash_pay");
- hospAmt = getFee(jo, "output.hosp_part_amt");
- medFee = getFee(jo, "output.prm_yka055");
- centerSumumt = getFee(jo, "output.prm_yka525");
- }
- if (funNO == "43")
- {
- ybAmt = getFee(jo, "output.prm_yka248") //本次基本医疗报销金额
- + getFee(jo, "output.prm_yka062") //本次大病医疗报销金额
- + getFee(jo, "output.prm_yke030") //本次公务员报销金额
- + getFee(jo, "output.prm_ake032") //城 乡 居 民 卫 计 局 补 偿 金 额 ( 卫 计 补 偿 )
- + getFee(jo, "output.prm_ake181") //医疗救助补偿金额
- + getFee(jo, "output.prm_ake183") //优抚补偿金额
- + getFee(jo, "output.prm_ake173") //其他基金
- + getFee(jo, "output.prm_yka082") //大额补充保险报销金额
- + getFee(jo, "output.prm_yka083"); //大病额外报销
- psnAcctAmt = getFee(jo, "output.prm_yka065");
- psnCashAmt = getFee(jo, "output.psn_cash_pay");
- hospAmt = getFee(jo, "output.hosp_part_amt");
- medFee = getFee(jo, "output.prm_yka055");
- centerSumumt = getFee(jo, "output.prm_yka525");
- }
-
- if (medFee != (ybAmt + psnAcctAmt + psnCashAmt + hospAmt))
- {
-
- if (centerSumumt + (medFee - ybAmt) == (ybAmt + psnAcctAmt + psnCashAmt + hospAmt))
- {
- errMsg = "该笔数据应该为单病种,中心返回金额= 医保基金+ 个人账户+ 现金支付(可能存在超限金额); 医院承担(个别地区医院承担不包含超限金额)= 医保支付 - HIS实际总费用;";
- errMsg = errMsg + "ybAmt(" + ybAmt.ToString() + ")+" + "psnAcctAmt(" + psnAcctAmt.ToString() + ")+" + "psnCashAmt(" + psnCashAmt.ToString() + ")+" + "hospAmt(" + hospAmt.ToString() + ")"
- + "==centerSumumt(" + centerSumumt.ToString() + ")" + "medFee(" + medFee.ToString() + ")-" + "ybAmt(" + ybAmt.ToString() + ")";
- hospAmt = hospAmt - psnCashAmt;
- }
- else
- {
- Global.writeLog("ybAmt(" + ybAmt.ToString() + ")+" + "psnAcctAmt(" + psnAcctAmt.ToString() + ")+" + "psnCashAmt(" + psnCashAmt.ToString() + ")+" + "hospAmt(" + hospAmt.ToString() + ")" + "!=centerSumumt(" + centerSumumt.ToString() + ")");
- errMsg = "ybAmt(" + ybAmt.ToString() + ")+" + "psnAcctAmt(" + psnAcctAmt.ToString() + ")+" + "psnCashAmt(" + psnCashAmt.ToString() + ")+" + "hospAmt(" + hospAmt.ToString() + ")" + "!=medFee(" + medFee.ToString() + ")";
- errMsg = errMsg + System.Environment.NewLine;
- errMsg = errMsg + "ybAmt 为如下节点之和:" + "prm_yka248(" + getFee(jo, "output.prm_yka248").ToString() + ")+";
- errMsg = errMsg + "prm_yka062(" + getFee(jo, "output.prm_yka062").ToString() + ")+";
- errMsg = errMsg + "prm_yke030(" + getFee(jo, "output.prm_yke030").ToString() + ")+";
- errMsg = errMsg + "prm_ake032(" + getFee(jo, "output.prm_ake032").ToString() + ")+";
- errMsg = errMsg + "prm_ake181(" + getFee(jo, "output.prm_ake181").ToString() + ")+";
- errMsg = errMsg + "prm_ake183(" + getFee(jo, "output.prm_ake183").ToString() + ")+";
- errMsg = errMsg + "prm_ake173(" + getFee(jo, "output.prm_ake173").ToString() + ")+";
- errMsg = errMsg + "prm_yka082(" + getFee(jo, "output.prm_yka082").ToString() + ")+";
- errMsg = errMsg + "prm_yka083(" + getFee(jo, "output.prm_yka083").ToString() + ")";
- errMsg = errMsg + System.Environment.NewLine;
- errMsg = errMsg + "psnAcctAmt 为如下节点之和:" + "prm_yka065(" + getFee(jo, "output.prm_yka065").ToString() + ")";
- errMsg = errMsg + System.Environment.NewLine;
- errMsg = errMsg + "hospAmt 为如下节点之和:" + "hosp_part_amt(" + getFee(jo, "output.hosp_part_amt").ToString() + ")";
- errMsg = errMsg + System.Environment.NewLine;
- errMsg = errMsg + "medFee 为如下节点之和:" + "prm_yka055(" + getFee(jo, "output.prm_yka055").ToString() + ")";
- //errMsg = "ybAmt + psnAcctAmt + psnCashAmt + hospAmt != medFee";
- return -1;
- }
-
- }
- else
- {
- errMsg = "ybAmt(" + ybAmt.ToString() + ")+" + "psnAcctAmt(" + psnAcctAmt.ToString() + ")+" + "psnCashAmt(" + psnCashAmt.ToString() + ")+" + "hospAmt(" + hospAmt.ToString() + ")" + "!=medFee(" + medFee.ToString() + ")";
- errMsg = errMsg + System.Environment.NewLine;
- errMsg = errMsg + "ybAmt 为如下节点之和:" + "prm_yka248(" + getFee(jo, "output.prm_yka248").ToString() + ")+";
- errMsg = errMsg + "prm_yka062(" + getFee(jo, "output.prm_yka062").ToString() + ")+";
- errMsg = errMsg + "prm_yke030(" + getFee(jo, "output.prm_yke030").ToString() + ")+";
- errMsg = errMsg + "prm_ake032(" + getFee(jo, "output.prm_ake032").ToString() + ")+";
- errMsg = errMsg + "prm_ake181(" + getFee(jo, "output.prm_ake181").ToString() + ")+";
- errMsg = errMsg + "prm_ake183(" + getFee(jo, "output.prm_ake183").ToString() + ")+";
- errMsg = errMsg + "prm_ake173(" + getFee(jo, "output.prm_ake173").ToString() + ")+";
- errMsg = errMsg + "prm_yka082(" + getFee(jo, "output.prm_yka082").ToString() + ")+";
- errMsg = errMsg + "prm_yka083(" + getFee(jo, "output.prm_yka083").ToString() + ")";
- errMsg = errMsg + System.Environment.NewLine;
- errMsg = errMsg + "psnAcctAmt 为如下节点之和:" + "prm_yka065(" + getFee(jo, "output.prm_yka065").ToString() + ")";
- errMsg = errMsg + System.Environment.NewLine;
- errMsg = errMsg + "hospAmt 为如下节点之和:" + "hosp_part_amt(" + getFee(jo, "output.hosp_part_amt").ToString() + ")";
- errMsg = errMsg + System.Environment.NewLine;
- errMsg = errMsg + "medFee 为如下节点之和:" + "prm_yka055(" + getFee(jo, "output.prm_yka055").ToString() + ")";
- }
- Global.writeLog(errMsg);
- joSumFee.Add("ybAmt", ybAmt);
- joSumFee.Add("psnAcctAmt", psnAcctAmt);
- joSumFee.Add("hospAmt", hospAmt);
- joSumFee.Add("psnCashAmt", psnCashAmt);
- return 0;
- }
- catch (Exception ex)
- {
- errMsg = ex.Message;
- return 1;
- }
-
- }
-
- /// <summary>
- /// 返回门诊结算信息给HIS
- /// </summary>
- /// <param name="joSetlInpar"></param>
- /// <param name="joSetlinfo"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int returnOutpatSettlementInfo(JObject joSetlInpar, JObject joSetlinfo, out string outParam)
- {
- string errMsg;
- try
- {
- JObject joSumFee = new JObject();
- if (sumInsuRtnSettlInfo("48",joSetlinfo, out joSumFee, out errMsg) != 0)
- {
- outParam = "返回48结算结果给HIS失败,请联系管理员!" + errMsg;
- return -1;
- }
- dynamic joTmp = new JObject();
- joTmp.settleInfo = joSetlInpar;
- joTmp.updateUserID = Global.user.ID;
- joTmp.regInfo = joSetlInpar;
- joTmp.middleSettleFlag = "";
- joTmp.interfaceDr = Global.inf.interfaceDr;
- dynamic joHisInfo = new JObject();
- joHisInfo.admID = Global.pat.adm_Dr;
- joHisInfo.billID = Global.pat.billID;
- joHisInfo.recordID = Global.pat.recordID;
- joTmp.hisInfo = joHisInfo;
- joTmp.psn_type = Global.pat.psn_type;
- joTmp.sumFeeObj = joSumFee;
- //05110018 {"feeObj":{"ybAmt":"医保支付","psnAcctAmt":"个人账户","psnCashAmt":"个人现金","hospAmt":"医院垫付"}}
- //JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110009", joTmp).ToString(), "返回2207结算结果给HIS");
- JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110018", joTmp).ToString(), "返回2207结算结果给HIS");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = "返回2207结算结果给HIS失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "返回2207结算结果给HIS出现异常:!" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 取消结算信息
- /// </summary>
- /// <param name="joParam"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int cancleSettlementInfo(JObject joParam, out string outParam)
- {
- string errMsg;
- try
- {
- dynamic joTmp = new JObject();
- joTmp = joParam.DeepClone();
- joTmp.updateUserID = Global.user.ID;
- joTmp.middleSettleFlag = "";
- JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110008", joTmp).ToString(), "取消HIS医保结算信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = "取消HIS医保结算信息失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- outParam = "取消HIS医保结算信息成功";
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "取消HIS医保结算信息出现异常:!" + ex.Message;
- return -1;
- }
- }
- public int getHISDir(JArray jaPagination, JArray jaParams, out JObject joRtn, out string outParam)
- {
- string errMsg;
- joRtn = new JObject();
- try
- {
- dynamic joTmp = new JObject();
- joTmp.pagination = jaPagination;
- joTmp.session = Global.curEvt.jaSession;
- joTmp.Add("params",jaParams);
- joTmp.code = "05111002";
- joRtn = invoker.invokeHISService(joTmp.ToString(), "查询HIS目录分页");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = "查询HIS目录分页失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
-
- if (joRtn["result"]["Data"] == null)
- {
- outParam = "Data节点不存在";
- return -1;
- }
- outParam = "查询HIS目录分页成功";
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "查询HIS目录分页异常:!" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 从HIS获取医保事前事中服务交易入参报文
- /// </summary>
- /// <param name="pat"></param>
- /// <param name="errMsg"></param>
- /// <returns></returns>
- public int GetInsuPatInfo(string TrigScen, Patients pat, out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- dynamic joIrisParam = new JObject();
- JArray jaIrisParams = new JArray();
- JObject joIrisTmp = new JObject();
- joIrisParam.code = "05110015";
- joIrisParam.session = Global.curEvt.jaSession;
- joIrisTmp.Add("admID", pat.adm_Dr);
- joIrisTmp.Add("billID", pat.billID);
- joIrisTmp.Add("recordID", pat.recordID);
- joIrisTmp.Add("userID", Global.user.ID);
- joIrisTmp.Add("hospID", Global.inf.hisHospitalDr);
- joIrisTmp.Add("psnNo", Global.pat.psn_no);
- joIrisTmp.Add("mdtrtId", Global.pat.mdtrtID);
- joIrisTmp.Add("InsuredType", Global.pat.insuType);
- joIrisTmp.Add("MedicalType", Global.pat.medType);
- joIrisTmp.Add("YBArea", Global.pat.insuplc_admdvs);
- joIrisTmp.Add("TrigScen", TrigScen);
- joIrisTmp.Add("InterfaceID", Global.inf.interfaceDr);
- jaIrisParams.Add(joIrisTmp);
- joIrisParam.Add("params", JArray.FromObject(jaIrisParams));
- JObject joRtn = invoker.invokeHISService(joIrisParam.ToString(), "医保事前事中服务报文获取");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "GetInsuPatInfo医保事前事中服务报文获取 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 获取患者基本信息
- /// </summary>
- /// <param name="errMsg"></param>
- /// <returns></returns>
- public int GetHisPatBaseInfo(out string errMsg)
- {
- errMsg = "";
- try
- {
- dynamic joTmp = new JObject();
- joTmp.admID = Global.pat.adm_Dr;
- JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110021", joTmp).ToString(), "获取HIS患者基本信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- errMsg = "获取HIS患者基本信息失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- errMsg = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- errMsg = "GetHisPatBaseInfo异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 事前分析
- /// </summary>
- /// <param name="errMsg"></param>
- /// <returns></returns>
- public int PreAnalysis(out string errMsg)
- {
- errMsg = "";
- try
- {
- JObject joTmp = new JObject();
- joTmp.Add("billID", Global.pat.billID);
- joTmp.Add("recordID", Global.pat.recordID);
- JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110022", joTmp).ToString(), "获取事前分析内容");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- errMsg = "获取事前分析内容失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- errMsg = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- errMsg = ex.Message;
- return -1;
- }
- }
- public int BatchHisRecord(JArray jaMiRecord, out string errMsg)
- {
- errMsg = "";
- try
- {
- JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110042", jaMiRecord).ToString(), "匹配His结算记录");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- errMsg = "获取事前分析内容失败,请联系管理员!" + errMsg;
- return -1;
- }
- else
- {
- errMsg = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- errMsg = ex.Message;
- return -1;
- }
- }
- }
- class MIIrisServices
- {
- private InvokeHelper invoker = new InvokeHelper();
- /// <summary>
- /// 获取接口信息
- /// </summary>
- /// <returns></returns>
- public JObject getInterface()
- {
-
- dynamic joParam = new JObject();
- joParam.HospitalDr = Global.inf.hospitalDr;
- joParam.InterfaceID = "";
- JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
- InvokeHelper invoker = new InvokeHelper();
- return invoker.invokeInsuService(joInparam.ToString(), "获取接口信息");
- }
- public JObject getInterface(string interfaceID)
- {
- dynamic joParam = new JObject();
- joParam.HospitalDr = Global.inf.hospitalDr;
- joParam.InterfaceID = interfaceID;
- JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
- InvokeHelper invoke = new InvokeHelper();
- JObject joRtn = invoke.invokeInsuService(joInparam.ToString(), "获取接口信息");
- JObject joInterfaceInfo = JObject.Parse(JsonHelper.getDestValue(joRtn, "result.data[0]"));
- joInterfaceInfo.Add("operatorNO", "0");
- joInterfaceInfo.Add("operatorName", "管理员");
- return joInterfaceInfo;
- }
- /// <summary>
- /// 判断是否签到过,如果未签到,返回false,如果签到则返回ture,同时返回签到号
- /// </summary>
- /// <param name="signno"></param>
- /// <returns></returns>
- public bool isSigned(ref string signno)
- {
- JObject joIn = new JObject();
- joIn.Add("operatorNO", Global.user.ID.ToUpper());
- joIn.Add("operatorName", Global.user.name);
- joIn.Add("mac", Global.curEvt.mac);
- joIn.Add("ip", Global.curEvt.ip);
- joIn.Add("hospitalDr", Global.inf.hospitalDr);
- joIn.Add("interfaceDr", Global.inf.interfaceDr);
- joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
- string data = JsonHelper.setIrisInpar("09010064", joIn).ToString();
- JObject joRtn = invoker.invokeInsuService(data, "查询签到信息");
- string errMsg = "";
- if ( JsonHelper.parseIrisRtnValue(joRtn,out errMsg)!= 0)
- {
- signno = "";
- return false;
- }
- else
- {
- signno = JsonHelper.getDestValue(joRtn, "result.SignNo");
- return true;
- }
- }
- /// <summary>
- ///保存签到信息
- /// </summary>
- /// <param name="signno"></param>
- /// <returns></returns>
- public int saveSignRecord( string signno,out string errMsg)
- {
- if (signno == "")
- {
- errMsg = "signno不能为空!";
- return -1;
- }
- errMsg = ""; ;
- JObject joIn = new JObject();
- joIn.Add("operatorNO", Global.user.ID);
- joIn.Add("operatorName", Global.user.name);
- joIn.Add("mac", Global.curEvt.mac);
- joIn.Add("ip", Global.curEvt.ip);
- joIn.Add("hospitalDr", Global.inf.hospitalDr);
- joIn.Add("interfaceDr", Global.inf.interfaceDr);
- joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
- joIn.Add("signNo", signno);
- joIn.Add("createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- joIn.Add("division", Global.inf.areaCode);
- string data = JsonHelper.setIrisInpar("09010065", joIn).ToString();
- JObject joRtn = invoker.invokeInsuService(data, "插入签到信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- return -1;
- }
- else
- {
- return 0;
- }
- }
- /// <summary>
- /// 保存住院登记信息
- /// </summary>
- /// <param name="joRegIn"></param>
- /// <param name="joRegOut"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int saveInpatRegisterInfo(JObject joRegIn,JObject joRegOut,out string outParam)
- {
- //插入云医保平台
- JObject joTmp = new JObject();
- string errMsg = "";
- try
- {
- joTmp.Add("HospitalDr", Global.inf.hospitalDr);
- joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
- joTmp.Add("AdmDr", Global.pat.adm_Dr);
- joTmp.Add("PatientName", Global.pat.name);
- joTmp.Add("PersonalNO", Global.pat.psn_no);
- joTmp.Add("InsuRegID", JsonHelper.getDestValue(joRegOut, "output.prm_akc190"));
- joTmp.Add("RegDate", JsonHelper.getDestValue(joRegIn, "prm_akc192"));
- joTmp.Add("InsuType", JsonHelper.getDestValue(joRegOut, "output.prm_ykb065"));
- joTmp.Add("CertificateType", "01");//这个属性还是必须的?
- joTmp.Add("CertificateNO", JsonHelper.getDestValue(joRegOut, "output.prm_aac002"));
- joTmp.Add("MedicalType", JsonHelper.getDestValue(joRegOut, "output.prm_aka130"));
- joTmp.Add("AttendDoctorNO", "");
- joTmp.Add("ChiefPhyDocName", "");
- joTmp.Add("AdmInDiagDesc", JsonHelper.getDestValue(joRegIn, "prm_akc193"));
- joTmp.Add("AdmInDepCode", JsonHelper.getDestValue(joRegIn, "prm_ykc011"));
- joTmp.Add("AdmInDepName", JsonHelper.getDestValue(joRegIn, "prm_yka098"));
- joTmp.Add("AdmBed", JsonHelper.getDestValue(joRegIn, "prm_ykc012"));
- joTmp.Add("MainDiagCode", JsonHelper.getDestValue(joRegIn, "prm_yke120"));
- joTmp.Add("MainDiagName", JsonHelper.getDestValue(joRegIn, "prm_akc193"));
- joTmp.Add("MainConditionDesc", "");
- joTmp.Add("DiseasecCode", "");
- joTmp.Add("DiseasecName", "");
- joTmp.Add("OperationCode", "");
- joTmp.Add("OperationName", "");
- joTmp.Add("DiseasecTypeCode", "");
- joTmp.Add("InsuranceAreaCode", Global.pat.insuplc_admdvs);
- joTmp.Add("TreatmentAreaCode", Global.inf.areaCode);
- joTmp.Add("RegState", JsonHelper.getDestValue(joRegOut, "regstate"));
- joTmp.Add("ValidFlag", JsonHelper.getDestValue(joRegOut, "validflag"));
- joTmp.Add("Type", JsonHelper.getDestValue(joRegOut, "type"));
- joTmp.Add("updateUserID", Global.user.ID);
- joTmp.Add("msgid", Global.curEvt.msgid);
- joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- joTmp.Add("ConerName","");
- joTmp.Add("Tel", "");
- string serviceCode = "09010044";
- string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
- JObject joRtn = invoker.invokeInsuService(inpar, "新增住院登记信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = joRtn.ToString();
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "保存住院登记信息异常:" + ex.Message;
- return -1;
- }
-
- }
- /// <summary>
- /// 保存门诊登记信息
- /// </summary>
- /// <param name="jo2201Inpar"></param>
- /// <param name="jo2201Rtn"></param>
- /// <param name="jo2203Inpar"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int saveOutpatRegisterInfo(JObject jo2201Inpar, JObject jo2201Rtn,JObject jo2203Inpar, out string outParam)
- {
- //插入云医保平台
- JObject joTmp = new JObject();
- string errMsg = "";
- try
- {
- joTmp.Add("HospitalDr", Global.inf.hospitalDr);
- joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
- joTmp.Add("AdmDr", Global.pat.adm_Dr);
- joTmp.Add("PatientName", Global.pat.name);
- joTmp.Add("PersonalNO", Global.pat.psn_no);
- joTmp.Add("InsuRegID", JsonHelper.getDestValue(jo2201Rtn, "output.data.mdtrt_id"));
- joTmp.Add("RegDate", JsonHelper.getDestValue(jo2201Inpar, "mdtrtinfo.begntime"));
- joTmp.Add("InsuType", JsonHelper.getDestValue(jo2201Inpar, "mdtrtinfo.insutype"));
- joTmp.Add("CertificateType", JsonHelper.getDestValue(jo2201Inpar, "mdtrtinfo.mdtrt_cert_type"));
- joTmp.Add("CertificateNO", JsonHelper.getDestValue(jo2201Inpar, "mdtrtinfo.mdtrt_cert_no"));
- joTmp.Add("MedicalType", JsonHelper.getDestValue(jo2203Inpar, "mdtrtinfo.med_type"));
- joTmp.Add("AttendDoctorNO", JsonHelper.getDestValue(jo2201Inpar, "mdtrtinfo.atddr_no"));
- joTmp.Add("ChiefPhyDocName", JsonHelper.getDestValue(jo2201Inpar, "mdtrtinfo.dr_name"));
- joTmp.Add("AdmInDiagDesc", JsonHelper.getDestValue(jo2203Inpar, "mdtrtinfo.main_cond_dscr"));
- joTmp.Add("AdmInDepCode", JsonHelper.getDestValue(jo2201Inpar, "mdtrtinfo.dept_code"));
- joTmp.Add("AdmInDepName", JsonHelper.getDestValue(jo2201Inpar, "mdtrtinfo.dept_name"));
- joTmp.Add("AdmBed", "");
- joTmp.Add("MainDiagCode", " ");
- joTmp.Add("MainDiagName", " ");
- joTmp.Add("MainConditionDesc", JsonHelper.getDestValue(jo2203Inpar, "mdtrtinfo.main_cond_dscr"));
- joTmp.Add("DiseasecCode", JsonHelper.getDestValue(jo2203Inpar, "mdtrtinfo.dise_codg"));
- joTmp.Add("DiseasecName", JsonHelper.getDestValue(jo2203Inpar, "mdtrtinfo.dise_name"));
- joTmp.Add("OperationCode", "");
- joTmp.Add("OperationName", "");
- joTmp.Add("DiseasecTypeCode", "");
- joTmp.Add("InsuranceAreaCode", Global.pat.insuplc_admdvs);
- joTmp.Add("TreatmentAreaCode", Global.inf.areaCode);
- joTmp.Add("RegState", JsonHelper.getDestValue(jo2201Rtn, "regstate"));
- joTmp.Add("ValidFlag", JsonHelper.getDestValue(jo2201Rtn, "validflag"));
- joTmp.Add("Type", JsonHelper.getDestValue(jo2201Rtn, "type"));
- joTmp.Add("updateUserID", Global.user.ID);
- joTmp.Add("msgid", Global.curEvt.msgid);
- joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- string serviceCode = "09010044";
- string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
- JObject joRtn = invoker.invokeInsuService(inpar, "新增门诊登记信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = joRtn.ToString();
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "保存门诊登记信息异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 取消登记
- /// </summary>
- /// <param name="type"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int cancleRegister(int type,out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- dynamic joTmp = new JObject();
- joTmp.Add("HospitalDr", Global.inf.hospitalDr);
- joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
- joTmp.Add("AdmDr", Global.pat.adm_Dr);
- joTmp.Add("PersonalNO",Global.pat.psn_no);
- joTmp.Add("InsuRegID", Global.pat.mdtrtID);
- joTmp.Add("CancleRegDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- joTmp.Add("Type", type);
- joTmp.Add("ValidFlag", -1);
- joTmp.Add("updateUserID", Global.user.ID);
- string serviceCode = "09010044";
- string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
- JObject joRtn = invoker.invokeInsuService(inpar, "取消云医保平台登记信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = "退结算失败,请根据输入条件检查是否存在该笔数据!" + errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "取消登记异常" + ":" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 删除费用明细
- /// </summary>
- /// <param name="pat"></param>
- /// <param name="errMsg"></param>
- /// <returns></returns>
- public int deleteFee(out string errMsg)
- {
- try
- {
- dynamic joTmp = new JObject();
- joTmp = new JObject();
- joTmp.code = "09010048";
- joTmp.HospitalDr = Global.inf.hospitalDr;
- joTmp.admID = Global.pat.adm_Dr;
- joTmp.mdtrt_id = Global.pat.mdtrtID;
- joTmp.updateUserID = Global.user.ID;
- JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "删除2301明细");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- return -1;
- }
- else
- {
- return 0;
- }
- }
- catch (Exception ex)
- {
- errMsg = "deleteFee 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 根据HIS的费用明细获取对照关系
- /// </summary>
- /// <returns></returns>
- public int convertHisFeeWithInsuCode( JObject joHisFee, out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- JArray jaFee = JArray.FromObject(joHisFee["result"]);
- JObject joTmp = JsonHelper.setIrisInpar("09010045", jaFee);
- joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
- joTmp.Add("med_type", Global.pat.medType);
- joTmp.Add("psn_no", Global.pat.psn_no);
- //joTmp.Add("HospitalDr", Global.inf.hospitalDr);
- //joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
- JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "根据HIS的费用明细获取对照关系");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "convertHisFeeWithInsuCode 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 根据HIS的费用明细获取对照关系
- /// </summary>
- /// <returns></returns>
- public int convertHisFeeWithInsuCodeOfMobilePay(Patients pat, JObject joHisFee, out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- JArray jaFee = JArray.FromObject(joHisFee["result"]);
- JObject joTmp = JsonHelper.setIrisInpar("09010086", jaFee);
- joTmp.Add("mdtrt_id", pat.mdtrtID);
- joTmp.Add("med_type", pat.medType);
- joTmp.Add("psn_no", pat.psn_no);
- JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "根据HIS的费用明细获取对照关系");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = " convertHisFeeWithInsuCodeOfMobilePay异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 转换事前事中 处方信息集合
- /// </summary>
- /// <returns></returns>
- public int convertFsiOrderDtos(JArray fsiOrderDtos, out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010077",fsiOrderDtos).ToString(), "转换事前事中处方信息集合");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "convertHisFeeWithInsuCode 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 插入医保费用
- /// </summary>
- /// <param name="jaTmp"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int insertFee(JArray jaTmp,out string outParam)
- {
- try
- {
- outParam = "";
- string errMsg;
- dynamic joTmp = new JObject();
- joTmp = new JObject();
- joTmp.code = "09010046";
- joTmp.HospitalDr = Global.inf.hospitalDr;
- joTmp.admID = Global.pat.adm_Dr;
- joTmp.mdtrt_id = Global.pat.mdtrtID;
- joTmp.updateUserID = Global.user.ID;
- joTmp.Add("params", jaTmp);
- ;
- JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "插入2301明细");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "insertFee 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 更新医保费用
- /// </summary>
- /// <param name="jaTmp"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int updateFee(JArray jaTmp, out string outParam)
- {
- try
- {
- outParam = "";
- string errMsg;
- dynamic joTmp = new JObject();
- joTmp.code = "09010047";
- JArray jaParams = jaTmp;
- joTmp.Add("params", jaParams);
- joTmp.HospitalDr = Global.inf.hospitalDr;
- joTmp.admID = Global.pat.adm_Dr;
- joTmp.mdtrt_id = Global.pat.mdtrtID;
- joTmp.updateUserID =Global.user.ID;
- JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "更新2301明细");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "updateFee 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 获取各项费用汇总
- /// </summary>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int getSumFee(out string outParam)
- {
- try
- {
- outParam = "";
- string errMsg;
- //调用IRIS获取医保各项金额
- dynamic joTmp = new JObject();
- joTmp = new JObject();
- joTmp.code = "09010049";
- joTmp.HospitalDr = Global.inf.hospitalDr;
- joTmp.admID = Global.pat.adm_Dr;
- joTmp.mdtrt_id = Global.pat.mdtrtID;
- joTmp.updateUserID = Global.user.ID; ;
- JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "获取各项费用汇总"); ;
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "getSumFee 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 转换结算信息
- /// </summary>
- /// <param name="pat"></param>
- /// <param name="joSettlement"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int convertSettlementWithInsuCode(JObject joSettlement, out string outParam)
- {
- outParam = "";
- string errMsg;
- try
- {
- JObject joOutput = JObject.FromObject(joSettlement["output"]);
- //编码转换
- JObject joInpar = new JObject();
- joInpar.Add("hospitalDr", Global.inf.hospitalDr);
- joInpar.Add("interfaceDr", Global.inf.interfaceDr);
- joInpar.Add("output", joOutput);
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010055", joInpar).ToString(), "结算信息编码转换");
- if (JsonHelper.getDestValue(joRtn, "errorCode") != "")
- {
- outParam = JsonHelper.getDestValue(joRtn, "errorMessage");
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "convertSettlementWithInsuCode 异常:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 插入结算信息
- /// </summary>
- /// <param name="joSettlement"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int saveSettlement(JObject joSettlement, out string outParam)
- {
- JObject joTmp = new JObject();
- string errMsg = "";
- try
- {
- JObject joRtnSetlinfo = JObject.Parse(JsonHelper.getDestValue(joSettlement, "output"));
- JObject joSetlinfo = new JObject();
- joSetlinfo.Add("HospitalDr", Global.inf.hospitalDr);
- joSetlinfo.Add("admID", Global.pat.adm_Dr);
- if (JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc190") != "")
- joSetlinfo.Add("mdtrt_id", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc190"));
- else
- joSetlinfo.Add("mdtrt_id", Global.pat.mdtrtID);
- joSetlinfo.Add("setl_id", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka103"));//
- joSetlinfo.Add("psn_no", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac001"));
- joSetlinfo.Add("psn_name", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac003"));
- //joSetlinfo.Add("mdtrt_cert_type", JsonHelper.getDestValue(joRtnSetlinfo, "mdtrt_cert_type"));
- joSetlinfo.Add("certno", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac002"));
- joSetlinfo.Add("gend", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac004"));
- joSetlinfo.Add("naty", "");
- joSetlinfo.Add("brdy", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac006"));
- joSetlinfo.Add("age", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc023"));
- joSetlinfo.Add("insutype", Global.pat.insuType);
- joSetlinfo.Add("psn_type", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc021"));
- joSetlinfo.Add("cvlserv_flag", "");
- joSetlinfo.Add("setl_time", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aae036"));
- joSetlinfo.Add("mdtrt_cert_type", JsonHelper.getDestValue(joRtnSetlinfo, "mdtrt_cert_type"));
- joSetlinfo.Add("med_type", Global.pat.medType);
- joSetlinfo.Add("medfee_sumamt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka055"));//总费用
- joSetlinfo.Add("fulamt_ownpay_amt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka056"));//全自费金额
- joSetlinfo.Add("overlmt_selfpay", "");//超限价自费费用
- joSetlinfo.Add("preselfpay_amt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka057"));//先行自付金额
- joSetlinfo.Add("inscp_scp_amt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka111"));//符合政策范围金额
- joSetlinfo.Add("act_pay_dedc", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka058"));//实际支付起付线
- joSetlinfo.Add("hifp_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka248"));//基本医疗保险统筹基金支出
- joSetlinfo.Add("pool_prop_selfpay", "0");//基本医疗保险统筹基金支付比例
- joSetlinfo.Add("cvlserv_pay", JsonHelper.getDecimalFee(joRtnSetlinfo, "prm_yke030"));//公务员医疗补助资金支出
- joSetlinfo.Add("hifes_pay", JsonHelper.getDecimalFee(joRtnSetlinfo, "prm_yka062"));//企业支付 占用 大病报销金额
- joSetlinfo.Add("hifmi_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka082"));// 居民大病保险资金支出
- joSetlinfo.Add("hifob_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka083"));//职工大额医疗费用补助基金支出
- joSetlinfo.Add("maf_pay", JsonHelper.getDecimalFee(joRtnSetlinfo, "prm_ake181"));//医疗救助基金支出
- joSetlinfo.Add("hosp_part_amt", JsonHelper.getDestValue(joRtnSetlinfo, "hosp_part_amt"));//医院负担金额
- joSetlinfo.Add("oth_pay", JsonHelper.getDecimalFee(joRtnSetlinfo, "prm_ake173"));//其他支出
- joSetlinfo.Add("fund_pay_sumamt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka248"));//基金支付总额
- joSetlinfo.Add("psn_part_amt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc190"));//个人负担总金额
- joSetlinfo.Add("acct_pay", JsonHelper.getDecimalFee(joRtnSetlinfo, "prm_yka065"));//个人账户支出
- joSetlinfo.Add("psn_cash_pay", JsonHelper.getDestValue(joRtnSetlinfo, "psn_cash_pay"));//个人现金支出
- joSetlinfo.Add("balc", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc087"));// 余额
- joSetlinfo.Add("acct_mulaid_pay", "");//个人账户共济支付金额
- joSetlinfo.Add("medins_setl_id", "");//医药机构结算ID
- joSetlinfo.Add("clr_optins", JsonHelper.getDestValue(joRtnSetlinfo, "prm_ykb037"));//清算经办机构
- joSetlinfo.Add("clr_way", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka054"));//清算方式
- joSetlinfo.Add("clr_type", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka316"));//清算类别
- joSetlinfo.Add("ValidFlag", 1);
- joSetlinfo.Add("BillType", 1);
- joSetlinfo.Add("msgid", Global.curEvt.msgid);
- joSetlinfo.Add("admType", Global.pat.admType);
- joSetlinfo.Add("billID", Global.pat.billID);
- joSetlinfo.Add("recordID", Global.pat.recordID);
- joSetlinfo.Add("interfaceDr", Global.inf.interfaceDr);
- if (JsonHelper.getDestValue(joRtnSetlinfo, "prm_yab003") != "")
- joSetlinfo.Add("insuplc_admdvs", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yab003"));//参保地存分中心编号
- else
- joSetlinfo.Add("insuplc_admdvs",Global.pat.insuplc_admdvs);
- joSetlinfo.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- joSetlinfo.Add("HospitalizationsDays", Global.settl.hospitalizationsDays);
- joSetlinfo.Add("HospitalizationsTimes", Global.settl.hospitalizationsTimes);
- joSetlinfo.Add("HISAdmTime", Global.settl.hisAdmTime);
- joSetlinfo.Add("HISDischargeTime", Global.settl.hisDischargeTime);
- joSetlinfo.Add("updateUserID", Global.user.ID);
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010051", joSetlinfo).ToString(), "插入结算信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joSetlinfo.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "插入结算信息:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 保存结算信息
- /// </summary>
- /// <param name="joSettlement"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int saveSettlementDetail(JObject joSettlement, out string outParam)
- {
- JObject joTmp = new JObject();
- string errMsg = "";
- try
- {
- JObject joSetlDetail = new JObject();
- joSetlDetail.Add("HospitalDr", Global.inf.hospitalDr);
- joSetlDetail.Add("InterfaceDr", Global.inf.interfaceDr);
- joSetlDetail.Add("MdtrtID", Global.pat.mdtrtID);
- joSetlDetail.Add("SettlementID", JsonHelper.getDestValue(joSettlement, "output.setlinfo.setl_id"));
- joSetlDetail.Add("AdmID", Global.pat.adm_Dr);
- joSetlDetail.Add("updateUserID", Global.user.ID);
- if (JsonHelper.getDestValue(joSettlement, "output.setldetail") == "")
- {
- outParam = "中心返回结算明细为空!";
- return 0;
- }
- JArray jaSetlDetail = JArray.Parse(JsonHelper.getDestValue(joSettlement, "output.setldetail"));
- joSetlDetail.Add("setldetail", jaSetlDetail);
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010056", joSetlDetail).ToString(), "插入结算明细信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "插入结算信息:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 取消结算
- /// </summary>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int cancleSettlement(string newSettlID, out string outParam)
- {
- JObject joTmp = new JObject();
- string errMsg = "";
- try
- {
- joTmp.Add("HospitalDr", Global.inf.hospitalDr);
- joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
- joTmp.Add("admID", Global.pat.adm_Dr);
- joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
- joTmp.Add("setl_id", Global.pat.settlID);
- joTmp.Add("new_setl_id", newSettlID);
- joTmp.Add("updateUserID", Global.user.ID);
- joTmp.Add("msgid", Global.curEvt.msgid);
- joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010052", joTmp).ToString(), "取消结算信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "取消结算信息:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 查询登记信息
- /// </summary>
- /// <param name="type"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int queryRegisterInfo(int type,out string outParam)
- {
- JObject joTmp = new JObject();
- string errMsg = "";
- try
- {
-
- joTmp.Add("HospitalDr", Global.inf.hospitalDr);
- joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
- joTmp.Add("admID", Global.pat.adm_Dr);
- joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
- joTmp.Add("type", type);
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010050", joTmp).ToString(), "查询云平台患者登记信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "查询云平台患者登记信息:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- /// 插入患者该次就诊参保信息
- /// </summary>
- /// <param name="joBaseInfo"></param>
- /// <param name="joInsuInfo"></param>
- /// <param name="joIdetInfo"></param>
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int insertPatCurInsuInfo(JObject joBaseInfo, out string outParam)
- {
- JObject joTmp = new JObject();
- string errMsg = "";
- try
- {
- joTmp.Add("HospitalDr", Global.inf.hospitalDr);
- joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
- joTmp.Add("AdmID", Global.pat.adm_Dr);
- joTmp.Add("PatientName", Global.pat.name);
- joTmp.Add("PersonalNO", Global.pat.psn_no);
- joTmp.Add("MdtrtID", Global.pat.mdtrtID);
- joTmp.Add("PsnCertType", "");
- joTmp.Add("PsnCertNO", JsonHelper.getDestValue(joBaseInfo, "prm_aac002"));
- joTmp.Add("Gend", JsonHelper.getDestValue(joBaseInfo, "prm_aac004"));
- joTmp.Add("Naty", "");
- joTmp.Add("Brdy", JsonHelper.getDestValue(joBaseInfo, "prm_aac006"));
- joTmp.Add("Age", JsonHelper.getDestValue(joBaseInfo, "prm_aac006"));
- joTmp.Add("Balc", JsonHelper.getDestValue(joBaseInfo, "balc"));
- joTmp.Add("Insutype", JsonHelper.getDestValue(joBaseInfo, "prm_ykb065"));
- joTmp.Add("PsnType", JsonHelper.getDestValue(joBaseInfo, "prm_akc021"));
- joTmp.Add("PsnInsuStas", "");
- joTmp.Add("PsnInsuDate", "");
- joTmp.Add("PausInsuDate", "");
- joTmp.Add("Cvlservflag", "");
- joTmp.Add("insuplcAdmdvs", JsonHelper.getDestValue(joBaseInfo, "prm_yab003"));
- joTmp.Add("EmpName", JsonHelper.getDestValue(joBaseInfo, "prm_aab004"));
- joTmp.Add("PsnIdettype",Global.pat.patExtend.ykc296);
- joTmp.Add("PsnTypeLv", "");
- joTmp.Add("IdetBegntime", "");
- joTmp.Add("IdetEndtime", "");
- joTmp.Add("ExtField1", JsonHelper.getDestValue(joBaseInfo, "prm_auther_certno"));
- joTmp.Add("ExtField2", JsonHelper.getDestValue(joBaseInfo, "prm_auther_insu_admdvs"));
- joTmp.Add("ExtField3", JsonHelper.getDestValue(joBaseInfo, "prm_auther_name"));
- joTmp.Add("ExtField4", JsonHelper.getDestValue(joBaseInfo, "prm_auther_no"));
- joTmp.Add("updateUserID", Global.user.ID);
- string serviceCode = "09010070";
- string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
- JObject joRtn = invoker.invokeInsuService(inpar, "插入患者该次就诊参保信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = errMsg;
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "医保平台插入患者该次就诊参保信息:" + ex.Message;
- return -1;
- }
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="joInpar"></param> 48交易入参
- /// <param name="joOutpar"></param>48交易出参
- /// <param name="outParam"></param>
- /// <returns></returns>
- public int saveOutpatRegisterInfo(JObject joInpar, JObject joOutpar, out string outParam)
- {
- //插入云医保平台
- JObject joTmp = new JObject();
- string errMsg = "";
- try
- {
- joTmp.Add("HospitalDr", Global.inf.hospitalDr);
- joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
- joTmp.Add("AdmDr", Global.pat.adm_Dr);
- joTmp.Add("PatientName", Global.pat.name);
- joTmp.Add("PersonalNO", Global.pat.psn_no);
- joTmp.Add("InsuRegID", JsonHelper.getDestValue(joOutpar, "output.prm_akc190"));
- joTmp.Add("RegDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- joTmp.Add("InsuType", JsonHelper.getDestValue(joInpar, "input.prm_ykb065"));
- joTmp.Add("CertificateType", "01");
- joTmp.Add("CertificateNO", Global.pat.certNO);
- joTmp.Add("MedicalType", JsonHelper.getDestValue(joInpar, "input.prm_aka130"));
- joTmp.Add("AttendDoctorNO", "");
- joTmp.Add("ChiefPhyDocName", "");
- joTmp.Add("AdmInDiagDesc", "");
- joTmp.Add("AdmInDepCode", "");
- joTmp.Add("AdmInDepName", "");
- joTmp.Add("AdmBed", "");
- joTmp.Add("MainDiagCode", " ");
- joTmp.Add("MainDiagName", " ");
- joTmp.Add("MainConditionDesc", JsonHelper.getDestValue(joInpar, "input.prm_ykc173"));
- joTmp.Add("DiseasecCode", "");
- joTmp.Add("DiseasecName", "");
- joTmp.Add("OperationCode", "");
- joTmp.Add("OperationName", "");
- joTmp.Add("DiseasecTypeCode", "");
- joTmp.Add("InsuranceAreaCode", Global.pat.insuplc_admdvs);
- joTmp.Add("TreatmentAreaCode", Global.inf.areaCode);
- joTmp.Add("RegState", "1");
- joTmp.Add("ValidFlag", "1");
- joTmp.Add("Type", "1");
- joTmp.Add("updateUserID", Global.user.ID);
- joTmp.Add("msgid", Global.curEvt.msgid);
- joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- string serviceCode = "09010044";
- string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
- JObject joRtn = invoker.invokeInsuService(inpar, "新增门诊登记信息");
- if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
- {
- outParam = joRtn.ToString();
- return -1;
- }
- else
- {
- outParam = joRtn.ToString();
- return 0;
- }
- }
- catch (Exception ex)
- {
- outParam = "保存门诊登记信息异常:" + ex.Message;
- return -1;
- }
- }
- #region 目录下载及对照
- /// <summary>
- /// 通过分页的方式查询医保目录
- /// </summary>
- /// <param name="currentPage"></param>
- /// <param name="pageSize"></param>
- /// <param name="irisCode"></param>
- /// <param name="directoryType"></param>
- public JObject getMIDirectoryByPagination(JObject jo)
- {
- string currentPage;
- string pageSize;
- string serviceCode;
- string directoryType;
- string directoryCode;
- string directoryName;
- string directoryDr;
- string approvalNO ;
- string verNO;
- try
- {
- currentPage = JsonHelper.getDestValue(jo, "currentPage");
- pageSize = JsonHelper.getDestValue(jo, "pageSize");
- serviceCode = JsonHelper.getDestValue(jo, "serviceCode");
- directoryType = JsonHelper.getDestValue(jo, "directoryType");
- directoryCode = JsonHelper.getDestValue(jo, "directoryCode");
- directoryName = JsonHelper.getDestValue(jo, "directoryName");
- directoryDr = JsonHelper.getDestValue(jo, "directoryDr");
- approvalNO = JsonHelper.getDestValue(jo, "approvalNO");
- verNO = JsonHelper.getDestValue(jo, "verNO");
- InvokeHelper invoker = new InvokeHelper();
- dynamic joInput = new JObject();
- joInput.code = serviceCode;
- dynamic joTmp = new JObject();
- JArray jaParmas = new JArray();
- joTmp.HospitalDr = Global.inf.hospitalDr;
- joTmp.InterfaceDr = directoryDr;
- if (serviceCode == "09010043")
- {
- joTmp.Type = directoryCode;
- }
- else
- {
- joTmp.Code = directoryCode;
- }
-
- joTmp.Name = directoryName;
- joTmp.VerNO = verNO;
- joTmp.ApprovalNO = approvalNO;
- jaParmas.Add(joTmp);
- joInput.Add("params", JArray.FromObject(jaParmas));
- JArray jaPagination = new JArray();
- joTmp = new JObject();
- joTmp.pageSize = pageSize;
- joTmp.currentPage = currentPage;
- joTmp.sortColumn = "";
- joTmp.sortOrder = "";
- joTmp.hisType = directoryType;
- jaPagination.Add(joTmp);
- joInput.Add("pagination", JArray.FromObject(jaPagination));
- return invoker.invokeInsuService(joInput.ToString(), "查询医保目录分页");
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "getDirectoryByPagination", ex.Message);
- }
- }
- /// <summary>
- /// 根据HisType获取当前目录最大版本号
- /// </summary>
- /// <param name="directoryType"></param>
- /// <returns></returns>
- public JObject getDirectoryMaxVersionNO(int directoryType)
- {
- try
- {
- dynamic joParam = new JObject();
- joParam.HospitalDr = Global.inf.hospitalDr;
- joParam.InterfaceDr = Global.inf.interfaceDr;
- joParam.HisType = "";
- if (directoryType == 0)
- {
- joParam.directoryType = "Directory";
- }
- if (directoryType == 7)
- {
- joParam.directoryType = "LimitPrice";
- }
- if (directoryType == 6)
- {
- joParam.directoryType = "SelfpayProportion";
- }
- JObject joInparam = JsonHelper.setIrisInpar("09010037", joParam);
- JObject joRtn = invoker.invokeInsuService(joInparam.ToString(), "获取最大版本号");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "获取版本号异常:", ex.Message);
- }
- }
- public JObject insertDirectory(JArray jaParam)
- {
- JObject joIn = new JObject();
- JObject joRtn = new JObject();
- string outParam = "";
- try
- {
- joIn.Add(new JProperty("params", jaParam));
- joIn.Add("code", "09010035");
- joIn.Add("updateUserID", Global.user.ID);
- string sInput = joIn.ToString();
- joRtn = invoker.invokeInsuService(sInput, "插入医保目录");
- outParam = joRtn.ToString();
- return joRtn;
- }
- catch (Exception ex)
- {
- joRtn = JsonHelper.setExceptionJson(-1, "PTMedicalInsurance.Services.MIIrisServices.insertDirectory", ex.Message);
- outParam = joRtn.ToString();
- return joRtn;
- }
- }
- public JObject insertDictionary(JObject joData)
- {
- try
- {
- JObject joInparam = JsonHelper.setIrisInpar("09010073", joData);
- JObject joRtn = invoker.invokeInsuService(joInparam.ToString(), "插入字典表");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "插入字典表异常:", ex.Message);
- }
- }
- public JObject insertDictionaryDataDetail(JArray jaData)
- {
- try
- {
- dynamic joParam = new JObject();
- joParam.HospitalDr = Global.inf.hospitalDr;
- joParam.InterfaceDr = Global.inf.interfaceDr;
- JObject joInparam = JsonHelper.setIrisInpar("09010074", jaData);
- JObject joRtn = invoker.invokeInsuService(joInparam.ToString(), "插入字典明细表");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "插入字典明细表异常:", ex.Message);
- }
- }
- public JObject UpdateLimitPrice(JArray jaParam)
- {
- JObject joIn = new JObject();
- JObject joRtn = new JObject();
- string outParam = "";
- try
- {
- joIn.Add(new JProperty("params", jaParam));
- joIn.Add("code", "09010084");
- joIn.Add("updateUserID", Global.user.ID);
- string sInput = joIn.ToString();
- joRtn = invoker.invokeInsuService(sInput, "更新目录限价表");
- outParam = joRtn.ToString();
- return joRtn;
- }
- catch (Exception ex)
- {
- joRtn = JsonHelper.setExceptionJson(-1, "UpdateLimitPrice", ex.Message);
- outParam = joRtn.ToString();
- return joRtn;
- }
- }
- public JObject UpdateSelfPercent(JArray jaParam)
- {
- JObject joIn = new JObject();
- JObject joRtn = new JObject();
- string outParam = "";
- try
- {
- joIn.Add(new JProperty("params", jaParam));
- joIn.Add("code", "09010085");
- joIn.Add("updateUserID", Global.user.ID);
- string sInput = joIn.ToString();
- joRtn = invoker.invokeInsuService(sInput, "更新自付比例表");
- outParam = joRtn.ToString();
- return joRtn;
- }
- catch (Exception ex)
- {
- joRtn = JsonHelper.setExceptionJson(-1, "UpdateSelfPercent", ex.Message);
- outParam = joRtn.ToString();
- return joRtn;
- }
- }
- /// <summary>
- /// 插入字典主表和子表
- /// </summary>
- /// <param name="jaData"></param>
- /// <returns></returns>
- public JObject insertDictionarys(JObject jaData)
- {
- try
- {
- dynamic joParam = new JObject();
- JObject joInparam = JsonHelper.setIrisInpar("09010074", jaData);
- JObject joRtn = invoker.invokeInsuService( joInparam.ToString(),"插入字典明细表");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "插入字典明细表异常:", ex.Message);
- }
- }
- public JObject ConvertHISDir(JObject joHisRtnDir)
- {
- try
- {
- //传给医保平台,进行对照匹配
- dynamic joParam = new JObject();
- joParam.TotalCount = joHisRtnDir["result"]["TotalCount"];
- joParam.HospitalDr = Global.inf.hospitalDr;
- joParam.InterfaceDr = Global.inf.interfaceDr;
- joParam.Data = joHisRtnDir["result"]["Data"];
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010057", joParam).ToString(), "转换HIS目录分页,显示对照状态及对照的医保编码");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "转换HIS目录分页异常:", ex.Message);
- }
- }
- public JObject GetMappedHISDir(JArray jaPagination, JArray jaParams)
- {
- try
- {
- //传给医保平台,进行对照匹配
- dynamic joParam = new JObject();
- joParam.pagination = jaPagination;
- joParam.session = Global.curEvt.jaSession;
- joParam.Add("params", jaParams);
- joParam.code = "09010058";
- JObject joRtn = invoker.invokeInsuService(joParam.ToString(), "获取已对照目录分页");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "获取已对照目录分页异常:", ex.Message);
- }
- }
- public JObject GetNoMappHISDir(JObject joHisRtnDir)
- {
- try
- {
- //传给医保平台,进行对照匹配
- dynamic joParam = new JObject();
- joParam.TotalCount = joHisRtnDir["result"]["TotalCount"];
- joParam.HospitalDr = Global.inf.hospitalDr;
- joParam.InterfaceDr = Global.inf.interfaceDr;
- joParam.Data = joHisRtnDir["result"]["Data"];
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010088", joParam).ToString(), "获取未对照目录");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "获取未对照目录异常:", ex.Message);
- }
- }
- public JObject UpdateDirectoryBySelf(JObject joIn)
- {
- try
- {
- JObject joParam = (JObject)joIn.DeepClone();
- joParam.Add("updateUserID", Global.user.ID);
- joParam.Add("HospitalDr", Global.inf.hospitalDr);
- joParam.Add("InterfaceDr", Global.inf.interfaceDr);
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010035", joParam).ToString(), "手动修改医保目录表");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "手动修改医保目录表异常:", ex.Message);
- }
- }
- #endregion
- public JObject QueryTransactionLog(JObject joSqlStr)
- {
- try
- {
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010060", joSqlStr).ToString(), "查询交易日志(冲正)");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "查询交易日志(冲正)异常:", ex.Message);
- }
- }
- public JObject QuerySettlementInfo(JObject joSqlStr)
- {
- try
- {
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010059", joSqlStr).ToString(), "查询结算信息");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "查询结算信息异常:", ex.Message);
- }
- }
- public JObject DynamicQuerySettlInfo(JObject joSqlStr)
- {
- try
- {
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010081", joSqlStr).ToString(), "动态查询结算信息");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "查询结算信息异常:", ex.Message);
- }
- }
- public JObject DynamicQuery(JObject joSqlStr,string eventName)
- {
- try
- {
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010081", joSqlStr).ToString(), eventName);
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, $"{eventName}异常:", ex.Message);
- }
- }
- public JObject QuerySettlementSumInfo(JObject joSqlStr)
- {
- try
- {
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010061", joSqlStr).ToString(), "查询结算信息");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "查询结算信息异常:", ex.Message);
- }
- }
- /// <summary>
- /// 获取指定字典信息
- /// </summary>
- /// <returns></returns>
- public JObject getSpecDictionary(string interfaceDr, string dicType)
- {
- 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 + "' ";
- 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>
- /// 获取指定字典信息
- /// </summary>
- /// <returns></returns>
- public JObject getSpecDictionary(string interfaceDr, string dicType,string dicCode)
- {
- string sqlStr = " ";
- 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 = '" + dicCode + "' ";
-
- 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(), "查询指定字典信息");
- }
- public JObject DynamicQueryPatCurrentInsuInfo(JObject joSqlStr)
- {
- try
- {
- InvokeHelper invoker = new InvokeHelper();
- JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010082", joSqlStr).ToString(), "动态查询患者就诊参保信息");
- return joRtn;
- }
- catch (Exception ex)
- {
- return JsonHelper.setExceptionJson(-1, "查询结算信息异常:", ex.Message);
- }
- }
- }
- }
|