123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741 |
- package sg
-
- import (
- "archive/zip"
- "bytes"
- "encoding/json"
- "fmt"
- "gdyb/controllers"
- "gdyb/enums"
- "gdyb/models"
- "gdyb/service"
- "gdyb/utils"
- "github.com/astaxie/beego"
- "github.com/axgle/mahonia"
- "github.com/jinzhu/gorm"
- "github.com/shopspring/decimal"
- "io"
- "io/ioutil"
- "math/rand"
- "net/http"
- "os"
- "path/filepath"
- "regexp"
- "strconv"
- "strings"
- "syscall"
- "time"
- "unsafe"
- )
-
- type HisApiController struct {
- controllers.BaseAuthAPIController
- }
-
- func HisManagerApiRegistRouters() {
- //挂号
- beego.Router("/api/register/get", &HisApiController{}, "get:GetRegisterInfo")
- //上传就诊信息-上传明细-结算
- beego.Router("/api/upload/get", &HisApiController{}, "get:GetUploadInfo")
- //查询
- beego.Router("/api/settle/query", &HisApiController{}, "get:GetSettleAccounts")
- //对总账
- beego.Router("/api/checkaccount/get", &HisApiController{}, "get:GetCheckAccount")
- //对明细
- beego.Router("/api/checkdetailaccount/get", &HisApiController{}, "get:GetCheckDetailAccount")
- //退费,退明细
- beego.Router("/api/refund/post", &HisApiController{}, "get:Refund")
- //退号
- beego.Router("/api/refundnumber/post", &HisApiController{}, "get:RefundNumber")
- //退明细
- beego.Router("/api/refunddetail/post", &HisApiController{}, "get:RefundDetail")
- //上传就诊信息-上传明细-预结算
- beego.Router("/api/presettle/get", &HisApiController{}, "get:GetPreUploadInfo")
-
- beego.Router("/api/treatment/check", &HisApiController{}, "get:CheckTreatment")
- beego.Router("/api/org/info", &HisApiController{}, "get:GetOrgInfo")
- beego.Router("/api/readcard", &HisApiController{}, "get:ReadCard")
- beego.Router("/api/310", &HisApiController{}, "get:Check310")
- beego.Router("/api/390", &HisApiController{}, "get:Check390")
- beego.Router("/api/patient/info", &HisApiController{}, "get:GetPatientInfo")
- beego.Router("/api/checkcode/get", &HisApiController{}, "get:GetCheckCode")
- beego.Router("/api/uncheckcode/get", &HisApiController{}, "get:UnCheckCode")
- beego.Router("/api/psn/putonrecord", &HisApiController{}, "get:PsnPutOnRecord")
- beego.Router("/api/psn/unputonrecord", &HisApiController{}, "get:PsnUnPutOnRecord")
- beego.Router("/api/psn/ncds/putonrecord", &HisApiController{}, "get:PsnPutNCDSOnRecord")
- beego.Router("/api/psn/ncds/unputonrecord", &HisApiController{}, "get:PsnPutUnNCDSOnRecord")
- beego.Router("/api/reversal", &HisApiController{}, "get:ReversalData")
- beego.Router("/api/reversal/other", &HisApiController{}, "get:ReversalOtherData")
- beego.Router("/api/settlelist/get", &HisApiController{}, "get:GetSettleList")
- beego.Router("/api/settlelisthosptial/get", &HisApiController{}, "get:GetSettleListHospital")
-
- beego.Router("/api/pwd/check", &HisApiController{}, "get:CheckCardPWD")
- beego.Router("/api/insutype/check", &HisApiController{}, "get:CheckInsutype")
- beego.Router("/api/batchsettlelist/get", &HisApiController{}, "get:GetBatchSettleList")
- beego.Router("/api/psn/info", &HisApiController{}, "get:GetPsnNcdsInfo")
- beego.Router("/api/allopatry/refund", &HisApiController{}, "post:RefundAllopatry")
- beego.Router("/api/check", &HisApiController{}, "get:Check")
- //beego.Router("/api/check3101", &HisApiController{}, "get:Check3101")
- //beego.Router("/api/check3102", &HisApiController{}, "get:Check3102")
-
- beego.Router("/90990", &HisApiController{}, "get:CheckCardPWDTwo")
- beego.Router("/9001", &HisApiController{}, "get:Get9001")
-
- //beego.Router("/api/readelecard", &HisApiController{}, "get:ReadEleCard")
-
- beego.Router("/api/3202", &HisApiController{}, "get:Post3202")
-
- beego.Router("/api/3501", &HisApiController{}, "post:Post3501")
-
- beego.Router("/api/readele", &HisApiController{}, "get:ReadEleToken")
-
- }
-
- type Result3101 struct {
- Infcode string `json:"infcode"`
- InfRefmsgid string `json:"inf_refmsgid"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Enctype string `json:"enctype"`
- Signtype string `json:"signtype"`
- ErrMsg string `json:"err_msg"`
- Output struct {
- Result []struct {
- JudgeResultDetailDtos []struct {
- VolaItemType string `json:"vola_item_type"`
- MdtrtID string `json:"mdtrt_id"`
- JrdID string `json:"jrd_id"`
- PatnID string `json:"patn_id"`
- RxID string `json:"rx_id"`
- VolaAmt interface{} `json:"vola_amt"`
- } `json:"judge_result_detail_dtos"`
- RuleID string `json:"rule_id"`
- VolaEvid string `json:"vola_evid"`
- MdtrtID string `json:"mdtrt_id"`
- RuleName string `json:"rule_name"`
- VolaAmtStas string `json:"vola_amt_stas"`
- JrID string `json:"jr_id"`
- PatnID string `json:"patn_id"`
- SevDeg string `json:"sev_deg"`
- VolaAmt float64 `json:"vola_amt"`
- VolaBhvrType string `json:"vola_bhvr_type"`
- VolaCont string `json:"vola_cont"`
- } `json:"result"`
- } `json:"output"`
- }
-
- func (c *HisApiController) ReadEleToken() {
- admin_user_id, _ := c.GetInt64("admin_user_id")
- his_patient_id, _ := c.GetInt64("his_patient_id")
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id)
-
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- tokens := ReadEleCard(admin_user_id, c.GetAdminUserInfo().CurrentOrgId, c)
- if len(tokens) > 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "读取成功",
- })
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": "读取失败",
- })
- }
-
- } else if miConfig.MdtrtareaAdmvs == "440305" {
- if initFlag == 0 {
- c.TestGetBasBaseInit()
- }
- token := c.GetEleBaseInfo()
- token = Remove0000(token)
- if len(token) > 0 {
- result2, requestLog2 := service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, token)
- saveLog(result2, requestLog2, "1101", "获取人员信息")
- var res ResultTwo
- if err := json.Unmarshal([]byte(result2), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: "",
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "读取成功",
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": "读取失败",
- })
- }
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- _, outPutInfo, errMsg := service.ReadEleCardForSettle(miConfig.Code, roles.UserName, roles.AdminUserId)
- if len(errMsg) == 0 {
- type ELeData struct {
- Data struct {
- IdNo string `json:"idNo"`
- IdType string `json:"idType"`
- UserName string `json:"userName"`
- EcToken string `json:"ecToken"`
- InsuOrg string `json:"insuOrg"`
- Gender string `json:"gender"`
- Birthday string `json:"birthday"`
- Nationality string `json:"nationality"`
- Email string `json:"email"`
- Extra string `json:"extra"`
- } `json:"data"`
- Code int `json:"code"`
- Message string `json:"message"`
- }
-
- var ele ELeData
- err := json.Unmarshal([]byte(outPutInfo), &ele)
- if err != nil {
- utils.ErrorLog("解析失败:%v", err)
- }
- token := ele.Data.EcToken
-
- if len(token) > 0 {
- psn := &models.HisPsn{
- PsnNo: his.PsnNo,
- Age: 0,
- PatientId: his.PatientId,
- Certno: his.Certno,
- Brdy: his.Brdy,
- Gend: his.Gend,
- Naty: his.Naty,
- PsnCertType: his.PsnCertType,
- PsnName: his.PsnName,
- Idetinfo: his.Idetinfo,
- Insuinfo: his.Iinfo,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: outPutInfo,
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
-
- }
-
- if len(token) > 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "读取成功",
- })
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": "读取失败",
- })
- }
-
- }
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- if initFlag == 0 {
- c.TestGetJiangXiBasBaseInit()
- }
- json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId)
- type ELeData struct {
- Data struct {
- IdNo string `json:"idNo"`
- IdType string `json:"idType"`
- UserName string `json:"userName"`
- EcToken string `json:"ecToken"`
- InsuOrg string `json:"insuOrg"`
- Gender string `json:"gender"`
- Birthday string `json:"birthday"`
- Nationality string `json:"nationality"`
- Email string `json:"email"`
- Extra string `json:"extra"`
- } `json:"data"`
- Code int `json:"code"`
- Message string `json:"message"`
- }
-
- var ele ELeData
- err := json.Unmarshal([]byte(json_result), &ele)
- if err != nil {
- utils.ErrorLog("解析失败:%v", err)
- }
- token := ele.Data.EcToken
- token = Remove0000(token)
- fmt.Println(ele.Data.UserName)
- result2, requestLog2 := service.Jxyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName)
-
- saveLog(result2, requestLog2, "1101", "获取人员信息")
- var res ResultTwo
- if err := json.Unmarshal([]byte(result2), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: "",
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- if initFlag == 0 {
- c.TestGetJiangXiBasBaseInit()
- }
- json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId)
- type ELeData struct {
- Data struct {
- IdNo string `json:"idNo"`
- IdType string `json:"idType"`
- UserName string `json:"userName"`
- EcToken string `json:"ecToken"`
- InsuOrg string `json:"insuOrg"`
- Gender string `json:"gender"`
- Birthday string `json:"birthday"`
- Nationality string `json:"nationality"`
- Email string `json:"email"`
- Extra string `json:"extra"`
- } `json:"data"`
- Code int `json:"code"`
- Message string `json:"message"`
- }
-
- var ele ELeData
- err := json.Unmarshal([]byte(json_result), &ele)
- if err != nil {
- utils.ErrorLog("解析失败:%v", err)
- }
- token := ele.Data.EcToken
- token = Remove0000(token)
- fmt.Println(ele.Data.UserName)
- result2, requestLog2 := service.Hnyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName)
-
- saveLog(result2, requestLog2, "1101", "获取人员信息")
- var res ResultTwo
- if err := json.Unmarshal([]byte(result2), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: "",
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- }
- }
- func (c *HisApiController) Get9001() {
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, 185)
-
- if miConfig.MdtrtareaAdmvs == "350500" {
- service.GetFjAuthorizationInfo(miConfig.Code)
- } else {
- result, _ := service.Gdyb9001(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1669)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- var res models.Result9001
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- }
- func Check3101ForOne(c *HisApiController, patient_id int64, his models.VMHisPatient, admin_user_id int64, trig_scen string, record_time string, prescriptions []*models.HisPrescription) (res2 Result3101) {
- var res Result3101
- adminUser := c.GetAdminUserInfo()
- roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- //his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- //record_time := c.GetString("record_time")
- //trig_scen := c.GetString("trig_scen")
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return res
- }
- recordDateTime := theTime.Unix()
-
- var patientPrescription models.HisPrescriptionInfo
- //patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
- //if patientPrescription.ID == 0 {
- patientPrescription, _ = service.FindLastPatientPrescriptionInfoTwo(adminUser.CurrentOrgId, patient_id, recordDateTime)
- //}
- department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
- doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId)
- //
- diagnosis_ids := strings.Split(patientPrescription.Diagnosis, ",")
-
- //prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
-
- var pp models.PublicParams
- pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- pp.FixmedinsName = miConfig.OrgName
- pp.FixmedinsCode = miConfig.Code
-
- pp.RequestUrl = miConfig.Url
- pp.Cainfo = miConfig.Cainfo
- pp.SecretKey = miConfig.SecretKey
- pp.AccessKey = miConfig.AccessKey
- pp.OpterName = roles.UserName
-
- var config []*models.HisXtDiagnoseConfig
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- config = append(config, &diagnosisConfig)
- }
-
- var pd models.PatientDtos
- pd.PatnID = his.PsnNo
- pd.PatnName = his.Name
- pd.Gend = his.Gend
- pd.Brdy = his.Brdy
- pd.Poolarea = miConfig.MdtrtareaAdmvs
- pd.CurrMdtrtID = his.Number
-
- var fed models.FsiEncounterDtos
- fed.MdtrtID = his.Number
- fed.MedinsID = miConfig.Code
- fed.MedinsName = miConfig.OrgName
- fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs
- fed.MedMdtrtType = "1"
- fed.MedinsType = "1"
- fed.MedinsLv = "11"
- tm := time.Unix(his.RecordDate, 0)
- s_tm := tm.Format("2006-01-02 15:04:05")
- fed.AdmDate = s_tm
- fed.DscgDate = s_tm
- fed.DscgMainDiseCodg = config[0].CountryCode
- fed.DscgMainDiseName = config[0].CountryContentName
- //诊断信息
- var fdds []*models.FsiDiagnoseDtos
- for index, item := range config {
- if index == 0 {
- var fdd models.FsiDiagnoseDtos
- fdd.DiseID = strconv.FormatInt(item.ID, 10)
- fdd.InoutDiseType = "1"
- fdd.MaindiseFlag = "1"
- fdd.DiseDate = s_tm
- fdd.DiasSrtNo = "1"
- fdd.DiseName = item.CountryContentName
- fdd.DiseCodg = item.CountryCode
- fdds = append(fdds, &fdd)
-
- } else {
- var fdd models.FsiDiagnoseDtos
- fdd.DiseID = strconv.FormatInt(item.ID, 10)
- fdd.InoutDiseType = "1"
- fdd.MaindiseFlag = "1"
- fdd.DiseDate = s_tm
- fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10)
- fdd.DiseName = item.CountryContentName
- fdd.DiseCodg = item.CountryCode
- fdds = append(fdds, &fdd)
- }
- }
- fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10)
- fed.AdmDeptCodg = strconv.FormatInt(department.ID, 10)
- fed.AdmDeptName = department.Name
- fed.DscgDeptCodg = strconv.FormatInt(department.ID, 10)
- fed.DscgDeptName = department.Name
- fed.MedMdtrtType = "1"
- fed.MedType = "11"
- //if his.Insutype == "390" {
- // fed.MedType = "1402"
- //} else {
- // fed.MedType = "9933"
- //}
- var orders []*models.FsiOrderDtos
-
- if trig_scen == "2" {
- //处方医嘱信息
- for _, item := range prescriptions {
- for _, subItem := range item.HisDoctorAdviceInfo {
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber
- order.HosplistName = subItem.BaseDrugLib.DrugName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber
- order.HosplistName = subItem.BaseDrugLib.DrugName
- order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price))
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
- }
- for _, subItem := range item.HisPrescriptionProject {
- if subItem.Type == 2 {
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.HisProject.MedicalCode
- order.HosplistName = subItem.HisProject.ProjectName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.HisProject.MedicalCode
- order.HosplistName = subItem.HisProject.ProjectName
- order.Cnt = subItem.Count
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt)
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
-
- }
- if subItem.Type == 3 {
-
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber
- order.HosplistName = subItem.GoodInfo.GoodName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber
- order.HosplistName = subItem.GoodInfo.GoodName
- order.Cnt = subItem.Count
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt)
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
-
- }
- }
- }
- //处方医嘱信息
- }
- fed.MatnStas = "0"
- fed.MedfeeSumamt = "0"
- fed.OwnpayAmt = "0"
- fed.SelfpayAmt = "0"
- fed.AcctPayamt = "0"
- fed.MaAmt = "0"
- fed.HifpPayamt = "0"
- fed.SetlTotlnum = "1"
- fed.Insutype = his.Insutype
- fed.ReimFlag = "0"
- fed.OutSetlFlag = "0"
-
- var fopd []*models.FsiOperationDtosData
- data := make(map[string]interface{})
- data["fed"] = fed
- data["fdd"] = fdds
- data["fod"] = orders
- data["pd"] = pd
- data["pp"] = pp
- data["fopd"] = fopd
- data["trig_scen"] = trig_scen
- fmt.Println(data)
- fmt.Println(fed)
- fmt.Println(fdds)
- fmt.Println(orders)
- fmt.Println(pd)
- fmt.Println(pp)
- fmt.Println(fopd)
-
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3101", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3101", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- fmt.Println(respJSON)
- result, _ := json.Marshal(respJSON)
- fmt.Println(result)
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
-
- return res
-
- }
-
- func Check3101(c *HisApiController, patient_id int64, his_patient_id int64, admin_user_id int64, trig_scen string, record_time string, prescriptions []*models.HisPrescription) (res Result3101) {
-
- adminUser := c.GetAdminUserInfo()
- roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- //record_time := c.GetString("record_time")
- //trig_scen := c.GetString("trig_scen")
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return res
- }
- recordDateTime := theTime.Unix()
-
- var patientPrescription models.HisPrescriptionInfo
- patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
- if patientPrescription.ID == 0 {
- patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime)
- }
- department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
- doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId)
- //
- diagnosis_ids := strings.Split(patientPrescription.Diagnosis, ",")
-
- //prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
-
- var pp models.PublicParams
- pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- pp.FixmedinsName = miConfig.OrgName
- pp.FixmedinsCode = miConfig.Code
-
- pp.RequestUrl = miConfig.Url
- pp.Cainfo = miConfig.Cainfo
- pp.SecretKey = miConfig.SecretKey
- pp.AccessKey = miConfig.AccessKey
- pp.OpterName = roles.UserName
-
- var config []*models.HisXtDiagnoseConfig
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- config = append(config, &diagnosisConfig)
- }
-
- var pd models.PatientDtos
- pd.PatnID = his.PsnNo
- pd.PatnName = his.Name
- pd.Gend = his.Gend
- pd.Brdy = his.Brdy
- pd.Poolarea = his.InsuplcAdmdvs
- pd.CurrMdtrtID = his.Number
-
- var fed models.FsiEncounterDtos
- fed.MdtrtID = his.Number
- fed.MedinsID = miConfig.Code
- fed.MedinsName = miConfig.OrgName
- fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs
- fed.MedMdtrtType = "1"
- fed.MedinsType = "1"
- fed.MedinsLv = "11"
- tm := time.Unix(his.RecordDate, 0)
- s_tm := tm.Format("2006-01-02 15:04:05")
- fed.AdmDate = s_tm
- fed.DscgDate = s_tm
- fed.DscgMainDiseCodg = config[0].CountryCode
- fed.DscgMainDiseName = config[0].CountryContentName
- //诊断信息
- var fdds []*models.FsiDiagnoseDtos
- for index, item := range config {
- if index == 0 {
- var fdd models.FsiDiagnoseDtos
- fdd.DiseID = strconv.FormatInt(item.ID, 10)
- fdd.InoutDiseType = "1"
- fdd.MaindiseFlag = "1"
- fdd.DiseDate = s_tm
- fdd.DiasSrtNo = "1"
- fdd.DiseName = item.CountryContentName
- fdd.DiseCodg = item.CountryCode
- fdds = append(fdds, &fdd)
-
- } else {
- var fdd models.FsiDiagnoseDtos
- fdd.DiseID = strconv.FormatInt(item.ID, 10)
- fdd.InoutDiseType = "1"
- fdd.MaindiseFlag = "1"
- fdd.DiseDate = s_tm
- fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10)
- fdd.DiseName = item.CountryContentName
- fdd.DiseCodg = item.CountryCode
- fdds = append(fdds, &fdd)
- }
- }
- fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10)
- fed.AdmDeptCodg = strconv.FormatInt(department.ID, 10)
- fed.AdmDeptName = department.Name
- fed.DscgDeptCodg = strconv.FormatInt(department.ID, 10)
- fed.DscgDeptName = department.Name
- fed.MedMdtrtType = "1"
- fed.MedType = "11"
- //if his.Insutype == "390" {
- // fed.MedType = "1402"
- //} else {
- // fed.MedType = "9933"
- //}
- var orders []*models.FsiOrderDtos
-
- if trig_scen == "2" {
- //处方医嘱信息
- for _, item := range prescriptions {
- for _, subItem := range item.HisDoctorAdviceInfo {
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber
- order.HosplistName = subItem.BaseDrugLib.DrugName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber
- order.HosplistName = subItem.BaseDrugLib.DrugName
- order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price))
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
- }
- for _, subItem := range item.HisPrescriptionProject {
- if subItem.Type == 2 {
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.HisProject.MedicalCode
- order.HosplistName = subItem.HisProject.ProjectName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.HisProject.MedicalCode
- order.HosplistName = subItem.HisProject.ProjectName
- order.Cnt = subItem.Count
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt)
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
-
- }
- if subItem.Type == 3 {
-
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber
- order.HosplistName = subItem.GoodInfo.GoodName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber
- order.HosplistName = subItem.GoodInfo.GoodName
- order.Cnt = subItem.Count
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt)
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
-
- }
- }
- }
- //处方医嘱信息
- }
- fed.MatnStas = "0"
- fed.MedfeeSumamt = "0"
- fed.OwnpayAmt = "0"
- fed.SelfpayAmt = "0"
- fed.AcctPayamt = "0"
- fed.MaAmt = "0"
- fed.HifpPayamt = "0"
- fed.SetlTotlnum = "1"
- fed.Insutype = his.Insutype
- fed.ReimFlag = "0"
- fed.OutSetlFlag = "0"
-
- var fopd []*models.FsiOperationDtosData
- data := make(map[string]interface{})
- data["fed"] = fed
- data["fdd"] = fdds
- data["fod"] = orders
- data["pd"] = pd
- data["pp"] = pp
- data["fopd"] = fopd
- data["trig_scen"] = trig_scen
- fmt.Println(data)
- fmt.Println(fed)
- fmt.Println(fdds)
- fmt.Println(orders)
- fmt.Println(pd)
- fmt.Println(pp)
- fmt.Println(fopd)
-
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3101", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3101", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
-
- return res
-
- }
-
- func Check3102(c *HisApiController, patient_id int64, his_patient_id int64, admin_user_id int64, trig_scen string, order_id int64) (res Result3101) {
- ////patient_id, _ := c.GetInt64("patient_id")
- //order_id, _ := c.GetInt64("order_id")
- ////his_patient_id, _ := c.GetInt64("his_patient_id")
- ////admin_user_id, _ := c.GetInt64("admin_user_id")
- //trig_scen := c.GetString("trig_scen")
-
- adminUser := c.GetAdminUserInfo()
- roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- record_time := c.GetString("record_time")
- order, _ := service.GetHisOrderByID(order_id)
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordDateTime := theTime.Unix()
-
- var patientPrescription models.HisPrescriptionInfo
- patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
- if patientPrescription.ID == 0 {
- patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime)
- }
- department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
- doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId)
- //
- diagnosis_ids := strings.Split(his.Diagnosis, ",")
-
- prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
-
- var pp models.PublicParams
- pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- pp.FixmedinsName = miConfig.OrgName
- pp.FixmedinsCode = miConfig.Code
- pp.RequestUrl = miConfig.Url
- pp.Cainfo = miConfig.Cainfo
- pp.SecretKey = miConfig.SecretKey
- pp.AccessKey = miConfig.AccessKey
- pp.OpterName = roles.UserName
-
- var config []*models.HisXtDiagnoseConfig
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- config = append(config, &diagnosisConfig)
- }
-
- var pd models.PatientDtos
- pd.PatnID = his.PsnNo
- pd.PatnName = his.Name
- pd.Gend = his.Gend
- pd.Brdy = his.Brdy
- pd.Poolarea = his.InsuplcAdmdvs
- pd.CurrMdtrtID = his.Number
-
- var fed models.FsiEncounterDtos
- fed.MdtrtID = his.Number
- fed.MedinsID = miConfig.Code
- fed.MedinsName = miConfig.OrgName
- fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs
- fed.MedMdtrtType = "1"
- fed.MedinsType = "1"
- fed.MedinsLv = "11"
- tm := time.Unix(his.RecordDate, 0)
- s_tm := tm.Format("2006-01-02 15:04:05")
- fed.AdmDate = s_tm
- fed.DscgDate = s_tm
- fed.DscgMainDiseCodg = config[0].CountryCode
- fed.DscgMainDiseName = config[0].CountryContentName
- //诊断信息
- var fdds []*models.FsiDiagnoseDtos
- for index, item := range config {
- if index == 0 {
- var fdd models.FsiDiagnoseDtos
- fdd.DiseID = strconv.FormatInt(item.ID, 10)
- fdd.InoutDiseType = "1"
- fdd.MaindiseFlag = "1"
- fdd.DiseDate = s_tm
- fdd.DiasSrtNo = "1"
- fdd.DiseName = item.CountryContentName
- fdd.DiseCodg = item.CountryCode
- fdds = append(fdds, &fdd)
-
- } else {
- var fdd models.FsiDiagnoseDtos
- fdd.DiseID = strconv.FormatInt(item.ID, 10)
- fdd.InoutDiseType = "1"
- fdd.MaindiseFlag = "1"
- fdd.DiseDate = s_tm
- fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10)
- fdd.DiseName = item.CountryContentName
- fdd.DiseCodg = item.CountryCode
- fdds = append(fdds, &fdd)
- }
- }
- fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10)
- fed.AdmDeptCodg = strconv.FormatInt(department.ID, 10)
- fed.AdmDeptName = department.Name
- fed.DscgDeptCodg = strconv.FormatInt(department.ID, 10)
- fed.DscgDeptName = department.Name
-
- fed.MedType = order.MedType
- //处方医嘱信息
- var orders []*models.FsiOrderDtos
- //for _, item := range prescriptions {
- // for _, subItem := range item.HisDoctorAdviceInfo {
- // var order models.FsiOrderDtos
- // order.RxID = strconv.FormatInt(item.ID, 10)
- // order.Rxno = strconv.FormatInt(item.ID, 10)
- // order.LongDrordFlag = "0"
- // order.HilistType = "1"
- // order.ChrgType = "1"
- // order.DrordBhvr = "-"
- // order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber
- // order.HosplistName = subItem.BaseDrugLib.DrugName
- // order.HilistLv = "1"
- // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64)
- // order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber
- // order.HosplistName = subItem.BaseDrugLib.DrugName
- // order.Cnt = strconv.FormatFloat(subItem.PrescribingNumber, 'E', -1, 64)
- // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64)
- // order.Sumamt = strconv.FormatFloat((subItem.Price * subItem.PrescribingNumber), 'E', -1, 64)
- // order.OwnpayAmt = ""
- // order.SelfpayAmt = ""
- // order.Spec = ""
- // order.SpecUnt = ""
- // order.DrordBegnDate = s_tm
- // order.DrordStopDate = ""
- // order.DrordDrCodg = "1"
- // order.DrordDeptName = department.Name
- // order.DrordDrCodg = "1"
- // order.DrordDrName = doctor_info.UserName
- // order.DrordDrProfttl = ""
- // order.CurrDrordFlag = "1"
- // orders = append(orders, &order)
- // }
- // for _, subItem := range item.HisPrescriptionProject {
- // if subItem.Type == 2 {
- // var order models.FsiOrderDtos
- // order.RxID = strconv.FormatInt(item.ID, 10)
- // order.Rxno = strconv.FormatInt(item.ID, 10)
- // order.LongDrordFlag = "0"
- // order.HilistType = "1"
- // order.ChrgType = "1"
- // order.DrordBhvr = "-"
- // order.HilistCode = subItem.HisProject.MedicalCode
- // order.HosplistName = subItem.HisProject.ProjectName
- // order.HilistLv = "1"
- // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64)
- // order.HosplistCode = subItem.HisProject.MedicalCode
- // order.HosplistName = subItem.HisProject.ProjectName
- // order.Cnt = subItem.Count
- // cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- //
- // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64)
- // order.Sumamt = strconv.FormatFloat((subItem.Price * cnt), 'E', -1, 64)
- // order.OwnpayAmt = ""
- // order.SelfpayAmt = ""
- // order.Spec = ""
- // order.SpecUnt = ""
- // order.DrordBegnDate = s_tm
- // order.DrordStopDate = ""
- // order.DrordDrCodg = "1"
- // order.DrordDeptName = department.Name
- // order.DrordDrCodg = "1"
- // order.DrordDrName = doctor_info.UserName
- // order.DrordDrProfttl = ""
- // order.CurrDrordFlag = "1"
- // orders = append(orders, &order)
- //
- // }
- // if subItem.Type == 3 {
- //
- // var order models.FsiOrderDtos
- // order.RxID = strconv.FormatInt(item.ID, 10)
- // order.Rxno = strconv.FormatInt(item.ID, 10)
- // order.LongDrordFlag = "0"
- // order.HilistType = "1"
- // order.ChrgType = "1"
- // order.DrordBhvr = "-"
- // order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber
- // order.HosplistName = subItem.GoodInfo.GoodName
- // order.HilistLv = "1"
- // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64)
- // order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber
- // order.HosplistName = subItem.GoodInfo.GoodName
- // order.Cnt = subItem.Count
- // cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64)
- // order.Sumamt = strconv.FormatFloat((subItem.Price * cnt), 'E', -1, 64)
- // order.OwnpayAmt = ""
- // order.SelfpayAmt = ""
- // order.Spec = ""
- // order.SpecUnt = ""
- // order.DrordBegnDate = s_tm
- // order.DrordStopDate = ""
- // order.DrordDrCodg = "1"
- // order.DrordDeptName = department.Name
- // order.DrordDrCodg = "1"
- // order.DrordDrName = doctor_info.UserName
- // order.DrordDrProfttl = ""
- // order.CurrDrordFlag = "1"
- // orders = append(orders, &order)
- //
- // }
- // }
- //}
- for _, item := range prescriptions {
- for _, subItem := range item.HisDoctorAdviceInfo {
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber
- order.HosplistName = subItem.BaseDrugLib.DrugName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber
- order.HosplistName = subItem.BaseDrugLib.DrugName
- order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price))
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
- }
- for _, subItem := range item.HisPrescriptionProject {
- if subItem.Type == 2 {
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.HisProject.MedicalCode
- order.HosplistName = subItem.HisProject.ProjectName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.HisProject.MedicalCode
- order.HosplistName = subItem.HisProject.ProjectName
- order.Cnt = subItem.Count
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt)
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
-
- }
- if subItem.Type == 3 {
-
- var order models.FsiOrderDtos
- order.RxID = strconv.FormatInt(item.ID, 10)
- order.Rxno = strconv.FormatInt(item.ID, 10)
- order.LongDrordFlag = "0"
- order.HilistType = "1"
- order.ChrgType = "1"
- order.DrordBhvr = "-"
- order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber
- order.HosplistName = subItem.GoodInfo.GoodName
- order.HilistLv = "1"
- order.HilistPric = fmt.Sprintf("%.2f", subItem.Price)
- order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber
- order.HosplistName = subItem.GoodInfo.GoodName
- order.Cnt = subItem.Count
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- order.Pric = fmt.Sprintf("%.2f", subItem.Price)
- order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt)
- order.OwnpayAmt = ""
- order.SelfpayAmt = ""
- order.Spec = ""
- order.SpecUnt = ""
- order.DrordBegnDate = s_tm
- order.DrordStopDate = ""
- order.DrordDrCodg = "1"
- order.DrordDeptName = department.Name
- order.DrordDrCodg = "1"
- order.DrordDrName = doctor_info.UserName
- order.DrordDrProfttl = ""
- order.CurrDrordFlag = "1"
- orders = append(orders, &order)
-
- }
- }
- }
- //处方医嘱信息
- fed.MatnStas = "0"
- fed.MedfeeSumamt = fmt.Sprintf("%.2f", order.MedfeeSumamt)
- fed.OwnpayAmt = fmt.Sprintf("%.2f", order.FulamtOwnpayAmt)
- fed.SelfpayAmt = fmt.Sprintf("%.2f", order.PreselfpayAmt)
- fed.AcctPayamt = fmt.Sprintf("%.2f", order.AcctPay)
- fed.MaAmt = fmt.Sprintf("%.2f", order.MafPay)
- fed.HifpPayamt = fmt.Sprintf("%.2f", order.HifpPay)
- fed.SetlTotlnum = "1"
- fed.Insutype = his.Insutype
- fed.ReimFlag = "0"
- fed.OutSetlFlag = "0"
-
- var fopd []*models.FsiOperationDtosData
- data := make(map[string]interface{})
- data["fed"] = fed
- data["fdd"] = fdds
- data["fod"] = orders
- data["pd"] = pd
- data["pp"] = pp
- data["fopd"] = fopd
- data["trig_scen"] = trig_scen
-
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3102", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3102", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return res
- }
-
- return res
- //手术操作集合
-
- //手术操作集合
-
- }
-
- func (c *HisApiController) Check() {
- psn_no := c.GetString("psn_no")
- in := c.GetString("in")
- mt := c.GetString("mt")
-
- baseParams := models.BaseParams{
- SecretKey: "MSDBYGxXm1Mtyi3PtOUB7n1ktcxwyW57",
- FixmedinsCode: "H15049901371",
- InsuplcAdmdvs: "150499",
- MdtrtareaAdmvs: "150499",
- OrgName: "赤峰费森血液透析中心",
- Doctor: "1111",
- }
- service.Gdyb2001(baseParams, psn_no, in, mt)
-
- }
- func (c *HisApiController) GetPsnNcdsInfo() {
- admin_user_id, _ := c.GetInt64("admin_user_id")
- patient_id, _ := c.GetInt64("patient_id")
-
- id, _ := c.GetInt64("id")
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- //config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- //patient, _ := service.GetPatientByID(c.GetAdminUserInfo().CurrentOrgId, id)
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- psn_record, _ := service.GetPsnNCDSRecordById(id)
- //
- //if psn_record.ID == 0 {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorPsnRecordNoExistWrong)
- // return
- //}
-
- var res Result5301
- var res10265 Result5301For10265
-
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
-
- psn_info, _ := service.GetPsnByPatientId(patient_id)
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/5301?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&psn_no=" + psn_info.PsnNo + "&cainfo=" + miConfig.Cainfo
-
- } else {
- api = "http://192.168.5.251:9532/" + "jsyb/5301?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&psn_no=" + psn_info.PsnNo + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- p, _ := service.GetHisPatientById(patient_id)
-
- result, _ := service.Jxyb5301(p.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, "")
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- p, _ := service.GetHisPatientById(patient_id)
-
- result, _ := service.Hnyb5301(p.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, "")
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
-
- result := service.Gdyb5301(psn_record.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes, &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = res10265.InfRefmsgid
- res.Output = res10265.Output
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- } else {
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- }
-
- if res.Infcode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "result": res.Output.Result,
- })
- }
-
- }
- func (c *HisApiController) CheckInsutype() {
- his_patient_id, _ := c.GetInt64("his_patient_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- result := service.Gdyb90100(his.PsnNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res Result90100
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode != 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- } else {
- fmt.Println(res)
-
- }
-
- }
- func (c *HisApiController) CheckCardPWD() {
- card_pwd := c.GetString("card_pwd")
- his_patient_id, _ := c.GetInt64("his_patient_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id)
- psn, _ := service.GetPsnByPatientId(his.PatientId)
- bas := strings.Split(psn.CardInfo, "|")
- basNumber := bas[2]
- result := service.Gdyb90991(his.PsnNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, card_pwd, basNumber)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res Result90991
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode != 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- } else {
- if res.Output.Result.SscnoCheckStat == "0" {
- var msg string
- switch res.Output.Result.CardStat {
- case "00":
- msg = "未激活"
- break
- case "10":
- msg = "激活"
- break
- case "20":
- msg = "窗口挂失"
- break
- case "21":
- msg = "电话挂失"
- break
- case "22":
- msg = "单位网上申报挂失"
- break
- case "23":
- msg = "保健办挂失"
-
- break
- case "24":
- msg = "个人网上挂失"
-
- break
- case "25":
- msg = "网上服务大厅挂失"
- break
- case "30":
- msg = "注销"
- break
- case "40":
- msg = "回收"
- break
- case "99":
- msg = "制卡中(无效卡)"
- break
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": msg,
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "校验成功",
- })
- return
- }
- }
-
- }
-
- func (c *HisApiController) CheckCardPWDTwo() {
- //card_pwd := c.GetString("card_pwd")
- //his_patient_id, _ := c.GetInt64("his_patient_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
-
- result := service.Gdyb90991("44030000000629690364", miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "000000", "BDM421363")
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res Result90991
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode != 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- } else {
- if res.Output.Result.SscnoCheckStat == "0" {
- var msg string
- switch res.Output.Result.CardStat {
- case "00":
- msg = "未激活"
- break
- case "10":
- msg = "激活"
- break
- case "20":
- msg = "窗口挂失"
- break
- case "21":
- msg = "电话挂失"
- break
- case "22":
- msg = "单位网上申报挂失"
- break
- case "23":
- msg = "保健办挂失"
-
- break
- case "24":
- msg = "个人网上挂失"
-
- break
- case "25":
- msg = "网上服务大厅挂失"
- break
- case "30":
- msg = "注销"
- break
- case "40":
- msg = "回收"
- break
- case "99":
- msg = "制卡中(无效卡)"
- break
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": msg,
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "校验成功",
- })
- return
- }
- }
-
- }
-
- type ELeCertData struct {
- Data struct {
- Extra string `json:"extra"`
- IDNo string `json:"idNo"`
- IDType string `json:"idType"`
- EcToken string `json:"ecToken"`
- InsuOrg string `json:"insuOrg"`
- UserName string `json:"userName"`
- EcIndexNo string `json:"ecIndexNo"`
- Gender string `json:"gender"`
- Birthday string `json:"birthday"`
- Nationality string `json:"nationality"`
- Email string `json:"email"`
- } `json:"OutData"`
- }
-
- func (c *HisApiController) ReadCard() {
- id_card_type, _ := c.GetInt64("id_card_type")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- certificates, _ := c.GetInt64("certificates")
- roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
-
- switch id_card_type {
- case 1:
- if miConfig.MdtrtareaAdmvs == "421300" {
- var res ResultTwo
- api := "http://192.168.124.4:9532/" + "hbyb/1101?cert_no=" + "" +
- "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10)
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
-
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
-
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- }
- service.CreateHisPsn(psn)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": res.Output.Baseinfo.Certno,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName
- fmt.Println(api)
- } else {
- api = "http://192.168.5.251:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10)
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var status string
- status = respJSON["data"].(map[string]interface{})["status"].(string)
- card_type := respJSON["data"].(map[string]interface{})["type"].(string)
- //console.log()
- fmt.Println("type===")
-
- fmt.Println(card_type)
-
- var token string
- var res ResultTwo //1101结果
- var res10265 ResultTwo10265 //1101结果
- var card_info string //卡信息
- var busi_card_info string
-
- card_info = respJSON["data"].(map[string]interface{})["card_info"].(string)
- busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
-
- if status == "0" { //读卡成功
- if card_type == "1" {
-
- respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- } else {
- //var card_info string //卡信息
- //var busi_card_info string
-
- token = respJSON["data"].(map[string]interface{})["token"].(string)
- //busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
-
- //fmt.Println(card_info)
- //fmt.Println(busi_card_info)
-
- respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
-
- if card_type == "1" {
- bas := strings.Split(card_info, "|")
- basNumber := bas[2]
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: card_info,
- VerifyNumber: busi_card_info,
- }
- service.CreateHisPsn(psn)
-
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": basNumber,
- "insutype": insutype,
- })
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: card_info,
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- })
- }
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- } else { //读卡失败
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
-
- }
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- cardnum, cardCode, id_card_no, name, errmsg := c.GetFjBasBaseInfo()
-
- cardnum = DeleteExtraSpaceTwo(cardnum)
- cardCode = DeleteExtraSpaceTwo(cardCode)
- id_card_no = DeleteExtraSpaceTwo(id_card_no)
- name = DeleteExtraSpaceTwo(name)
- errmsg = DeleteExtraSpaceTwo(errmsg)
-
- cardnum = Remove0000(cardnum)
- cardCode = Remove0000(cardCode)
- id_card_no = Remove0000(id_card_no)
- name = Remove0000(name)
- errmsg = Remove0000(errmsg)
-
- basStr := cardnum + "|" + cardCode + "|" + id_card_no + "|" + name
- result, requestLog, errMsgLog := service.FJyb1101(cardnum, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, id_card_type, cardCode, certificates, miConfig.Url, miConfig.Cainfo, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- saveLog(result, requestLog, "1101", "获取人员信息")
- fmt.Println(errMsgLog)
-
- if len(errMsgLog) > 0 {
-
- } else {
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = errMsgLog
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(id_card_no, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- fmt.Println(res)
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: basStr,
- VerifyNumber: "",
- }
- service.CreateHisPsn(psn)
-
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": cardnum,
- "insutype": insutype,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- }
-
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- fmt.Println(initFlag)
- fmt.Println("initFlag")
-
- if initFlag == 0 {
- c.TestGetJiangXiBasBaseInit()
- }
- basStr := c.GetBasBaseInfo()
- if len(basStr) == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
- return
- }
- fmt.Println(basStr)
- bas := strings.Split(basStr, "|")
- basNumber := bas[1]
- fmt.Println(basNumber)
- card_sn := bas[3]
- fmt.Println(card_sn)
- result, _ := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, "1", miConfig.Url, miConfig.AccessKey, "")
-
- //result := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: basStr,
- VerifyNumber: "",
- }
- service.CreateHisPsn(psn)
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": basNumber,
- "insutype": insutype,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- fmt.Println(initFlag)
- fmt.Println("initFlag")
-
- if initFlag == 0 {
- c.TestGetJiangXiBasBaseInit()
- }
- basStr := c.GetBasBaseInfo()
- if len(basStr) == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
- return
- }
- fmt.Println(basStr)
- bas := strings.Split(basStr, "|")
- basNumber := bas[1]
- fmt.Println(basNumber)
- card_sn := bas[3]
- fmt.Println(card_sn)
- result, _ := service.Hnyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, "1", miConfig.Url, miConfig.AccessKey, "")
-
- //result := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: basStr,
- VerifyNumber: "",
- }
- service.CreateHisPsn(psn)
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": basNumber,
- "insutype": insutype,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- } else {
- if initFlag == 0 {
- c.TestGetBasBaseInit()
- }
- basStr := c.GetBasBaseInfo()
- if len(basStr) == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
- return
- }
- fmt.Println(basStr)
- bas := strings.Split(basStr, "|")
- basNumber := bas[1]
- fmt.Println(basNumber)
- card_sn := bas[3]
- fmt.Println(card_sn)
- result := service.Gdyb1101B(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: basStr,
- VerifyNumber: "",
- }
- service.CreateHisPsn(psn)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": basNumber,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- break
- }
- case 2:
- SFZStr := c.GetSFZBaseInfo()
- id_card_str := strings.Split(SFZStr, "^")
- id_card_number := id_card_str[0]
- card_sn := ""
- result := service.Gdyb1101B(id_card_number, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(id_card_number, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": id_card_number,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- break
- case 3:
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName
- fmt.Println(api)
-
- } else {
- api = "http://192.168.5.251:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10)
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var status string
- status = respJSON["data"].(map[string]interface{})["status"].(string)
- card_type := respJSON["data"].(map[string]interface{})["type"].(string)
-
- var token string
- var res ResultTwo //1101结果
- var res10265 ResultTwo10265 //1101结果
- var card_info string //卡信息
- var busi_card_info string
-
- //card_info = respJSON["data"].(map[string]interface{})["card_info"].(string)
- busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
-
- if status == "0" { //读卡成功
- if card_type == "1" {
-
- respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- } else {
- //var card_info string //卡信息
- //var busi_card_info string
-
- token = respJSON["data"].(map[string]interface{})["token"].(string)
- //busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
-
- //fmt.Println(card_info)
- //fmt.Println(busi_card_info)
-
- respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
-
- if card_type == "1" {
- bas := strings.Split(card_info, "|")
- basNumber := bas[2]
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: card_info,
- VerifyNumber: busi_card_info,
- }
-
- service.CreateHisPsn(psn)
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": basNumber,
- })
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: card_info,
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
-
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- "insutype": insutype,
- })
- }
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- } else { //读卡失败
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
-
- }
-
- }
-
- break
- case 4:
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName
- fmt.Println(api)
-
- } else {
- api = "http://192.168.5.251:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10)
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var status string
- status = respJSON["data"].(map[string]interface{})["status"].(string)
- //card_type := respJSON["data"].(map[string]interface{})["type"].(string)
-
- var token string
- var res ResultTwo //1101结果
- var res10265 ResultTwo10265 //1101结果
-
- if status == "0" { //读卡成功
- var card_info string //卡信息
- var busi_card_info string
-
- token = respJSON["data"].(map[string]interface{})["token"].(string)
- busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
- card_info = respJSON["data"].(map[string]interface{})["card_info"].(string)
-
- fmt.Println(card_info)
- fmt.Println(busi_card_info)
-
- respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: card_info,
- VerifyNumber: token,
- }
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- service.CreateHisPsn(psn)
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- "insutype": insutype,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- } else { //读卡失败
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "440300" || miConfig.MdtrtareaAdmvs == "440305" {
-
- if initFlag == 0 {
- c.TestGetBasBaseInit()
- }
- token := c.GetEleBaseInfo()
-
- token = Remove0000(token)
-
- result2, requestLog2 := service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, token)
- saveLog(result2, requestLog2, "1101", "获取人员信息")
- //
- var res ResultTwo
- if err := json.Unmarshal([]byte(result2), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: "",
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- //if initFlag == 0 {
- c.TestGetJiangXiBasBaseInit()
- //}
- //if initEleFlag == 0 {
- // GetJxEleBaseInitInfo(c.GetAdminUserInfo().CurrentOrgId)
- //}
- json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId)
- type ELeData struct {
- Data struct {
- IdNo string `json:"idNo"`
- IdType string `json:"idType"`
- UserName string `json:"userName"`
- EcToken string `json:"ecToken"`
- InsuOrg string `json:"insuOrg"`
- Gender string `json:"gender"`
- Birthday string `json:"birthday"`
- Nationality string `json:"nationality"`
- Email string `json:"email"`
- Extra string `json:"extra"`
- } `json:"data"`
- Code int `json:"code"`
- Message string `json:"message"`
- }
-
- var ele ELeData
- err := json.Unmarshal([]byte(json_result), &ele)
- if err != nil {
- utils.ErrorLog("解析失败:%v", err)
- }
- token := ele.Data.EcToken
- token = Remove0000(token)
- result2, requestLog2 := service.Jxyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName)
- saveLog(result2, requestLog2, "1101", "获取人员信息")
- var res ResultTwo
- if err := json.Unmarshal([]byte(result2), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: "",
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- "insutype": insutype,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- //if initFlag == 0 {
- c.TestGetJiangXiBasBaseInit()
- //}
- //if initEleFlag == 0 {
- // GetJxEleBaseInitInfo(c.GetAdminUserInfo().CurrentOrgId)
- //}
- json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId)
- type ELeData struct {
- Data struct {
- IdNo string `json:"idNo"`
- IdType string `json:"idType"`
- UserName string `json:"userName"`
- EcToken string `json:"ecToken"`
- InsuOrg string `json:"insuOrg"`
- Gender string `json:"gender"`
- Birthday string `json:"birthday"`
- Nationality string `json:"nationality"`
- Email string `json:"email"`
- Extra string `json:"extra"`
- } `json:"data"`
- Code int `json:"code"`
- Message string `json:"message"`
- }
-
- var ele ELeData
- err := json.Unmarshal([]byte(json_result), &ele)
- if err != nil {
- utils.ErrorLog("解析失败:%v", err)
- }
- token := ele.Data.EcToken
- token = Remove0000(token)
- result2, requestLog2 := service.Hnyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName)
- saveLog(result2, requestLog2, "1101", "获取人员信息")
- var res ResultTwo
- if err := json.Unmarshal([]byte(result2), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: "",
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- "insutype": insutype,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- type ELeData struct {
- Code string `json:"code"`
- Data struct {
- Aac002 string `json:"aac002"`
- Aaz500 string `json:"aaz500"`
- ActCardNo string `json:"actCardNo"`
- Bab520 string `json:"bab520"`
- Bkz543 string `json:"bkz543"`
- BusinessType string `json:"businessType"`
- CertfCodg string `json:"certfCodg"`
- EcIndexNo string `json:"ecIndexNo"`
- EcToken string `json:"ecToken"`
- ID0000 string `json:"id0000"`
- IDNo string `json:"idNo"`
- IDType string `json:"idType"`
- Idcode string `json:"idcode"`
- IdentityToken string `json:"identity_token"`
- InsuOrg string `json:"insuOrg"`
- OfficeID string `json:"officeId"`
- OfficeName string `json:"officeName"`
- OperatorID string `json:"operatorId"`
- OperatorName string `json:"operatorName"`
- OrgID string `json:"orgId"`
- UserName string `json:"userName"`
- } `json:"data"`
- Infno interface{} `json:"infno"`
- Message string `json:"message"`
- OrgID string `json:"orgId"`
- TransType string `json:"transType"`
- }
- inputInfo, outPutInfo, _ := service.ReadEleCard(miConfig.Code)
- outPutInfo = Remove0000(outPutInfo)
- if len(outPutInfo) > 0 {
- var ele ELeData
- err := json.Unmarshal([]byte(outPutInfo), &ele)
- if err != nil {
- utils.ErrorLog("解析失败:%v", err)
- }
- token := ele.Data.EcToken
- fmt.Println(inputInfo)
- fmt.Println(outPutInfo)
- result, requestLog, errMsgLog := service.FJyb1101ForEleToken(ele.Data.IDNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, id_card_type, "", 1, miConfig.Url, miConfig.Cainfo, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, token, ele.Data.UserName)
- saveLog(result, requestLog, "1101", "获取人员信息")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = errMsgLog
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(ele.Data.IDNo, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- fmt.Println(res)
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: outPutInfo,
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
-
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insutypes []*ResultFive
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": token,
- "insutype": insutype,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- }
- }
- break
- }
- }
-
- var initFlag int64 = 0
- var initEleFlag int64 = 0
-
- func (c *HisApiController) TestGetBasBaseInit() {
- DllDef := syscall.MustLoadDLL("SSCard.dll")
- Iinit := DllDef.MustFindProc("Init")
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
-
- ret, _, err := Iinit.Call(StrPtr("http://igb.hsa.gdgov.cn/gdyb_api/prd/api/card/initDll"), StrPtr(miConfig.InsuplcAdmdvs))
- if ret != 0 {
- fmt.Println("SSCard的报错原因:", err)
- fmt.Println("SSCard的运算结果为:", ret)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
- return
- }
-
- result := int(ret)
- fmt.Println("SSCard的运算结果为1:", result)
- initFlag = 1
- return
- }
-
- func (c *HisApiController) HandleJiangXiReadCard() {
- fmt.Println("~~~~~~")
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- admin_user_id, _ := c.GetInt64("admin_user_id")
- id_card_type, _ := c.GetInt64("id_card_type")
- //certificates, _ := c.GetInt64("certificates")
-
- roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
-
- if initFlag == 0 {
- c.TestGetJiangXiBasBaseInit()
- }
- basStr := c.GetBasBaseInfo()
- if len(basStr) == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
- return
- }
- fmt.Println(basStr)
- bas := strings.Split(basStr, "|")
- basNumber := bas[1]
- fmt.Println(basNumber)
- card_sn := bas[3]
- fmt.Println(card_sn)
- result, _ := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, "1", miConfig.Url, miConfig.AccessKey, "")
-
- //result := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- patient, err := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: basStr,
- VerifyNumber: "",
- }
- service.CreateHisPsn(psn)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": patient,
- "number": basNumber,
- })
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- }
-
- func (c *HisApiController) TestGetJiangXiBasBaseInit() {
- DllDef := syscall.MustLoadDLL("SSCard.dll")
- Iinit := DllDef.MustFindProc("Init")
- //miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- //http://10.77.211.236/CSB/hsa-fsi-1303
- ret, _, err := Iinit.Call(StrPtr("http://10.77.224.18:9001/1.0.0/agent-card-init"), StrPtr("360399"))
- if ret != 0 {
- fmt.Println("SSCard的报错原因:", err)
- fmt.Println("SSCard的运算结果为:", ret)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException)
- return
- }
-
- result := int(ret)
- fmt.Println("SSCard的运算结果为1:", result)
- initFlag = 1
- return
- }
-
- func (c *HisApiController) GetSFZBaseInfo() string {
- DllDef := syscall.MustLoadDLL("SSCard.dll")
- readCard := DllDef.MustFindProc("ReadSFZ")
- if readCard == nil {
- fmt.Println("readcard is nil")
- readCard = DllDef.MustFindProc("ReadSFZ")
- }
-
- str := make([]byte, 256)
- str1 := make([]byte, 256)
- r, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&str[0])), IntPtr(1024), (uintptr)(unsafe.Pointer(&str1[0])), IntPtr(1024))
-
- fmt.Println(r)
- return string(str)
- }
-
- func (c *HisApiController) GetEleBaseInfo() string {
- DllDef := syscall.MustLoadDLL("SSCard.dll")
- readCard := DllDef.MustFindProc("GetQRBase")
- fmt.Println(readCard)
-
- if readCard == nil {
- fmt.Println("readcard is nil")
- readCard = DllDef.MustFindProc("GetQRBase")
- }
- str := make([]byte, 1024)
- str1 := make([]byte, 1024)
- ret2, _, _ := readCard.Call(uintptr(180), (uintptr)(unsafe.Pointer(&str[0])), uintptr(1024), (uintptr)(unsafe.Pointer(&str1[0])), uintptr(1024))
- fmt.Println(ret2)
- fmt.Println(string(str1))
- fmt.Println(string(str))
- fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8"))
- fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8"))
- if ret2 != 0 {
- return ""
- }
- return string(str)
- }
-
- func GetJxEleBaseInfo(org_id int64) string {
- DllDef := syscall.MustLoadDLL("SSCard.dll")
- readCard := DllDef.MustFindProc("NationEcTrans")
- miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
-
- if readCard == nil {
- fmt.Println("readcard is nil")
- readCard = DllDef.MustFindProc("NationEcTrans")
- }
- str1 := make([]byte, 1024)
-
- data := make(map[string]interface{})
-
- inputData := make(map[string]interface{})
- inputData["orgId"] = miConfig.Code
- inputData["businessType"] = "01101"
- inputData["operatorId"] = "test001"
- inputData["operatorName"] = "cn"
- inputData["officeId"] = "32760"
- inputData["officeName"] = "waike"
- inputData["deviceType"] = ""
-
- data["data"] = inputData
- data["transType"] = "ec.query"
- data["extra "] = ""
- data["orgId"] = miConfig.Code
- bytesData, _ := json.Marshal(data)
- //bytesData, _ := json.Marshal(data)
-
- //bytesData = []byte(ConvertToString(string(bytesData), "utf-8", "gbk"))
-
- ret2, _, _ := readCard.Call(StrPtr("http://10.77.224.18:9001/1.0.0/localQrCodeQuery"), (uintptr)(unsafe.Pointer(&bytesData[0])), (uintptr)(unsafe.Pointer(&str1[0])))
- fmt.Println(ret2)
- fmt.Println(string(str1))
- fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8"))
-
- if ret2 != 0 {
- return ""
- }
- return Remove0000(ConvertToString(string(str1), "gbk", "utf-8"))
- }
-
- func GetJxEleBaseInitInfo(org_id int64) string {
- DllDef := syscall.MustLoadDLL("SSCard.dll")
- readCard := DllDef.MustFindProc("NationEcTrans")
- miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
-
- if readCard == nil {
- fmt.Println("readcard is nil")
- readCard = DllDef.MustFindProc("NationEcTrans")
- }
- str1 := make([]byte, 2048)
-
- data := make(map[string]interface{})
-
- inputData := make(map[string]interface{})
- inputData["orgId"] = miConfig.Code
- inputData["businessType"] = "01101"
- inputData["operatorId"] = "1"
- inputData["operatorName"] = "huangchuang"
- inputData["officeId"] = "101"
- inputData["officeName"] = "xuetou"
- inputData["deviceType"] = ""
-
- data["data"] = inputData
- data["transType"] = "ec.query"
- data["orgId"] = miConfig.Code
- bytesData, _ := json.Marshal(data)
-
- bytesData = []byte(ConvertToString(string(bytesData), "utf-8", "gbk"))
-
- ret2, _, _ := readCard.Call(StrPtr("http://10.77.224.18:9001/1.0.0/getEncDynamicKey"), (uintptr)(unsafe.Pointer(&bytesData[0])), (uintptr)(unsafe.Pointer(&str1[0])))
- fmt.Println("http://10.77.224.18:9001/1.0.0/getEncDynamicKey")
- fmt.Println(ret2)
- fmt.Println(string(str1))
- fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8"))
-
- if ret2 != 0 {
- return ""
- }
- if len(Remove0000(ConvertToString(string(str1), "gbk", "utf-8"))) > 0 {
- initEleFlag = 1
-
- }
-
- return Remove0000(ConvertToString(string(str1), "gbk", "utf-8"))
- }
-
- func (c *HisApiController) GetBasBaseInfo() string {
- DllDef := syscall.MustLoadDLL("SSCard.dll")
- readCard := DllDef.MustFindProc("ReadCardBas")
- if readCard == nil {
- fmt.Println("readcard is nil")
- readCard = DllDef.MustFindProc("ReadCardBas")
- }
- str := make([]byte, 1024)
- str1 := make([]byte, 1024)
- ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&str[0])), uintptr(1024), (uintptr)(unsafe.Pointer(&str1[0])), uintptr(1024))
- fmt.Println(string(str1))
- fmt.Println(string(str))
- fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8"))
- fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8"))
- if ret2 != 0 {
- return ""
- }
- return string(str)
- }
-
- func (c *HisApiController) GetFjBasBaseInfo() (string, string, string, string, string) {
- DllDef := syscall.MustLoadDLL("chs_fjs_standard.dll")
- readCard := DllDef.MustFindProc("read_cardinfo")
- if readCard == nil {
- fmt.Println("readcard is nil")
- readCard = DllDef.MustFindProc("read_cardinfo")
- }
- str := make([]byte, 1024) //卡号
- str1 := make([]byte, 1024) //卡识别码
- str2 := make([]byte, 1024) //身份证号
- str3 := make([]byte, 1024) //姓名
- str4 := make([]byte, 1024) //错误信息
-
- ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&str[0])), (uintptr)(unsafe.Pointer(&str1[0])), (uintptr)(unsafe.Pointer(&str2[0])), (uintptr)(unsafe.Pointer(&str3[0])), (uintptr)(unsafe.Pointer(&str4[0])))
- fmt.Println(string(str1))
- fmt.Println(string(str))
- fmt.Println(string(str2))
- fmt.Println(string(str3))
- fmt.Println(string(str4))
- fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8"))
- fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8"))
- fmt.Println(":", ConvertToString(string(str2), "gbk", "utf-8"))
- fmt.Println(":", ConvertToString(string(str3), "gbk", "utf-8"))
- fmt.Println(":", ConvertToString(string(str4), "gbk", "utf-8"))
-
- if ret2 != 0 {
- return "", "", "", "", ""
- }
- return string(str), string(str1), string(str2), string(str3), string(str4)
- }
-
- type CustomFundPay struct {
- FundPayType string `json:"fund_pay_type"`
- FundPayamt float64 `json:"fund_payamt"`
- }
-
- func (c *HisApiController) GetSettleList() {
- order_id, _ := c.GetInt64("order_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- order, _ := service.GetHisOrderByIDTwo(order_id)
- roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId)
- his, _ := service.GetHisPatientByNumber(order.MdtrtId)
- admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId)
- curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
-
- if order.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong)
- return
- }
-
- last_order, _ := service.GetLastHisOrder(c.GetAdminUserInfo().CurrentOrgId)
- max_order, _ := service.GetLastHisOrderTwo(c.GetAdminUserInfo().CurrentOrgId)
- count, _ := strconv.ParseInt(max_order.FaPiaoNumber, 10, 64)
- fmt.Println(count)
- var zero string
- number := count + 1
- if number >= 1000 {
- zero = "0000" + strconv.FormatInt(number, 10)
- } else if number >= 10000 {
- zero = "000" + strconv.FormatInt(number, 10)
- } else if number >= 100000 {
- zero = "00" + strconv.FormatInt(number, 10)
- } else if number >= 1000000 {
- zero = "0" + strconv.FormatInt(number, 10)
- } else {
- zero = strconv.FormatInt(number, 10)
- }
- fmt.Println(zero)
-
- struct4101 := service.Struct4101{
- PsnNo: order.PsnNo,
- MdtrtId: order.MdtrtId,
- SetlId: order.SetlId,
- PsnName: order.PsnName,
- Gend: order.Gend,
- Brdy: his.Brdy,
- Age: his.Age,
- Naty: order.Naty,
- PatnCertType: "01",
- Certno: order.Certno,
- Prfs: "90",
- ConerName: roles[0].UserName,
- PatnRlts: "99",
- ConerAddr: miConfig.OrgName,
- ConerTel: admin.Mobile,
- HiType: order.Insutype,
- Insuplc: miConfig.InsuplcAdmdvs,
- MaindiagFlag: "1",
- BillCode: order.SetlId,
- BillNo: order.SetlId,
- BizSn: order.Number,
- PsnSelfPay: order.PsnPartAmt,
- PsnOwnPay: order.PsnPartAmt,
- AcctPay: order.AcctPay,
- PsnCashpay: order.PsnCashPay,
- HiPaymtd: "1",
- Hsorg: miConfig.InsuplcAdmdvs,
- HsorgOpter: miConfig.InsuplcAdmdvs,
- MedinsFillPsn: curRoles.UserName,
- MedinsFillDept: depart.Name,
- IptMedType: "2",
- }
- struct4101.SetlBegnDate = order.SetlTime
- struct4101.SetlEndDate = order.SetlTime
- time_arr := strings.Split(order.SetlTime, " ")
- struct4101.AdmTime = time_arr[0]
- struct4101.AdmEndTime = time_arr[0]
-
- var rf []CustomFundPay
- json.Unmarshal([]byte(order.SetlDetail), &rf)
-
- var tempFunPays []service.CustomStruct
- for _, item := range rf {
- var tempFunPay service.CustomStruct
- tempFunPay.FundPayamt = item.FundPayamt
- tempFunPay.FundPayType = item.FundPayType
- tempFunPays = append(tempFunPays, tempFunPay)
- }
- struct4101.CustomStruct = tempFunPays
-
- var tempDiaginfos []service.DiaginfoStructTwo
- var tempOpspdiseinfo2 service.OpspdiseinfoStruct
- var tempOpspdiseinfos []service.OpspdiseinfoStruct
-
- diagnosis_ids := strings.Split(his.Diagnosis, ",")
- var config []*models.HisXtDiagnoseConfig
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- config = append(config, &diagnosisConfig)
- }
-
- for index, item := range config {
- if index == 0 {
- var tempDiaginfo service.DiaginfoStructTwo
- tempDiaginfo.DiagCode = item.CountryCode
- tempDiaginfo.DiagName = item.CountryContentName
- tempDiaginfo.DiagType = "1"
- tempDiaginfo.MaindiagFlag = "1"
- tempDiaginfos = append(tempDiaginfos, tempDiaginfo)
- } else {
-
- var tempDiaginfo service.DiaginfoStructTwo
- tempDiaginfo.DiagCode = item.CountryCode
- tempDiaginfo.DiagName = item.CountryContentName
- tempDiaginfo.DiagType = "2"
- tempDiaginfo.MaindiagFlag = "0"
- tempDiaginfos = append(tempDiaginfos, tempDiaginfo)
- }
- }
- struct4101.Diseinfo = tempDiaginfos
-
- sickConfigTwo, _ := service.FindSickById(his.SickType)
- tempOpspdiseinfo2.DiagCode = sickConfigTwo.ContentCode
- tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName
- tempOpspdiseinfo2.OprnOprtCode = sickConfigTwo.ContentCode
- tempOpspdiseinfo2.OprnOprtName = sickConfigTwo.CountryContentName
- tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo2)
- struct4101.OpspdiseinfoStruct = tempOpspdiseinfos
-
- var iteminfo service.IteminfoStruct
-
- var bedCostTotal float64 = 0 //床位总费
- var bedCostSelfTotal float64 = 0 //床位自费
- var bedCostPartSelfTotal float64 = 0 //床位部分项目自费
-
- var operationCostTotal float64 = 0 //手术费
- var operationCostSelfTotal float64 = 0 //手术费
- var operationCostPartSelfTotal float64 = 0 //手术费
-
- var otherCostTotal float64 = 0 //其他费用
- var otherCostSelfTotal float64 = 0 //其他费用
- var otherCostPartSelfTotal float64 = 0 //其他费用
-
- var materialCostTotal float64 = 0 //材料费
- var materialCostSelfTotal float64 = 0 //材料费
- var materialCostPartSelfTotal float64 = 0 //材料费
-
- var westernMedicineCostTotal float64 = 0 //西药费
- var westernMedicineCostSelfTotal float64 = 0 //西药费
- var westernMedicineCostPartSelfTotal float64 = 0 //西药费
-
- var chineseTraditionalMedicineCostTotal float64 = 0 //中成药
- var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药
- var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药
-
- var checkCostTotal float64 = 0 //检查费
- var checkCostSelfTotal float64 = 0 //检查费
- var checkCostPartSelfTotal float64 = 0 //检查费
-
- var laboratoryCostTotal float64 = 0 //化验费
- var laboratoryCostSelfTotal float64 = 0 //化验费
- var laboratoryCostPartSelfTotal float64 = 0 //化验费
-
- var treatCostTotal float64 = 0 //治疗费用
- var treatCostSelfTotal float64 = 0 //治疗费用
- var treatCostPartSelfTotal float64 = 0 //治疗费用
-
- decimal.DivisionPrecision = 2
-
- var bed_fulamt_ownpay_amt float64 = 0
- var operation_fulamt_ownpay_amt float64 = 0
- var other_fulamt_ownpay_amt float64 = 0
- var westernMedicine_fulamt_ownpay_amt float64 = 0
- var chineseTraditional_fulamt_ownpay_amt float64 = 0
- var check_fulamt_ownpay_amt float64 = 0
- var material_fulamt_ownpay_amt float64 = 0
- var laboratory_fulamt_ownpay_amt float64 = 0
- var treat_fulamt_ownpay_amt float64 = 0
-
- var bed_claa_sunmfee float64 = 0
- var bed_clab_amt float64 = 0
- var bed_other_amt float64 = 0
-
- var operation_claa_sunmfee float64 = 0
- var operation_clab_amt float64 = 0
- var operation_other_amt float64 = 0
-
- var other_claa_sunmfee float64 = 0
- var other_clab_amt float64 = 0
- var other_other_amt float64 = 0
-
- var westernMedicine_claa_sunmfee float64 = 0
- var westernMedicine_clab_amt float64 = 0
- var westernMedicine_other_amt float64 = 0
-
- var chineseTraditional_claa_sunmfee float64 = 0
- var chineseTraditional_clab_amt float64 = 0
- var chineseTraditional_other_amt float64 = 0
-
- var check_claa_sunmfee float64 = 0
- var check_clab_amt float64 = 0
- var check_other_amt float64 = 0
-
- var material_claa_sunmfee float64 = 0
- var material_clab_amt float64 = 0
- var material_other_amt float64 = 0
-
- var laboratory_claa_sunmfee float64 = 0
- var laboratory_clab_amt float64 = 0
- var laboratory_other_amt float64 = 0
-
- var treat_claa_sunmfee float64 = 0
- var treat_clab_amt float64 = 0
- var treat_other_amt float64 = 0
-
- for _, item := range order.HisOrderInfo {
- if item.MedChrgitmType == "01" { //床位费
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.ChrgitmLv == "2" {
- bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
-
- }
-
- if item.MedChrgitmType == "03" { //检查费
- checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "04" { //化验费
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "05" { //治疗费
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "06" { //手术费
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
-
- if item.ChrgitmLv == "1" {
-
- operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "08" { //材料费
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "09" { //西药费
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "11" { //中成费
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "14" { //其他费
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- }
-
- var iteminfoStructs []service.IteminfoStruct
-
- if bedCostTotal != 0 {
- iteminfo.MedChrgitm = "01"
- iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt
- iteminfo.Amt = bedCostTotal
- iteminfo.ClaaSumfee = bed_claa_sunmfee
- iteminfo.ClabAmt = bed_clab_amt
- iteminfo.OthAmt = bed_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if checkCostTotal != 0 {
- iteminfo.MedChrgitm = "03"
- iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt
- iteminfo.Amt = checkCostTotal
- iteminfo.ClaaSumfee = check_claa_sunmfee
- iteminfo.ClabAmt = check_clab_amt
- iteminfo.OthAmt = check_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
-
- if laboratoryCostTotal != 0 {
- iteminfo.MedChrgitm = "04"
- iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt
- iteminfo.Amt = laboratoryCostTotal
- iteminfo.ClaaSumfee = laboratory_claa_sunmfee
- iteminfo.ClabAmt = laboratory_clab_amt
- iteminfo.OthAmt = laboratory_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
-
- }
-
- if treatCostTotal != 0 {
- iteminfo.MedChrgitm = "05"
- iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt
- iteminfo.Amt = treatCostTotal
- iteminfo.ClaaSumfee = treat_claa_sunmfee
- iteminfo.ClabAmt = treat_clab_amt
- iteminfo.OthAmt = treat_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- //(struct4101.IteminfoStruct, iteminfo)
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- }
-
- if operationCostTotal != 0 {
- iteminfo.MedChrgitm = "06"
- iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt
- iteminfo.Amt = operationCostTotal
- iteminfo.ClaaSumfee = operation_claa_sunmfee
- iteminfo.ClabAmt = operation_clab_amt
- iteminfo.OthAmt = operation_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if materialCostTotal != 0 {
- iteminfo.MedChrgitm = "08"
- iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt
- iteminfo.Amt = materialCostTotal
- iteminfo.ClaaSumfee = material_claa_sunmfee
- iteminfo.ClabAmt = material_clab_amt
- iteminfo.OthAmt = material_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if westernMedicineCostTotal != 0 {
- iteminfo.MedChrgitm = "09"
- iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt
- iteminfo.Amt = westernMedicineCostTotal
- iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee
- iteminfo.ClabAmt = westernMedicine_clab_amt
- iteminfo.OthAmt = westernMedicine_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
- if chineseTraditionalMedicineCostTotal != 0 {
- iteminfo.MedChrgitm = "11"
- iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt
- iteminfo.Amt = westernMedicineCostTotal
- iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee
- iteminfo.ClabAmt = westernMedicine_clab_amt
- iteminfo.OthAmt = westernMedicine_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
- if otherCostTotal != 0 {
- iteminfo.MedChrgitm = "14"
- iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt
- iteminfo.Amt = otherCostTotal
- iteminfo.ClaaSumfee = other_claa_sunmfee
- iteminfo.ClabAmt = other_clab_amt
- iteminfo.OthAmt = other_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
- struct4101.IteminfoStruct = iteminfoStructs
- struct4101.Ntly = "中国"
- struct4101.AdmCaty = "A03.06"
-
- var res ResultSeventeen
-
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- struct4101.BillCode = order.Number
- struct4101.BillNo = order.SetlId
- var resOther ResultSeventeenOther
- var pp models.PublicParams
- pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- pp.FixmedinsName = miConfig.OrgName
- pp.FixmedinsCode = miConfig.Code
- pp.RequestUrl = miConfig.Url
- pp.Cainfo = miConfig.Cainfo
- pp.SecretKey = miConfig.SecretKey
- pp.AccessKey = miConfig.AccessKey
- pp.OpterName = curRoles.UserName
-
- client := &http.Client{}
- var req *http.Request
- data := make(map[string]interface{})
- data["struct4101"] = struct4101
- data["pp"] = pp
- bytesData, _ := json.Marshal(data)
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/4101", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/4101", bytes.NewReader(bytesData))
- }
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
- if err := json.Unmarshal(userJSONBytes, &resOther); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resOther.InfRefmsgid
- res.Output = resOther.Output
- res.ErrMsg = resOther.ErrMsg
- infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64)
- res.Infcode = infocode
- } else if miConfig.MdtrtareaAdmvs == "360399" {
-
- var pp models.PublicParams
- pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- pp.FixmedinsName = miConfig.OrgName
- pp.FixmedinsCode = miConfig.Code
- pp.RequestUrl = miConfig.Url
- pp.Cainfo = miConfig.Cainfo
- pp.SecretKey = miConfig.SecretKey
- pp.AccessKey = miConfig.AccessKey
- pp.OpterName = curRoles.UserName
- result, _ := service.Jxyb4101(struct4101, pp)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
-
- var pp models.PublicParams
- pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- pp.FixmedinsName = miConfig.OrgName
- pp.FixmedinsCode = miConfig.Code
- pp.RequestUrl = miConfig.Url
- pp.Cainfo = miConfig.Cainfo
- pp.SecretKey = miConfig.SecretKey
- pp.AccessKey = miConfig.AccessKey
- pp.OpterName = curRoles.UserName
- result, _ := service.Hnyb4101(struct4101, pp)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
-
- result := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.UserOrgId)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- if res.Infcode != 0 {
-
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- } else {
- order.FaPiaoNumber = zero
- order.FaPiaoCode = last_order.FaPiaoCode
- service.UpdateOrder(order)
- hisFundSettleListResult := &models.HisFundSettleListResult{
- Number: res.Output.SetlListId,
- Status: 1,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- IsUpload: 1,
- OrderId: order_id,
- }
- service.CreateUploadRecord(hisFundSettleListResult)
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- "result": hisFundSettleListResult,
- })
- return
- }
- }
-
- func (c *HisApiController) GetSettleListHospital() {
-
- order_id, _ := c.GetInt64("order_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- order, _ := service.GetHisOrderByIDTwo(order_id)
- roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId)
- his, _ := service.GetInHospitalRecordByNumber(order.MdtrtId)
- admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId)
- curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
-
- if order.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong)
- return
- }
-
- last_order, _ := service.GetLastHisOrder(c.GetAdminUserInfo().CurrentOrgId)
- max_order, _ := service.GetLastHisOrderTwo(c.GetAdminUserInfo().CurrentOrgId)
- count, _ := strconv.ParseInt(max_order.FaPiaoNumber, 10, 64)
- fmt.Println(count)
- var zero string
- number := count + 1
- if number >= 1000 {
- zero = "0000" + strconv.FormatInt(number, 10)
- } else if number >= 10000 {
- zero = "000" + strconv.FormatInt(number, 10)
- } else if number >= 100000 {
- zero = "00" + strconv.FormatInt(number, 10)
- } else if number >= 1000000 {
- zero = "0" + strconv.FormatInt(number, 10)
- } else {
- zero = strconv.FormatInt(number, 10)
- }
- fmt.Println(zero)
-
- struct4101 := service.Struct4101{
- PsnNo: order.PsnNo,
- MdtrtId: order.MdtrtId,
- SetlId: order.SetlId,
- PsnName: order.PsnName,
- Gend: order.Gend,
- Brdy: his.Brdy,
- Age: int64(order.Age),
- Naty: order.Naty,
- PatnCertType: "01",
- Certno: order.Certno,
- Prfs: "90",
- ConerName: roles[0].UserName,
- PatnRlts: "99",
- ConerAddr: miConfig.OrgName,
- ConerTel: admin.Mobile,
- HiType: order.Insutype,
- Insuplc: miConfig.InsuplcAdmdvs,
- MaindiagFlag: "1",
- BillCode: order.SetlId,
- BillNo: order.SetlId,
- BizSn: order.Number,
- PsnSelfPay: order.PsnPartAmt,
- PsnOwnPay: order.PsnPartAmt,
- AcctPay: order.AcctPay,
- PsnCashpay: order.PsnCashPay,
- HiPaymtd: "1",
- Hsorg: miConfig.InsuplcAdmdvs,
- HsorgOpter: miConfig.InsuplcAdmdvs,
- MedinsFillPsn: curRoles.UserName,
- MedinsFillDept: depart.Name,
- IptMedType: "2",
- AdmTime: his.InHosptialTime,
- AdmEndTime: his.OutHosptialTime,
- }
- struct4101.SetlBegnDate = order.SetlTime
- struct4101.SetlEndDate = order.SetlTime
-
- var rf []CustomFundPay
- json.Unmarshal([]byte(order.SetlDetail), &rf)
-
- var tempFunPays []service.CustomStruct
- for _, item := range rf {
- var tempFunPay service.CustomStruct
- tempFunPay.FundPayamt = item.FundPayamt
- tempFunPay.FundPayType = item.FundPayType
- tempFunPays = append(tempFunPays, tempFunPay)
- }
- struct4101.CustomStruct = tempFunPays
-
- var tempDiaginfos []service.DiaginfoStructTwo
- var tempOpspdiseinfo2 service.OpspdiseinfoStruct
- var tempOpspdiseinfos []service.OpspdiseinfoStruct
- diagnosis_ids := strings.Split(his.Diagnosis, ",")
- var config []*models.HisXtDiagnoseConfig
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- config = append(config, &diagnosisConfig)
- }
-
- for index, item := range config {
- if index == 0 {
- var tempDiaginfo service.DiaginfoStructTwo
- tempDiaginfo.DiagCode = item.CountryCode
- tempDiaginfo.DiagName = item.CountryContentName
- tempDiaginfo.DiagType = "1"
- tempDiaginfo.MaindiagFlag = "1"
- tempDiaginfos = append(tempDiaginfos, tempDiaginfo)
- } else {
-
- var tempDiaginfo service.DiaginfoStructTwo
- tempDiaginfo.DiagCode = item.CountryCode
- tempDiaginfo.DiagName = item.CountryContentName
- tempDiaginfo.DiagType = "2"
- tempDiaginfo.MaindiagFlag = "0"
- tempDiaginfos = append(tempDiaginfos, tempDiaginfo)
- }
- }
- struct4101.Diseinfo = tempDiaginfos
-
- sickConfigTwo, _ := service.FindSickById(his.SickType)
- tempOpspdiseinfo2.DiagCode = sickConfigTwo.ContentCode
- tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName
- tempOpspdiseinfo2.OprnOprtCode = ""
- tempOpspdiseinfo2.OprnOprtName = ""
- tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo2)
- struct4101.OpspdiseinfoStruct = tempOpspdiseinfos
-
- var iteminfo service.IteminfoStruct
-
- var bedCostTotal float64 = 0 //床位总费
- var bedCostSelfTotal float64 = 0 //床位自费
- var bedCostPartSelfTotal float64 = 0 //床位部分项目自费
-
- var operationCostTotal float64 = 0 //手术费
- var operationCostSelfTotal float64 = 0 //手术费
- var operationCostPartSelfTotal float64 = 0 //手术费
-
- var otherCostTotal float64 = 0 //其他费用
- var otherCostSelfTotal float64 = 0 //其他费用
- var otherCostPartSelfTotal float64 = 0 //其他费用
-
- var materialCostTotal float64 = 0 //材料费
- var materialCostSelfTotal float64 = 0 //材料费
- var materialCostPartSelfTotal float64 = 0 //材料费
-
- var westernMedicineCostTotal float64 = 0 //西药费
- var westernMedicineCostSelfTotal float64 = 0 //西药费
- var westernMedicineCostPartSelfTotal float64 = 0 //西药费
-
- var chineseTraditionalMedicineCostTotal float64 = 0 //中成药
- var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药
- var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药
-
- var checkCostTotal float64 = 0 //检查费
- var checkCostSelfTotal float64 = 0 //检查费
- var checkCostPartSelfTotal float64 = 0 //检查费
-
- var laboratoryCostTotal float64 = 0 //化验费
- var laboratoryCostSelfTotal float64 = 0 //化验费
- var laboratoryCostPartSelfTotal float64 = 0 //化验费
-
- var treatCostTotal float64 = 0 //治疗费用
- var treatCostSelfTotal float64 = 0 //治疗费用
- var treatCostPartSelfTotal float64 = 0 //治疗费用
-
- decimal.DivisionPrecision = 2
-
- var bed_fulamt_ownpay_amt float64 = 0
- var operation_fulamt_ownpay_amt float64 = 0
- var other_fulamt_ownpay_amt float64 = 0
- var westernMedicine_fulamt_ownpay_amt float64 = 0
- var chineseTraditional_fulamt_ownpay_amt float64 = 0
- var check_fulamt_ownpay_amt float64 = 0
- var material_fulamt_ownpay_amt float64 = 0
- var laboratory_fulamt_ownpay_amt float64 = 0
- var treat_fulamt_ownpay_amt float64 = 0
-
- var bed_claa_sunmfee float64 = 0
- var bed_clab_amt float64 = 0
- var bed_other_amt float64 = 0
-
- var operation_claa_sunmfee float64 = 0
- var operation_clab_amt float64 = 0
- var operation_other_amt float64 = 0
-
- var other_claa_sunmfee float64 = 0
- var other_clab_amt float64 = 0
- var other_other_amt float64 = 0
-
- var westernMedicine_claa_sunmfee float64 = 0
- var westernMedicine_clab_amt float64 = 0
- var westernMedicine_other_amt float64 = 0
-
- var chineseTraditional_claa_sunmfee float64 = 0
- var chineseTraditional_clab_amt float64 = 0
- var chineseTraditional_other_amt float64 = 0
-
- var check_claa_sunmfee float64 = 0
- var check_clab_amt float64 = 0
- var check_other_amt float64 = 0
-
- var material_claa_sunmfee float64 = 0
- var material_clab_amt float64 = 0
- var material_other_amt float64 = 0
-
- var laboratory_claa_sunmfee float64 = 0
- var laboratory_clab_amt float64 = 0
- var laboratory_other_amt float64 = 0
-
- var treat_claa_sunmfee float64 = 0
- var treat_clab_amt float64 = 0
- var treat_other_amt float64 = 0
-
- for _, item := range order.HisOrderInfo {
- if item.MedChrgitmType == "01" { //床位费
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.ChrgitmLv == "2" {
- bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
-
- }
-
- if item.MedChrgitmType == "03" { //检查费
- checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "04" { //化验费
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "05" { //治疗费
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "06" { //手术费
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
-
- if item.ChrgitmLv == "1" {
-
- operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "08" { //材料费
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "09" { //西药费
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "11" { //中成费
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "14" { //其他费
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- }
-
- var iteminfoStructs []service.IteminfoStruct
-
- if bedCostTotal != 0 {
- iteminfo.MedChrgitm = "01"
- iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt
- iteminfo.Amt = bedCostTotal
- iteminfo.ClaaSumfee = bed_claa_sunmfee
- iteminfo.ClabAmt = bed_clab_amt
- iteminfo.OthAmt = bed_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if checkCostTotal != 0 {
- iteminfo.MedChrgitm = "03"
- iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt
- iteminfo.Amt = checkCostTotal
- iteminfo.ClaaSumfee = check_claa_sunmfee
- iteminfo.ClabAmt = check_clab_amt
- iteminfo.OthAmt = check_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
-
- if laboratoryCostTotal != 0 {
- iteminfo.MedChrgitm = "04"
- iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt
- iteminfo.Amt = laboratoryCostTotal
- iteminfo.ClaaSumfee = laboratory_claa_sunmfee
- iteminfo.ClabAmt = laboratory_clab_amt
- iteminfo.OthAmt = laboratory_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
-
- }
-
- if treatCostTotal != 0 {
- iteminfo.MedChrgitm = "05"
- iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt
- iteminfo.Amt = treatCostTotal
- iteminfo.ClaaSumfee = treat_claa_sunmfee
- iteminfo.ClabAmt = treat_clab_amt
- iteminfo.OthAmt = treat_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- //(struct4101.IteminfoStruct, iteminfo)
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- }
-
- if operationCostTotal != 0 {
- iteminfo.MedChrgitm = "06"
- iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt
- iteminfo.Amt = operationCostTotal
- iteminfo.ClaaSumfee = operation_claa_sunmfee
- iteminfo.ClabAmt = operation_clab_amt
- iteminfo.OthAmt = operation_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if materialCostTotal != 0 {
- iteminfo.MedChrgitm = "08"
- iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt
- iteminfo.Amt = materialCostTotal
- iteminfo.ClaaSumfee = material_claa_sunmfee
- iteminfo.ClabAmt = material_clab_amt
- iteminfo.OthAmt = material_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if westernMedicineCostTotal != 0 {
- iteminfo.MedChrgitm = "09"
- iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt
- iteminfo.Amt = westernMedicineCostTotal
- iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee
- iteminfo.ClabAmt = westernMedicine_clab_amt
- iteminfo.OthAmt = westernMedicine_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
- if chineseTraditionalMedicineCostTotal != 0 {
- iteminfo.MedChrgitm = "11"
- iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt
- iteminfo.Amt = westernMedicineCostTotal
- iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee
- iteminfo.ClabAmt = westernMedicine_clab_amt
- iteminfo.OthAmt = westernMedicine_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
- if otherCostTotal != 0 {
- iteminfo.MedChrgitm = "14"
- iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt
- iteminfo.Amt = otherCostTotal
- iteminfo.ClaaSumfee = other_claa_sunmfee
- iteminfo.ClabAmt = other_clab_amt
- iteminfo.OthAmt = other_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
- struct4101.IteminfoStruct = iteminfoStructs
- struct4101.Ntly = "中国"
- struct4101.AdmCaty = "A03.06"
- var resOther ResultSeventeenOther
- var res ResultSeventeen
- if miConfig.MdtrtareaAdmvs == "150499" {
- var pp models.PublicParams
- pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- pp.FixmedinsName = miConfig.OrgName
- pp.FixmedinsCode = miConfig.Code
- pp.RequestUrl = miConfig.Url
- pp.Cainfo = miConfig.Cainfo
- pp.SecretKey = miConfig.SecretKey
- pp.AccessKey = miConfig.AccessKey
- pp.OpterName = curRoles.UserName
- client := &http.Client{}
- var req *http.Request
- data := make(map[string]interface{})
- data["struct4101"] = struct4101
- data["pp"] = pp
- bytesData, _ := json.Marshal(data)
- req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/4101", bytes.NewReader(bytesData))
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- if err := json.Unmarshal(userJSONBytes, &resOther); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resOther.InfRefmsgid
- res.Output = resOther.Output
- res.ErrMsg = resOther.ErrMsg
- infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64)
- res.Infcode = infocode
- } else {
- result := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.UserOrgId)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- if res.Infcode != 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- } else {
- if miConfig.MdtrtareaAdmvs != "150499" {
- order.FaPiaoNumber = zero
- order.FaPiaoCode = last_order.FaPiaoCode
- service.UpdateOrder(order)
- }
- hisFundSettleListResult := &models.HisFundSettleListResult{
- Number: res.Output.SetlListId,
- Status: 1,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- IsUpload: 1,
- OrderId: order_id,
- }
- service.CreateUploadRecord(hisFundSettleListResult)
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- "result": hisFundSettleListResult,
- })
- return
- }
- }
-
- func (c *HisApiController) GetBatchSettleList() {
- orders, _ := service.GetAllHisOrder(10138)
- for _, item := range orders {
- order_id := item.ID
- order, _ := service.GetHisOrderByIDTwo(order_id)
- roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId)
- his, _ := service.GetHisPatientByNumber(order.MdtrtId)
- admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId)
- curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, 2185)
- depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
-
- pre, _ := service.GetNewHisPrescriptionByNumber(order.Number)
-
- doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, pre.Creator)
-
- if order.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong)
- return
- }
- if his.BalanceAccountsType == 2 {
- continue
- }
- struct4101 := service.Struct4101{
- PsnNo: order.PsnNo,
- MdtrtId: order.MdtrtId,
- SetlId: order.SetlId,
- PsnName: order.PsnName,
- Gend: order.Gend,
- Brdy: his.Brdy,
- Age: his.Age,
- Naty: order.Naty,
- PatnCertType: "01",
- Certno: order.Certno,
- Prfs: "90",
- ConerName: roles[0].UserName,
- PatnRlts: "99",
- ConerAddr: miConfig.OrgName,
- ConerTel: admin.Mobile,
- HiType: order.Insutype,
- Insuplc: his.InsuplcAdmdvs,
- MaindiagFlag: "1",
- BillCode: order.SetlId,
- BillNo: order.SetlId,
- BizSn: order.Number,
- PsnSelfPay: order.PsnPartAmt,
- PsnOwnPay: order.PsnPartAmt,
- AcctPay: order.AcctPay,
- PsnCashpay: order.PsnCashPay,
- HiPaymtd: "1",
- Hsorg: his.InsuplcAdmdvs,
- HsorgOpter: his.InsuplcAdmdvs,
- MedinsFillPsn: curRoles.UserName,
- MedinsFillDept: depart.Name,
- IptMedType: "2",
- }
- struct4101.SetlBegnDate = order.SetlTime
- struct4101.SetlEndDate = order.SetlTime
- //if order.SettleType == 1 {
- // t := time.Unix(int64(order.SettleAccountsDate), 0)
- // dateStr := t.Format("2006-01-02")
- // struct4101.SetlBegnDate = dateStr
- // struct4101.SetlEndDate = dateStr
- //} else {
- // t := time.Unix(int64(order.SettleStartTime), 0)
- // t2 := time.Unix(int64(order.SettleEndTime), 0)
- // dateStartStr := t.Format("2006-01-02")
- // dateEndStr := t2.Format("2006-01-02")
- // struct4101.SetlBegnDate = dateStartStr
- // struct4101.SetlEndDate = dateEndStr
- //}
-
- var rf []CustomFundPay
- json.Unmarshal([]byte(order.SetlDetail), &rf)
-
- var tempFunPays []service.CustomStruct
- var tempFunPay610100 service.CustomStruct
-
- for _, item := range rf {
- if item.FundPayType == "610100" {
- tempFunPay610100.FundPayamt, _ = decimal.NewFromFloat(tempFunPay610100.FundPayamt).Add(decimal.NewFromFloat(item.FundPayamt)).Float64()
- tempFunPay610100.FundPayType = item.FundPayType
- } else {
- var tempFunPay service.CustomStruct
- tempFunPay.FundPayamt = item.FundPayamt
- tempFunPay.FundPayType = item.FundPayType
- tempFunPays = append(tempFunPays, tempFunPay)
- }
- }
- tempFunPays = append(tempFunPays, tempFunPay610100)
- struct4101.CustomStruct = tempFunPays
-
- var tempDiaginfos []service.DiaginfoStructTwo
- var tempOpspdiseinfo2 service.OpspdiseinfoStruct
- var tempOpspdiseinfos []service.OpspdiseinfoStruct
-
- diagnosis_ids := strings.Split(his.Diagnosis, ",")
- var config []*models.HisXtDiagnoseConfig
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- config = append(config, &diagnosisConfig)
- }
-
- for index, item := range config {
- if index == 0 {
- var tempDiaginfo service.DiaginfoStructTwo
- tempDiaginfo.DiagCode = item.CountryCode
- tempDiaginfo.DiagName = item.CountryContentName
- tempDiaginfo.DiagType = "1"
- tempDiaginfo.MaindiagFlag = "1"
- tempDiaginfos = append(tempDiaginfos, tempDiaginfo)
- } else {
-
- var tempDiaginfo service.DiaginfoStructTwo
- tempDiaginfo.DiagCode = item.CountryCode
- tempDiaginfo.DiagName = item.CountryContentName
- tempDiaginfo.DiagType = "2"
- tempDiaginfo.MaindiagFlag = "0"
- tempDiaginfos = append(tempDiaginfos, tempDiaginfo)
- }
- }
- struct4101.Diseinfo = tempDiaginfos
-
- sickConfigTwo, _ := service.FindSickById(his.SickType)
- tempOpspdiseinfo2.DiagCode = sickConfigTwo.ContentCode
- tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName
- tempOpspdiseinfo2.OprnOprtCode = ""
- tempOpspdiseinfo2.OprnOprtName = ""
- tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo2)
- struct4101.OpspdiseinfoStruct = tempOpspdiseinfos
-
- var iteminfo service.IteminfoStruct
-
- var bedCostTotal float64 = 0 //床位总费
- var bedCostSelfTotal float64 = 0 //床位自费
- var bedCostPartSelfTotal float64 = 0 //床位部分项目自费
-
- var examineCostTotal float64 = 0 //诊查总费
- var examineCostSelfTotal float64 = 0 //诊查自费
- var examineCostPartSelfTotal float64 = 0 //诊查部分项目自费
-
- var nursingCostTotal float64 = 0 //护理总费
- var nursingCostSelfTotal float64 = 0 //护理自费
- var nursingCostPartSelfTotal float64 = 0 //护理部分项目自费
-
- var chineseMedicineCostTotal float64 = 0 //中成药
- var chineseMedicineCostSelfTotal float64 = 0 //中成药
- var chineseMedicineCostPartSelfTotal float64 = 0 //中成药
-
- var commonlyTreatmentCostTotal float64 = 0 //一般诊疗费
- var commonlyTreatmentCostSelfTotal float64 = 0 //一般诊疗费
- var commonlyTreatmentCostPartSelfTotal float64 = 0 //一般诊疗费
-
- var registerCostTotal float64 = 0 //一般诊疗费
- var registerCostSelfTotal float64 = 0 //一般诊疗费
- var registerPartSelfTotal float64 = 0 //一般诊疗费
-
- var operationCostTotal float64 = 0 //手术费
- var operationCostSelfTotal float64 = 0 //手术费
- var operationCostPartSelfTotal float64 = 0 //手术费
-
- var otherCostTotal float64 = 0 //其他费用
- var otherCostSelfTotal float64 = 0 //其他费用
- var otherCostPartSelfTotal float64 = 0 //其他费用
-
- var materialCostTotal float64 = 0 //材料费
- var materialCostSelfTotal float64 = 0 //材料费
- var materialCostPartSelfTotal float64 = 0 //材料费
-
- var westernMedicineCostTotal float64 = 0 //西药费
- var westernMedicineCostSelfTotal float64 = 0 //西药费
- var westernMedicineCostPartSelfTotal float64 = 0 //西药费
-
- var chineseTraditionalMedicineCostTotal float64 = 0 //中成药
- var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药
- var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药
-
- var checkCostTotal float64 = 0 //检查费
- var checkCostSelfTotal float64 = 0 //检查费
- var checkCostPartSelfTotal float64 = 0 //检查费
-
- var laboratoryCostTotal float64 = 0 //化验费
- var laboratoryCostSelfTotal float64 = 0 //化验费
- var laboratoryCostPartSelfTotal float64 = 0 //化验费
-
- var treatCostTotal float64 = 0 //治疗费用
- var treatCostSelfTotal float64 = 0 //治疗费用
- var treatCostPartSelfTotal float64 = 0 //治疗费用
-
- decimal.DivisionPrecision = 2
-
- var bed_fulamt_ownpay_amt float64 = 0
-
- var examine_fulamt_ownpay_amt float64 = 0
-
- var nursing_fulamt_ownpay_amt float64 = 0
-
- var chinese_medicine_fulamt_ownpay_amt float64 = 0
-
- var commonly_treatment_fulamt_ownpay_amt float64 = 0
-
- var register_fulamt_ownpay_amt float64 = 0
-
- var operation_fulamt_ownpay_amt float64 = 0
- var other_fulamt_ownpay_amt float64 = 0
- var westernMedicine_fulamt_ownpay_amt float64 = 0
- var chineseTraditional_fulamt_ownpay_amt float64 = 0
- var check_fulamt_ownpay_amt float64 = 0
- var material_fulamt_ownpay_amt float64 = 0
- var laboratory_fulamt_ownpay_amt float64 = 0
- var treat_fulamt_ownpay_amt float64 = 0
-
- var bed_claa_sunmfee float64 = 0
- var bed_clab_amt float64 = 0
- var bed_other_amt float64 = 0
-
- var examine_claa_sunmfee float64 = 0
- var examine_clab_amt float64 = 0
- var examine_other_amt float64 = 0
-
- var nursing_claa_sunmfee float64 = 0
- var nursing_clab_amt float64 = 0
- var nursing_other_amt float64 = 0
-
- var chinese_medicine_claa_sunmfee float64 = 0
- var chinese_medicine_clab_amt float64 = 0
- var chinese_medicine_other_amt float64 = 0
-
- var commonly_treatment_claa_sunmfee float64 = 0
- var commonly_treatment_clab_amt float64 = 0
- var commonly_treatment_other_amt float64 = 0
-
- var operation_claa_sunmfee float64 = 0
- var operation_clab_amt float64 = 0
- var operation_other_amt float64 = 0
-
- var other_claa_sunmfee float64 = 0
- var other_clab_amt float64 = 0
- var other_other_amt float64 = 0
-
- var westernMedicine_claa_sunmfee float64 = 0
- var westernMedicine_clab_amt float64 = 0
- var westernMedicine_other_amt float64 = 0
-
- var chineseTraditional_claa_sunmfee float64 = 0
- var chineseTraditional_clab_amt float64 = 0
- var chineseTraditional_other_amt float64 = 0
-
- var check_claa_sunmfee float64 = 0
- var check_clab_amt float64 = 0
- var check_other_amt float64 = 0
-
- var material_claa_sunmfee float64 = 0
- var material_clab_amt float64 = 0
- var material_other_amt float64 = 0
-
- var laboratory_claa_sunmfee float64 = 0
- var laboratory_clab_amt float64 = 0
- var laboratory_other_amt float64 = 0
-
- var treat_claa_sunmfee float64 = 0
- var treat_clab_amt float64 = 0
- var treat_other_amt float64 = 0
-
- var register_claa_sunmfee float64 = 0
- var register_clab_amt float64 = 0
- var register_other_amt float64 = 0
-
- for _, item := range order.HisOrderInfo {
- if item.MedChrgitmType == "01" { //床位费
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.ChrgitmLv == "2" {
- bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
-
- }
-
- if item.MedChrgitmType == "02" { //诊查
- examineCostTotal, _ = decimal.NewFromFloat(examineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- examineCostSelfTotal, _ = decimal.NewFromFloat(examineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- examineCostPartSelfTotal, _ = decimal.NewFromFloat(examineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- examine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(examine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- examine_claa_sunmfee, _ = decimal.NewFromFloat(examine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.ChrgitmLv == "2" {
- examine_clab_amt, _ = decimal.NewFromFloat(examine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- examine_other_amt, _ = decimal.NewFromFloat(examine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
-
- }
-
- if item.MedChrgitmType == "03" { //检查费
- checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "04" { //化验费
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "05" { //治疗费
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "06" { //手术费
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
-
- if item.ChrgitmLv == "1" {
-
- operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "07" { //手术费
- nursingCostTotal, _ = decimal.NewFromFloat(nursingCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- nursingCostSelfTotal, _ = decimal.NewFromFloat(nursingCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- nursingCostPartSelfTotal, _ = decimal.NewFromFloat(nursingCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- nursing_fulamt_ownpay_amt, _ = decimal.NewFromFloat(nursing_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
-
- if item.ChrgitmLv == "1" {
-
- nursing_claa_sunmfee, _ = decimal.NewFromFloat(nursing_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- nursing_clab_amt, _ = decimal.NewFromFloat(nursing_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- nursing_other_amt, _ = decimal.NewFromFloat(nursing_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "08" { //材料费
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
- if item.MedChrgitmType == "09" { //西药费
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.ChrgitmLv == "2" {
- westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
- if item.ChrgitmLv == "3" {
- westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
- if item.MedChrgitmType == "10" { //中药饮片
- chineseMedicineCostTotal, _ = decimal.NewFromFloat(chineseMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- chineseMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- chineseMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- chinese_medicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chinese_medicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- chinese_medicine_claa_sunmfee, _ = decimal.NewFromFloat(chinese_medicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.ChrgitmLv == "2" {
- chinese_medicine_clab_amt, _ = decimal.NewFromFloat(chinese_medicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
- if item.ChrgitmLv == "3" {
- chinese_medicine_other_amt, _ = decimal.NewFromFloat(chinese_medicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "11" { //中成费
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "12" { //中成费
- commonlyTreatmentCostTotal, _ = decimal.NewFromFloat(commonlyTreatmentCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- commonlyTreatmentCostSelfTotal, _ = decimal.NewFromFloat(commonlyTreatmentCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- commonlyTreatmentCostPartSelfTotal, _ = decimal.NewFromFloat(commonlyTreatmentCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- commonly_treatment_fulamt_ownpay_amt, _ = decimal.NewFromFloat(commonly_treatment_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- commonly_treatment_claa_sunmfee, _ = decimal.NewFromFloat(commonly_treatment_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- commonly_treatment_clab_amt, _ = decimal.NewFromFloat(commonly_treatment_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- commonly_treatment_other_amt, _ = decimal.NewFromFloat(commonly_treatment_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "13" { //中成费
- registerCostTotal, _ = decimal.NewFromFloat(registerCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- registerCostSelfTotal, _ = decimal.NewFromFloat(registerCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- registerPartSelfTotal, _ = decimal.NewFromFloat(registerPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- register_fulamt_ownpay_amt, _ = decimal.NewFromFloat(register_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
-
- register_claa_sunmfee, _ = decimal.NewFromFloat(register_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- register_clab_amt, _ = decimal.NewFromFloat(register_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- register_other_amt, _ = decimal.NewFromFloat(register_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- if item.MedChrgitmType == "14" { //其他费
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
- if item.ChrgitmLv == "1" {
- other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.ChrgitmLv == "2" {
- other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
- if item.ChrgitmLv == "3" {
- other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- }
- }
-
- }
-
- var iteminfoStructs []service.IteminfoStruct
-
- if bedCostTotal != 0 {
- iteminfo.MedChrgitm = "01"
- iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt
- iteminfo.Amt = bedCostTotal
- iteminfo.ClaaSumfee = bed_claa_sunmfee
- iteminfo.ClabAmt = bed_clab_amt
- iteminfo.OthAmt = bed_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if examineCostTotal != 0 {
- iteminfo.MedChrgitm = "02"
- iteminfo.FulamtOwnpayAmt = examine_fulamt_ownpay_amt
- iteminfo.Amt = examineCostTotal
- iteminfo.ClaaSumfee = examine_claa_sunmfee
- iteminfo.ClabAmt = examine_clab_amt
- iteminfo.OthAmt = examine_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if checkCostTotal != 0 {
- iteminfo.MedChrgitm = "03"
- iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt
- iteminfo.Amt = checkCostTotal
- iteminfo.ClaaSumfee = check_claa_sunmfee
- iteminfo.ClabAmt = check_clab_amt
- iteminfo.OthAmt = check_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
-
- if laboratoryCostTotal != 0 {
- iteminfo.MedChrgitm = "04"
- iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt
- iteminfo.Amt = laboratoryCostTotal
- iteminfo.ClaaSumfee = laboratory_claa_sunmfee
- iteminfo.ClabAmt = laboratory_clab_amt
- iteminfo.OthAmt = laboratory_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
-
- }
-
- if treatCostTotal != 0 {
- iteminfo.MedChrgitm = "05"
- iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt
- iteminfo.Amt = treatCostTotal
- iteminfo.ClaaSumfee = treat_claa_sunmfee
- iteminfo.ClabAmt = treat_clab_amt
- iteminfo.OthAmt = treat_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- //(struct4101.IteminfoStruct, iteminfo)
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- }
-
- if operationCostTotal != 0 {
- iteminfo.MedChrgitm = "06"
- iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt
- iteminfo.Amt = operationCostTotal
- iteminfo.ClaaSumfee = operation_claa_sunmfee
- iteminfo.ClabAmt = operation_clab_amt
- iteminfo.OthAmt = operation_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if nursingCostTotal != 0 {
- iteminfo.MedChrgitm = "07"
- iteminfo.FulamtOwnpayAmt = nursing_fulamt_ownpay_amt
- iteminfo.Amt = nursingCostTotal
- iteminfo.ClaaSumfee = nursing_claa_sunmfee
- iteminfo.ClabAmt = nursing_clab_amt
- iteminfo.OthAmt = nursing_other_amt
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if materialCostTotal != 0 {
- iteminfo.MedChrgitm = "08"
- iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt
- iteminfo.Amt = materialCostTotal
- iteminfo.ClaaSumfee = material_claa_sunmfee
- iteminfo.ClabAmt = material_clab_amt
- iteminfo.OthAmt = material_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
- }
-
- if westernMedicineCostTotal != 0 {
- iteminfo.MedChrgitm = "09"
- iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt
- iteminfo.Amt = westernMedicineCostTotal
- iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee
- iteminfo.ClabAmt = westernMedicine_clab_amt
- iteminfo.OthAmt = westernMedicine_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
-
- if chineseMedicineCostTotal != 0 {
- iteminfo.MedChrgitm = "10"
- iteminfo.FulamtOwnpayAmt = chinese_medicine_fulamt_ownpay_amt
- iteminfo.Amt = chineseMedicineCostTotal
- iteminfo.ClaaSumfee = chinese_medicine_claa_sunmfee
- iteminfo.ClabAmt = chinese_medicine_clab_amt
- iteminfo.OthAmt = chinese_medicine_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
-
- if chineseTraditionalMedicineCostTotal != 0 {
- iteminfo.MedChrgitm = "11"
- iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt
- iteminfo.Amt = westernMedicineCostTotal
- iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee
- iteminfo.ClabAmt = westernMedicine_clab_amt
- iteminfo.OthAmt = westernMedicine_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
-
- if commonlyTreatmentCostTotal != 0 {
- iteminfo.MedChrgitm = "12"
- iteminfo.FulamtOwnpayAmt = commonly_treatment_fulamt_ownpay_amt
- iteminfo.Amt = commonlyTreatmentCostTotal
- iteminfo.ClaaSumfee = commonly_treatment_claa_sunmfee
- iteminfo.ClabAmt = commonly_treatment_clab_amt
- iteminfo.OthAmt = commonly_treatment_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
-
- if registerCostTotal != 0 {
- iteminfo.MedChrgitm = "13"
- iteminfo.FulamtOwnpayAmt = register_fulamt_ownpay_amt
- iteminfo.Amt = registerCostTotal
- iteminfo.ClaaSumfee = register_claa_sunmfee
- iteminfo.ClabAmt = register_clab_amt
- iteminfo.OthAmt = register_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
-
- if otherCostTotal != 0 {
- iteminfo.MedChrgitm = "14"
- iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt
- iteminfo.Amt = otherCostTotal
- iteminfo.ClaaSumfee = other_claa_sunmfee
- iteminfo.ClabAmt = other_clab_amt
- iteminfo.OthAmt = other_other_amt
- //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
- iteminfoStructs = append(iteminfoStructs, iteminfo)
-
- }
- struct4101.IteminfoStruct = iteminfoStructs
- time_arr := strings.Split(order.SetlTime, " ")
- struct4101.AdmTime = time_arr[0]
- struct4101.AdmEndTime = time_arr[0]
-
- struct4101.DoctorName = doctor.UserName
- struct4101.DoctorCode = doctor.DoctorNumber
-
- struct4101.Ntly = "中国"
- struct4101.AdmCaty = "A03.06"
- var res ResultSeventeen
- if miConfig.MdtrtareaAdmvs == "421300" {
- data := make(map[string]interface{})
- data["struct4101"] = struct4101
- data["secret_key"] = miConfig.SecretKey
- data["org_name"] = miConfig.OrgName
- data["opera"] = curRoles.UserName
- data["code"] = miConfig.Code
- data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs
- data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
-
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/4101", bytes.NewReader(bytesData))
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res.ErrMsg + "解析失败",
- Status: 1,
- PatientId: order_id,
- Stage: 10088,
- }
- service.CreateErrMsgLog(errlog)
- continue
- }
-
- } else {
- result := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, c.GetAdminUserInfo().CurrentOrgId)
- fmt.Println(result)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res.ErrMsg + "解析失败",
- Status: 1,
- PatientId: order_id,
- Stage: 10106,
- }
- service.CreateErrMsgLog(errlog)
- continue
- }
- }
-
- if res.Infcode != 0 {
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: order_id,
- Stage: 10106,
- }
- service.CreateErrMsgLog(errlog)
- continue
- } else {
- hisFundSettleListResult := &models.HisFundSettleListResult{
- Number: res.Output.SetlListId,
- Status: 1,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- IsUpload: 1,
- OrderId: order_id,
- }
- service.CreateUploadRecord(hisFundSettleListResult)
- continue
- }
- }
- }
-
- func (c *HisApiController) GetOrgInfo() {
- miConfig, _ := service.FindMedicalInsuranceInfo(4)
- service.Gdyb1201("", miConfig.OrgName, "1122", miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, "")
-
- }
-
- func (c *HisApiController) GetHisPatientInfo() {
-
- medical_insurance_card := c.GetString("medical_insurance_card")
- id_card_type, _ := c.GetInt64("id_card_type")
- id_card := c.GetString("id_card")
-
- adminInfo := c.GetAdminUserInfo()
- config, _ := service.GetMedicalInsuranceConfig(adminInfo.CurrentOrgId)
- miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId)
-
- appRole, _ := service.GetAppRole(adminInfo.CurrentOrgId)
-
- IdCardNo := ""
-
- if id_card_type == 1 {
- IdCardNo = medical_insurance_card
- } else if id_card_type == 2 {
- IdCardNo = id_card
- }
-
- if config.IsOpen == 1 {
- api := "http://127.0.0.1:9532/" + "gdyb/one?cert_no=" + IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + appRole.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
-
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- userJSON := respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(userJSON)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- if res.Infcode == 0 {
- his := models.VMHisPatient{
- Status: 1,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- PsnNo: res.Output.Baseinfo.PsnNo,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- Certno: res.Output.Baseinfo.Certno,
- PsnName: res.Output.Baseinfo.PsnName,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- Brdy: res.Output.Baseinfo.Brdy,
- Age: res.Output.Baseinfo.Age,
- Iinfo: infoStr,
- Idetinfo: idetinfoStr,
- UserOrgId: adminInfo.CurrentOrgId,
- IsReturn: 1,
- IdCardType: id_card_type,
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "info": his,
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
- }
- }
-
- //func GetBasBaseInfo() (jsonStr string, err error) {
- //
- // handle := syscall.NewLazyDLL("SSCard.dll")
- // add := handle.NewProc("ReadCardBas")
- // str := make([]byte, 1024)
- // str1 := make([]byte, 1024)
- // ret, _, _ := add.Call((uintptr)(unsafe.Pointer(&str[0])), IntPtr(1024), (uintptr)(unsafe.Pointer(&str1[0])), IntPtr(1024))
- // fmt.Println(ConvertToString(string(str), "gbk", "utf-8"))
- //
- // fmt.Println(ConvertToString(string(str1), "gbk", "utf-8"))
- //
- // fmt.Println("> Add(4,5)的结果为:", ret)
- // handle.Release()
- //
- // return "", nil
- //
- //}
-
- //func GetQRBaseInfo() (jsonStr string, err error) {
- // handle := syscall.LoadDLL("SSCard.dll")
- // ReadCardBas := handle.FindProc("GetQRBase")
- //
- // str := make([]byte, 256)
- // str1 := make([]byte, 256)
- // r, _, _ := ReadCardBas.Call((uintptr)(unsafe.Pointer(&str[0])), IntPtr(1024), (uintptr)(unsafe.Pointer(&str1[0])), IntPtr(1024))
- //
- // fmt.Println(string(str))
- // fmt.Println(r)
- // return string(str), nil
- //}
-
- //func CardInit() int {
- // DllTestDef := syscall.MustLoadDLL("SSCard.dll")
- // add := DllTestDef.MustFindProc("Init")
- // ret, _, err := add.Call(StrPtr("http://igb.hsa.gdgov.cn/gdyb_inf/poc/api/card/initDll"), StrPtr("440200"))
- // if err != nil {
- // fmt.Println("SSCard的运算结果为:", ret)
- // }
- // result := int(ret)
- // return result
- //}
-
- //func CardInit() int {
- // ret, _, err := add.Call(StrPtr("http://igb.hsa.gdgov.cn/gdyb_inf/poc/api/card/initDll"), StrPtr("440200"))
- // if err != nil {
- // fmt.Println("SSCard的运算结果为:", ret)
- // }
- // fmt.Println(err)
- // result := int(ret)
- // return result
- //}
-
- func IntPtr(n int) uintptr {
- return uintptr(n)
- }
-
- func StrPtr(s string) uintptr {
- return uintptr(unsafe.Pointer(syscall.StringBytePtr(s)))
- }
-
- type Result2001 struct {
- Cainfo interface{} `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Trtinfo struct {
- PsnNo string `json:"psn_no"`
- TrtChkType string `json:"trt_chk_type"`
- FundPayType string `json:"fund_pay_type"`
- TrtEnjymntFlag string `json:"trt_enjymnt_flag"`
- Begndate string `json:"begndate"`
- Enddate string `json:"enddate"`
- TrtChkRslt string `json:"trt_chk_rslt"`
- } `json:"trtinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
- type Result2001Org10265 struct {
- Cainfo interface{} `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Trtinfo struct {
- PsnNo string `json:"psn_no"`
- TrtChkType string `json:"trt_chk_type"`
- FundPayType string `json:"fund_pay_type"`
- TrtEnjymntFlag string `json:"trt_enjymnt_flag"`
- Begndate string `json:"begndate"`
- Enddate string `json:"enddate"`
- TrtChkRslt string `json:"trt_chk_rslt"`
- } `json:"trtinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultTwo struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Baseinfo struct {
- Age float64 `json:"age"`
- Brdy string `json:"brdy"`
- Certno string `json:"certno"`
- Gend string `json:"gend"`
- Naty string `json:"naty"`
- PsnCertType string `json:"psn_cert_type"`
- PsnName string `json:"psn_name"`
- PsnNo string `json:"psn_no"`
- } `json:"baseinfo"`
- Idetinfo []interface{} `json:"idetinfo"`
- Iinfo []struct {
- Balc float64 `json:"balc"`
- CvlservFlag string `json:"cvlserv_flag"`
- EmpName string `json:"emp_name"`
- InsuplcAdmdvs string `json:"insuplc_admdvs"`
- Insutype string `json:"insutype"`
- PausInsuDansuplcAdmdvs string `json:"paus_insu_dansuplc_admdvs"`
- PausInsuDate string `json:"paus_insu_date"`
- PsnInsuDate string `json:"psn_insu_date"`
- PsnInsuStas string `json:"psn_insu_stas"`
- PsnType string `json:"psn_type"`
- } `json:"insuinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type ResultTwo10265 struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Baseinfo struct {
- Age float64 `json:"age"`
- Brdy string `json:"brdy"`
- Certno string `json:"certno"`
- Gend string `json:"gend"`
- Naty string `json:"naty"`
- PsnCertType string `json:"psn_cert_type"`
- PsnName string `json:"psn_name"`
- PsnNo string `json:"psn_no"`
- } `json:"baseinfo"`
- Idetinfo []interface{} `json:"idetinfo"`
- Iinfo []struct {
- Balc float64 `json:"balc"`
- CvlservFlag string `json:"cvlserv_flag"`
- EmpName string `json:"emp_name"`
- InsuplcAdmdvs string `json:"insuplc_admdvs"`
- Insutype string `json:"insutype"`
- PausInsuDansuplcAdmdvs string `json:"paus_insu_dansuplc_admdvs"`
- PausInsuDate string `json:"paus_insu_date"`
- PsnInsuDate string `json:"psn_insu_date"`
- PsnInsuStas string `json:"psn_insu_stas"`
- PsnType string `json:"psn_type"`
- } `json:"insuinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type ResultThree struct {
- Cainfo interface{} `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Data struct {
- IptOtpNo string `json:"ipt_otp_no"`
- MdtrtID string `json:"mdtrt_id"`
- PsnNo string `json:"psn_no"`
- } `json:"data"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultThree10265 struct {
- Cainfo interface{} `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Data struct {
- IptOtpNo string `json:"ipt_otp_no"`
- MdtrtID string `json:"mdtrt_id"`
- PsnNo string `json:"psn_no"`
- } `json:"data"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultFour struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Result []struct {
- BasMednFlag string `json:"bas_medn_flag"`
- ChldMedcFlag string `json:"chld_medc_flag"`
- ChrgitmLv string `json:"chrgitm_lv"`
- Cnt float64 `json:"cnt"`
- DetItemFeeSumamt float64 `json:"det_item_fee_sumamt"`
- DrtReimFlag string `json:"drt_reim_flag"`
- FeedetlSn string `json:"feedetl_sn"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- HiNegoDrugFlag string `json:"hi_nego_drug_flag"`
- InscpScpAmt float64 `json:"inscp_scp_amt"`
- ListSpItemFlag string `json:"list_sp_item_flag"`
- LmtUsedFlag string `json:"lmt_used_flag"`
- MedChrgitmType string `json:"med_chrgitm_type"`
- Memo string `json:"memo"`
- OverlmtAmt float64 `json:"overlmt_amt"`
- PreselfpayAmt float64 `json:"preselfpay_amt"`
- Pric float64 `json:"pric"`
- PricUplmtAmt float64 `json:"pric_uplmt_amt"`
- SelfpayProp float64 `json:"selfpay_prop"`
- } `json:"result"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype string `json:"signtype"`
- WarnMsg string `json:"warn_msg"`
- }
- type ResultFour10265 struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Result []struct {
- BasMednFlag string `json:"bas_medn_flag"`
- ChldMedcFlag string `json:"chld_medc_flag"`
- ChrgitmLv string `json:"chrgitm_lv"`
- Cnt float64 `json:"cnt"`
- DetItemFeeSumamt float64 `json:"det_item_fee_sumamt"`
- DrtReimFlag string `json:"drt_reim_flag"`
- FeedetlSn string `json:"feedetl_sn"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- HiNegoDrugFlag string `json:"hi_nego_drug_flag"`
- InscpScpAmt float64 `json:"inscp_scp_amt"`
- ListSpItemFlag string `json:"list_sp_item_flag"`
- LmtUsedFlag string `json:"lmt_used_flag"`
- MedChrgitmType string `json:"med_chrgitm_type"`
- Memo string `json:"memo"`
- OverlmtAmt float64 `json:"overlmt_amt"`
- PreselfpayAmt float64 `json:"preselfpay_amt"`
- Pric float64 `json:"pric"`
- PricUplmtAmt float64 `json:"pric_uplmt_amt"`
- SelfpayProp float64 `json:"selfpay_prop"`
- } `json:"result"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype string `json:"signtype"`
- WarnMsg string `json:"warn_msg"`
- }
-
- type ResultFive struct {
- Balc float64 `json:"balc"`
- CvlservFlag string `json:"cvlserv_flag"`
- EmpName string `json:"emp_name"`
- InsuplcAdmdvs string `json:"insuplc_admdvs"`
- Insutype string `json:"insutype"`
- PausInsuDansuplcAdmdvs string `json:"paus_insu_dansuplc_admdvs"`
- PausInsuDate string `json:"paus_insu_date"`
- PsnInsuDate string `json:"psn_insu_date"`
- PsnInsuStas string `json:"psn_insu_stas"`
- PsnType string `json:"psn_type"`
- }
- type ResultSix struct {
- Cainfo interface{} `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultSix10265 struct {
- Cainfo interface{} `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultSeven struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Setldetail []interface{} `json:"setldetail"`
- Setlinfo struct {
- AcctMulaidPay float64 `json:"acct_mulaid_pay"`
- AcctPay float64 `json:"acct_pay"`
- ActPayDedc float64 `json:"act_pay_dedc"`
- Age float64 `json:"age"`
- Balc float64 `json:"balc"`
- Brdy string `json:"brdy"`
- Certno string `json:"certno"`
- ClrOptins string `json:"clr_optins"`
- ClrType string `json:"clr_type"`
- ClrWay string `json:"clr_way"`
- CvlservFlag string `json:"cvlserv_flag"`
- CvlservPay float64 `json:"cvlserv_pay"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- FundPaySumamt float64 `json:"fund_pay_sumamt"`
- Gend string `json:"gend"`
- HifesPay float64 `json:"hifes_pay"`
- HifmiPay float64 `json:"hifmi_pay"`
- HifpPay float64 `json:"hifp_pay"`
- HospPartAmt float64 `json:"hosp_part_amt"`
- InscpScpAmt float64 `json:"inscp_scp_amt"`
- Insutype string `json:"insutype"`
- MafPay float64 `json:"maf_pay"`
- MdtrtCertType string `json:"mdtrt_cert_type"`
- HifobPay float64 `json:"hifob_pay"`
-
- MdtrtID string `json:"mdtrt_id"`
- MedType string `json:"med_type"`
- MedfeeSumamt float64 `json:"medfee_sumamt"`
- MedinsSetlID string `json:"medins_setl_id"`
- Naty string `json:"naty"`
- OthPay float64 `json:"oth_pay"`
- OverlmtSelfpay float64 `json:"overlmt_selfpay"`
- PoolPropSelfpay float64 `json:"pool_prop_selfpay"`
- PreselfpayAmt float64 `json:"preselfpay_amt"`
- PsnCashPay float64 `json:"psn_cash_pay"`
- PsnCertType string `json:"psn_cert_type"`
- PsnName string `json:"psn_name"`
- PsnNo string `json:"psn_no"`
- PsnPartAmt float64 `json:"psn_part_amt"`
- PsnType string `json:"psn_type"`
- SetlID string `json:"setl_id"`
- SetlTime string `json:"setl_time"`
- } `json:"setlinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
- type ResultSeven10265 struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Setldetail []interface{} `json:"setldetail"`
- Setlinfo struct {
- AcctMulaidPay float64 `json:"acct_mulaid_pay"`
- AcctPay float64 `json:"acct_pay"`
- ActPayDedc float64 `json:"act_pay_dedc"`
- Age float64 `json:"age"`
- Balc float64 `json:"balc"`
- Brdy string `json:"brdy"`
- Certno string `json:"certno"`
- ClrOptins string `json:"clr_optins"`
- ClrType string `json:"clr_type"`
- ClrWay string `json:"clr_way"`
- CvlservFlag string `json:"cvlserv_flag"`
- CvlservPay float64 `json:"cvlserv_pay"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- FundPaySumamt float64 `json:"fund_pay_sumamt"`
- Gend string `json:"gend"`
- HifesPay float64 `json:"hifes_pay"`
- HifmiPay float64 `json:"hifmi_pay"`
- HifpPay float64 `json:"hifp_pay"`
- HospPartAmt float64 `json:"hosp_part_amt"`
- InscpScpAmt float64 `json:"inscp_scp_amt"`
- Insutype string `json:"insutype"`
- MafPay float64 `json:"maf_pay"`
- MdtrtCertType string `json:"mdtrt_cert_type"`
- HifobPay float64 `json:"hifob_pay"`
-
- MdtrtID string `json:"mdtrt_id"`
- MedType string `json:"med_type"`
- MedfeeSumamt float64 `json:"medfee_sumamt"`
- MedinsSetlID string `json:"medins_setl_id"`
- Naty string `json:"naty"`
- OthPay float64 `json:"oth_pay"`
- OverlmtSelfpay float64 `json:"overlmt_selfpay"`
- PoolPropSelfpay float64 `json:"pool_prop_selfpay"`
- PreselfpayAmt float64 `json:"preselfpay_amt"`
- PsnCashPay float64 `json:"psn_cash_pay"`
- PsnCertType string `json:"psn_cert_type"`
- PsnName string `json:"psn_name"`
- PsnNo string `json:"psn_no"`
- PsnPartAmt float64 `json:"psn_part_amt"`
- PsnType string `json:"psn_type"`
- SetlID string `json:"setl_id"`
- SetlTime string `json:"setl_time"`
- } `json:"setlinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultEight struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Stmtinfo struct {
- SetlOptins string `json:"setl_optins"`
- StmtRslt string `json:"stmt_rslt"`
- StmtRsltDscr string `json:"stmt_rslt_dscr"`
- } `json:"stmtinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultEightFor10188 struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Stmtinfo struct {
- SetlOptins string `json:"setl_optins"`
- StmtRslt string `json:"stmt_rslt"`
- StmtRsltDscr string `json:"stmt_rslt_dscr"`
- } `json:"stmtinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
- type ResultNine struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- FileQuryNo string `json:"file_qury_no"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
- type ResultTen struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- DldEndtime string `json:"dld_endtime"`
- FileQuryNo string `json:"file_qury_no"`
- Filename string `json:"filename"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- //type Autogenerated struct {
- // Output struct {
- // Setlinfo struct {
- // SetlTime string `json:"setl_time"`
- // CvlservPay float64 `json:"cvlserv_pay"`
- // Year string `json:"year"`
- // MedType string `json:"med_type"`
- // PsnPay float64 `json:"psn_pay"`
- // OpterID string `json:"opter_id"`
- // Begndate string `json:"begndate"`
- // FlxempeFlag string `json:"flxempe_flag"`
- // HifmiPay float64 `json:"hifmi_pay"`
- // PsnNo string `json:"psn_no"`
- // ActPayDedc float64 `json:"act_pay_dedc"`
- // MedinsSetlID interface{} `json:"medins_setl_id"`
- // AcctMulaidPay interface{} `json:"acct_mulaid_pay"`
- // ClrWay string `json:"clr_way"`
- // OthPay float64 `json:"oth_pay"`
- // Gend string `json:"gend"`
- // MdtrtID string `json:"mdtrt_id"`
- // AcctPay float64 `json:"acct_pay"`
- // InscpScpAmt float64 `json:"inscp_scp_amt"`
- // Insutype string `json:"insutype"`
- // Invono interface{} `json:"invono"`
- // Enddate string `json:"enddate"`
- // CashPayamt float64 `json:"cash_payamt"`
- // PsnType string `json:"psn_type"`
- // FixmedinsName string `json:"fixmedins_name"`
- // HifpPay float64 `json:"hifp_pay"`
- // NewFlag interface{} `json:"new_flag"`
- // OverlmtSelfpay float64 `json:"overlmt_selfpay"`
- // PreselfpayAmt float64 `json:"preselfpay_amt"`
- // PayLoc string `json:"pay_loc"`
- // ClrType string `json:"clr_type"`
- // RefdSetlFlag string `json:"refd_setl_flag"`
- // CvlservFlag string `json:"cvlserv_flag"`
- // EmpName string `json:"emp_name"`
- // Brdy string `json:"brdy"`
- // Naty string `json:"naty"`
- // Certno string `json:"certno"`
- // DiseCode string `json:"dise_code"`
- // FixmedinsCode string `json:"fixmedins_code"`
- // DedcHospLv string `json:"dedc_hosp_lv"`
- // OpterName string `json:"opter_name"`
- // Balc float64 `json:"balc"`
- // FixmedinsPoolarea string `json:"fixmedins_poolarea"`
- // PsnCertType string `json:"psn_cert_type"`
- // HifobPay float64 `json:"hifob_pay"`
- // MedfeeSumamt float64 `json:"medfee_sumamt"`
- // HifesPay float64 `json:"hifes_pay"`
- // FundPaySumamt float64 `json:"fund_pay_sumamt"`
- // OptTime string `json:"opt_time"`
- // FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- // SetlID string `json:"setl_id"`
- // MafPay float64 `json:"maf_pay"`
- // PsnName string `json:"psn_name"`
- // InsuOptins interface{} `json:"insu_optins"`
- // PrefFundPay interface{} `json:"pref_fund_pay"`
- // ClrOptins string `json:"clr_optins"`
- // PoolPropSelfpay float64 `json:"pool_prop_selfpay"`
- // DiseName string `json:"dise_name"`
- // LmtpricHospLv string `json:"lmtpric_hosp_lv"`
- // Age float64 `json:"age"`
- // DtrtCertType string `json:"dtrt_cert_type"`
- // HospLv string `json:"hosp_lv"`
- // } `json:"setlinfo"`
- // Setldetail []struct {
- // FundPayType string `json:"fund_pay_type"`
- // FundPayamt float64 `json:"fund_payamt"`
- // SetlProcInfo interface{} `json:"setl_proc_info"`
- // CrtPaybLmtAmt interface{} `json:"crt_payb_lmt_amt"`
- // InscpScpAmt interface{} `json:"inscp_scp_amt"`
- // FundPayTypeName interface{} `json:"fund_pay_type_name"`
- // PrefFundPay interface{} `json:"pref_fund_pay"`
- // } `json:"setldetail"`
- // } `json:"output"`
- // Infcode int `json:"infcode"`
- // WarnMsg interface{} `json:"warn_msg"`
- // Cainfo interface{} `json:"cainfo"`
- // ErrMsg interface{} `json:"err_msg"`
- // RefmsgTime string `json:"refmsg_time"`
- // Signtype interface{} `json:"signtype"`
- // RespondTime string `json:"respond_time"`
- // InfRefmsgid string `json:"inf_refmsgid"`
- //}
-
- type ResultEleven struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Setlinfo struct {
- SetlTime string `json:"setl_time"`
- CvlservPay float64 `json:"cvlserv_pay"`
- Year string `json:"year"`
- MedType string `json:"med_type"`
- PsnPay float64 `json:"psn_pay"`
- OpterID string `json:"opter_id"`
- Begndate string `json:"begndate"`
- FlxempeFlag string `json:"flxempe_flag"`
- HifmiPay float64 `json:"hifmi_pay"`
- PsnNo string `json:"psn_no"`
- ActPayDedc float64 `json:"act_pay_dedc"`
- MedinsSetlID interface{} `json:"medins_setl_id"`
- AcctMulaidPay interface{} `json:"acct_mulaid_pay"`
- ClrWay string `json:"clr_way"`
- OthPay float64 `json:"oth_pay"`
- Gend string `json:"gend"`
- MdtrtID string `json:"mdtrt_id"`
- AcctPay float64 `json:"acct_pay"`
- InscpScpAmt float64 `json:"inscp_scp_amt"`
- Insutype string `json:"insutype"`
- Invono interface{} `json:"invono"`
- Enddate string `json:"enddate"`
- CashPayamt float64 `json:"cash_payamt"`
- PsnType string `json:"psn_type"`
- FixmedinsName string `json:"fixmedins_name"`
- HifpPay float64 `json:"hifp_pay"`
- NewFlag interface{} `json:"new_flag"`
- OverlmtSelfpay float64 `json:"overlmt_selfpay"`
- PreselfpayAmt float64 `json:"preselfpay_amt"`
- PayLoc string `json:"pay_loc"`
- ClrType string `json:"clr_type"`
- RefdSetlFlag string `json:"refd_setl_flag"`
- CvlservFlag string `json:"cvlserv_flag"`
- EmpName string `json:"emp_name"`
- Brdy string `json:"brdy"`
- Naty string `json:"naty"`
- Certno string `json:"certno"`
- DiseCode string `json:"dise_code"`
- FixmedinsCode string `json:"fixmedins_code"`
- DedcHospLv string `json:"dedc_hosp_lv"`
- OpterName string `json:"opter_name"`
- Balc float64 `json:"balc"`
- FixmedinsPoolarea string `json:"fixmedins_poolarea"`
- PsnCertType string `json:"psn_cert_type"`
- HifobPay float64 `json:"hifob_pay"`
- MedfeeSumamt float64 `json:"medfee_sumamt"`
- HifesPay float64 `json:"hifes_pay"`
- FundPaySumamt float64 `json:"fund_pay_sumamt"`
- OptTime string `json:"opt_time"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- SetlID string `json:"setl_id"`
- MafPay float64 `json:"maf_pay"`
- PsnName string `json:"psn_name"`
- InsuOptins interface{} `json:"insu_optins"`
- PrefFundPay interface{} `json:"pref_fund_pay"`
- ClrOptins string `json:"clr_optins"`
- PoolPropSelfpay float64 `json:"pool_prop_selfpay"`
- DiseName string `json:"dise_name"`
- LmtpricHospLv string `json:"lmtpric_hosp_lv"`
- Age float64 `json:"age"`
- DtrtCertType string `json:"dtrt_cert_type"`
- HospLv string `json:"hosp_lv"`
- PsnCashPay float64
- } `json:"setlinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
- type ResultEleven10265 struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Setlinfo struct {
- SetlTime string `json:"setl_time"`
- CvlservPay float64 `json:"cvlserv_pay"`
- Year string `json:"year"`
- MedType string `json:"med_type"`
- PsnPay float64 `json:"psn_pay"`
- OpterID string `json:"opter_id"`
- Begndate string `json:"begndate"`
- FlxempeFlag string `json:"flxempe_flag"`
- HifmiPay float64 `json:"hifmi_pay"`
- PsnNo string `json:"psn_no"`
- ActPayDedc float64 `json:"act_pay_dedc"`
- MedinsSetlID interface{} `json:"medins_setl_id"`
- AcctMulaidPay interface{} `json:"acct_mulaid_pay"`
- ClrWay string `json:"clr_way"`
- OthPay float64 `json:"oth_pay"`
- Gend string `json:"gend"`
- MdtrtID string `json:"mdtrt_id"`
- AcctPay float64 `json:"acct_pay"`
- InscpScpAmt float64 `json:"inscp_scp_amt"`
- Insutype string `json:"insutype"`
- Invono interface{} `json:"invono"`
- Enddate string `json:"enddate"`
- CashPayamt float64 `json:"cash_payamt"`
- PsnType string `json:"psn_type"`
- FixmedinsName string `json:"fixmedins_name"`
- HifpPay float64 `json:"hifp_pay"`
- NewFlag interface{} `json:"new_flag"`
- OverlmtSelfpay float64 `json:"overlmt_selfpay"`
- PreselfpayAmt float64 `json:"preselfpay_amt"`
- PayLoc string `json:"pay_loc"`
- ClrType string `json:"clr_type"`
- RefdSetlFlag string `json:"refd_setl_flag"`
- CvlservFlag string `json:"cvlserv_flag"`
- EmpName string `json:"emp_name"`
- Brdy string `json:"brdy"`
- Naty string `json:"naty"`
- Certno string `json:"certno"`
- DiseCode string `json:"dise_code"`
- FixmedinsCode string `json:"fixmedins_code"`
- DedcHospLv string `json:"dedc_hosp_lv"`
- OpterName string `json:"opter_name"`
- Balc float64 `json:"balc"`
- FixmedinsPoolarea string `json:"fixmedins_poolarea"`
- PsnCertType string `json:"psn_cert_type"`
- HifobPay float64 `json:"hifob_pay"`
- MedfeeSumamt float64 `json:"medfee_sumamt"`
- HifesPay float64 `json:"hifes_pay"`
- FundPaySumamt float64 `json:"fund_pay_sumamt"`
- OptTime string `json:"opt_time"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- SetlID string `json:"setl_id"`
- MafPay float64 `json:"maf_pay"`
- PsnName string `json:"psn_name"`
- InsuOptins interface{} `json:"insu_optins"`
- PrefFundPay interface{} `json:"pref_fund_pay"`
- ClrOptins string `json:"clr_optins"`
- PoolPropSelfpay float64 `json:"pool_prop_selfpay"`
- DiseName string `json:"dise_name"`
- LmtpricHospLv string `json:"lmtpric_hosp_lv"`
- Age float64 `json:"age"`
- DtrtCertType string `json:"dtrt_cert_type"`
- HospLv string `json:"hosp_lv"`
- PsnCashPay float64
- } `json:"setlinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultTwelve struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- MdtrtId string `json:"mdtrt_id"`
- ChrgBchno string `json:"chrg_bchno"`
- PsnNo string `json:"psn_no"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultThirteen struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Result struct {
- TrtDclaDetlSn string `json:"trt_dcla_detl_sn"`
- } `json:"result"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type ResultThirteen10265 struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Result struct {
- TrtDclaDetlSn string `json:"trt_dcla_detl_sn"`
- } `json:"result"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type ResultFourteen struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type ResultFourteen10265 struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type ResultSixteen struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Setldetail []interface{} `json:"setldetail"`
- Setlinfo struct {
- MdtrtID string `json:"mdtrt_id"`
- SetlID string `json:"setl_id"`
- ClrOptins string `json:"clr_optins"`
- SetlTime string `json:"setl_time"`
- MedfeeSumamt float64 `json:"medfee_sumamt"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- OverlmtSelfpay float64 `json:"overlmt_selfpay"`
- PreselfpayAmt float64 `json:"preselfpay_amt"`
- InscpScpAmt float64 `json:"inscp_scp_amt"`
- ActPayDedc float64 `json:"act_pay_dedc"`
- HifpPay float64 `json:"hifp_pay"`
- PoolPropSe float64 `json:"pool_prop_selfpay"`
- Lfpay float64 `json:"selfpay"`
- CvlservPay float64 `json:"cvlserv_pay"`
- HifesPay float64 `json:"hifes_pay"`
- HifmiPay float64 `json:"hifmi_pay"`
- HifobPay float64 `json:"hifob_pay"`
- MafPay float64 `json:"maf_pay"`
- OthPay float64 `json:"oth_pay"`
- FundPaySumamt float64 `json:"fund_pay_sumamt"`
- PsnPartAmt float64 `json:"psn_part_amt"`
- AcctPay float64 `json:"acct_pay"`
- Balc float64 `json:"balc"`
- AcctMulaidPay float64 `json:"acct_mulaid_pay"`
- HospPartAmt float64 `json:"hosp_part_amt"`
- MedinsSetlID string `json:"medins_setl_id"`
- PdnCashPay string `json:"pdn_cash_pay"`
- } `json:"setlinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
- type ResultSixteen10265 struct {
- Cainfo string `json:"cainfo"`
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Setldetail []interface{} `json:"setldetail"`
- Setlinfo struct {
- MdtrtID string `json:"mdtrt_id"`
- SetlID string `json:"setl_id"`
- ClrOptins string `json:"clr_optins"`
- SetlTime string `json:"setl_time"`
- MedfeeSumamt float64 `json:"medfee_sumamt"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"`
- OverlmtSelfpay float64 `json:"overlmt_selfpay"`
- PreselfpayAmt float64 `json:"preselfpay_amt"`
- InscpScpAmt float64 `json:"inscp_scp_amt"`
- ActPayDedc float64 `json:"act_pay_dedc"`
- HifpPay float64 `json:"hifp_pay"`
- PoolPropSe float64 `json:"pool_prop_selfpay"`
- Lfpay float64 `json:"selfpay"`
- CvlservPay float64 `json:"cvlserv_pay"`
- HifesPay float64 `json:"hifes_pay"`
- HifmiPay float64 `json:"hifmi_pay"`
- HifobPay float64 `json:"hifob_pay"`
- MafPay float64 `json:"maf_pay"`
- OthPay float64 `json:"oth_pay"`
- FundPaySumamt float64 `json:"fund_pay_sumamt"`
- PsnPartAmt float64 `json:"psn_part_amt"`
- AcctPay float64 `json:"acct_pay"`
- Balc float64 `json:"balc"`
- AcctMulaidPay float64 `json:"acct_mulaid_pay"`
- HospPartAmt float64 `json:"hosp_part_amt"`
- MedinsSetlID string `json:"medins_setl_id"`
- PdnCashPay string `json:"pdn_cash_pay"`
- } `json:"setlinfo"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnMsg interface{} `json:"warn_msg"`
- }
-
- type ResultSeventeen struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- SetlListId string `json:"setl_list_id"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype string `json:"signtype"`
- WarnInfo string `json:"warn_info"`
- }
-
- type ResultSeventeenOther struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- SetlListId string `json:"setl_list_id"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype string `json:"signtype"`
- WarnInfo string `json:"warn_info"`
- }
-
- type Result90991 struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Result struct {
- PsnNo string `json:"psn_no"`
- CardStat string `json:"card_stat"`
- Certno string `json:"certno"`
- PsnName string `json:"psn_name"`
- CheckStat string `json:"check_stat"`
- SscnoCheckStat string `json:"sscno_check_stat"`
- } `json:"result"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type Result90100 struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- PoolareaNo string `json:"poolarea_no"`
- PoolareaNoName string `json:"poolarea_no_name"`
- Insutype string `json:"insutype"`
- InsutypeName string `json:"insutype_name"`
- ClctType string `json:"clct_type"`
- ClctTypeName string `json:"clct_type_name"`
- ClctFlag string `json:"clct_flag"`
- ClctFlagName string `json:"clct_flag_name"`
- AccrymBegn string `json:"accrym_begn"`
- AccrymEnd string `json:"accrym_end"`
- ClctTime string `json:"clct_time"`
- ClctstdCrtfRuleCodg string `json:"clctstd_crtf_rule_codg"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type Custom struct {
- DetItemFeeSumamt string
- Cut string
- FeedetlSn string
- Price string
- MedListCodg string
- Type int64
- AdviceId int64
- ProjectId int64
- ItemId int64
- }
-
- type Result5301 struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode int64 `json:"infcode"`
- Output struct {
- Result []struct {
- OpspDiseCode string `json:"opsp_dise_code"`
- OpspDiseName string `json:"opsp_dise_name"`
- Begndate string `json:"begndate"`
- Enddate string `json:"enddate"`
- } `json:"feedetail"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- type Result5301For10265 struct {
- ErrMsg string `json:"err_msg"`
- InfRefmsgid string `json:"inf_refmsgid"`
- Infcode string `json:"infcode"`
- Output struct {
- Result []struct {
- OpspDiseCode string `json:"opsp_dise_code"`
- OpspDiseName string `json:"opsp_dise_name"`
- Begndate string `json:"begndate"`
- Enddate string `json:"enddate"`
- } `json:"feedetail"`
- } `json:"output"`
- RefmsgTime string `json:"refmsg_time"`
- RespondTime string `json:"respond_time"`
- Signtype interface{} `json:"signtype"`
- WarnInfo interface{} `json:"warn_info"`
- }
-
- //获取个人信息----挂号-----上传就诊信息
-
- func (c *HisApiController) GetRegisterInfo() {
- id, _ := c.GetInt64("id")
- record_time := c.GetString("record_time")
- settlementValue, _ := c.GetInt64("settlement_value")
- medical_insurance_card := c.GetString("medical_insurance_card")
- name := c.GetString("name")
- id_card_type, _ := c.GetInt64("id_card_type")
- certificates, _ := c.GetInt64("certificates")
- medical_care, _ := c.GetInt64("medical_care")
- birthday := c.GetString("birthday")
- id_card := c.GetString("id_card")
- register_type, _ := c.GetInt64("register")
- doctor, _ := c.GetInt64("doctor")
- department, _ := c.GetInt64("department")
- gender, _ := c.GetInt64("sex")
- registration_fee, _ := c.GetFloat("registration_fee")
- medical_expenses, _ := c.GetFloat("medical_expenses")
- social_type, _ := c.GetInt64("social_type")
- med_type := c.GetString("social_type")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- insuplc_admdvs := c.GetString("insuplc_admdvs")
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- birthdays, _ := time.ParseInLocation(timeLayout+" 15:04:05", birthday+" 00:00:00", loc)
- birthUnix := birthdays.Unix()
-
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordDateTime := theTime.Unix()
-
- adminInfo := c.GetAdminUserInfo()
- var patient service.Patients
- if id == 0 {
- patient, _ = service.GetPatientByIDCard(id_card, adminInfo.CurrentOrgId)
- } else {
- patient, _ = service.GetPatientByIDTwo(adminInfo.CurrentOrgId, id)
- }
- patientPrescription, _ := service.FindPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime)
- if patientPrescription.ID == 0 {
- patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime)
- }
-
- miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId)
- if patient.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist)
- return
- }
- if len(patient.IdCardNo) == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeIDCartNo)
- return
- }
- config, _ := service.GetMedicalInsuranceConfig(adminInfo.CurrentOrgId)
- roles, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, admin_user_id)
-
- doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, doctor)
-
- //就诊结算未完成,不能进行二次挂号
- his, _ := service.GetHisPatientInfoTwo(adminInfo.CurrentOrgId, patient.ID, recordDateTime)
- if len(his) >= 1 {
- order, _ := service.GetNewHisOrderTwo(adminInfo.CurrentOrgId, his[len(his)-1].Number, his[len(his)-1].PatientId, recordDateTime)
- if len(his) >= 1 && order.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisPatientParamWrong)
- return
- }
- }
-
- //var register_log string
-
- if config.IsOpen == 1 {
- var res ResultTwo
- var res10265 ResultTwo10265
- var PsnNo string
- var PsnCertType string
- var Certno string
- var PsnName string
- var Gend string
- var Naty string
- var Brdy string
- var Age float64
- var infoStr string
- var idetinfoStr string
- var infocode int64
- var verify_number string
- fmt.Println(verify_number)
- if miConfig.MdtrtareaAdmvs == "421300" {
- psn_info, _ := service.GetPsnByPatientId(id)
- PsnNo = psn_info.PsnNo
- PsnCertType = psn_info.PsnCertType
- Certno = psn_info.Certno
- PsnName = psn_info.PsnName
- Gend = psn_info.Gend
- Naty = psn_info.Naty
- Brdy = psn_info.Brdy
- Age = psn_info.Age
- infoStr = psn_info.Insuinfo
- idetinfoStr = psn_info.Idetinfo
- infocode = 0
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- psn_info, _ := service.GetPsnByPatientId(id)
- PsnNo = psn_info.PsnNo
- PsnCertType = psn_info.PsnCertType
- Certno = psn_info.Certno
- PsnName = psn_info.PsnName
- Gend = psn_info.Gend
- Naty = psn_info.Naty
- Brdy = psn_info.Brdy
- Age = psn_info.Age
- infoStr = psn_info.Insuinfo
- idetinfoStr = psn_info.Idetinfo
- infocode = 0
- verify_number = psn_info.VerifyNumber
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- if id_card_type == 1 {
- psn_info, _ := service.GetPsnByPatientId(id)
- PsnNo = psn_info.PsnNo
- PsnCertType = psn_info.PsnCertType
- Certno = psn_info.Certno
- PsnName = psn_info.PsnName
- Gend = psn_info.Gend
- Naty = psn_info.Naty
- Brdy = psn_info.Brdy
- Age = psn_info.Age
- infoStr = psn_info.Insuinfo
- idetinfoStr = psn_info.Idetinfo
- infocode = 0
- verify_number = psn_info.VerifyNumber
- } else if id_card_type == 2 {
-
- result, requestLog, errMsgLog := service.FJyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, id_card_type, patient.IdCardNo, certificates, miConfig.Url, miConfig.Cainfo, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- fmt.Println(errMsgLog)
- saveLog(result, requestLog, "1101", "人员基本信息获取")
-
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- PsnNo = res.Output.Baseinfo.PsnNo
- PsnCertType = res.Output.Baseinfo.PsnCertType
- Certno = res.Output.Baseinfo.Certno
- PsnName = res.Output.Baseinfo.PsnName
- Gend = res.Output.Baseinfo.Gend
- Naty = res.Output.Baseinfo.Naty
- Brdy = res.Output.Baseinfo.Brdy
- Age = res.Output.Baseinfo.Age
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr = string(Iinfos)
- idetinfoStr = string(Idetinfos)
- infocode = res.Infcode
- }
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- if id_card_type == 1 {
- psn_info, _ := service.GetPsnByPatientId(id)
- PsnNo = psn_info.PsnNo
- PsnCertType = psn_info.PsnCertType
- Certno = psn_info.Certno
- PsnName = psn_info.PsnName
- Gend = psn_info.Gend
- Naty = psn_info.Naty
- Brdy = psn_info.Brdy
- Age = psn_info.Age
- infoStr = psn_info.Insuinfo
- idetinfoStr = psn_info.Idetinfo
- infocode = 0
- verify_number = psn_info.VerifyNumber
-
- } else if id_card_type == 2 {
- result, requestLog := service.Jxyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", "1", miConfig.Url, miConfig.AccessKey, "")
- saveLog(result, requestLog, "1101", "人员基本信息获取")
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- PsnNo = res.Output.Baseinfo.PsnNo
- PsnCertType = res.Output.Baseinfo.PsnCertType
- Certno = res.Output.Baseinfo.Certno
- PsnName = res.Output.Baseinfo.PsnName
- Gend = res.Output.Baseinfo.Gend
- Naty = res.Output.Baseinfo.Naty
- Brdy = res.Output.Baseinfo.Brdy
- Age = res.Output.Baseinfo.Age
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr = string(Iinfos)
- idetinfoStr = string(Idetinfos)
- infocode = res.Infcode
-
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- if id_card_type == 1 {
- psn_info, _ := service.GetPsnByPatientId(id)
- PsnNo = psn_info.PsnNo
- PsnCertType = psn_info.PsnCertType
- Certno = psn_info.Certno
- PsnName = psn_info.PsnName
- Gend = psn_info.Gend
- Naty = psn_info.Naty
- Brdy = psn_info.Brdy
- Age = psn_info.Age
- infoStr = psn_info.Insuinfo
- idetinfoStr = psn_info.Idetinfo
- infocode = 0
- verify_number = psn_info.VerifyNumber
-
- } else if id_card_type == 2 {
- result, requestLog := service.Hnyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", "1", miConfig.Url, miConfig.AccessKey, "")
- saveLog(result, requestLog, "1101", "人员基本信息获取")
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- PsnNo = res.Output.Baseinfo.PsnNo
- PsnCertType = res.Output.Baseinfo.PsnCertType
- Certno = res.Output.Baseinfo.Certno
- PsnName = res.Output.Baseinfo.PsnName
- Gend = res.Output.Baseinfo.Gend
- Naty = res.Output.Baseinfo.Naty
- Brdy = res.Output.Baseinfo.Brdy
- Age = res.Output.Baseinfo.Age
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr = string(Iinfos)
- idetinfoStr = string(Idetinfos)
- infocode = res.Infcode
-
- }
-
- } else {
-
- var result string
- var requestLog string
- if miConfig.UserOrgId == 10138 {
- if id_card_type != 4 {
- //psn_info, _ := service.GetPsnByPatientId(id)
- //result, requestLog = service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, psn_info.VerifyNumber)
- result, requestLog = service.Gdyb1101D(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), name, record_time)
- }
- } else {
- result, requestLog = service.Gdyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), name)
- }
-
- if id_card_type == 4 {
- psn_info, _ := service.GetPsnByPatientId(id)
- PsnNo = psn_info.PsnNo
- PsnCertType = psn_info.PsnCertType
- Certno = psn_info.Certno
- PsnName = psn_info.PsnName
- Gend = psn_info.Gend
- Naty = psn_info.Naty
- Brdy = psn_info.Brdy
- Age = psn_info.Age
- infoStr = psn_info.Insuinfo
- idetinfoStr = psn_info.Idetinfo
- infocode = 0
- verify_number = psn_info.VerifyNumber
-
- } else {
- saveLog(result, requestLog, "1101", "人员基本信息获取")
- if miConfig.Code == "H15049901371" {
-
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- } else {
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- PsnNo = res.Output.Baseinfo.PsnNo
- PsnCertType = res.Output.Baseinfo.PsnCertType
- Certno = res.Output.Baseinfo.Certno
- PsnName = res.Output.Baseinfo.PsnName
- Gend = res.Output.Baseinfo.Gend
- Naty = res.Output.Baseinfo.Naty
- Brdy = res.Output.Baseinfo.Brdy
- Age = res.Output.Baseinfo.Age
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr = string(Iinfos)
- idetinfoStr = string(Idetinfos)
- if miConfig.Code == "H15049901371" {
- infocode, _ = strconv.ParseInt(res10265.Infcode, 10, 64)
- } else {
- infocode = res.Infcode
- }
-
- }
-
- }
- if infocode == 0 {
- his := models.VMHisPatient{
- Name: name,
- Gender: gender,
- Birthday: birthUnix,
- MedicalTreatmentType: medical_care,
- IdType: certificates,
- IdCardNo: id_card,
- BalanceAccountsType: settlementValue,
- SocialType: social_type,
- MedicalInsuranceNumber: medical_insurance_card,
- RegisterType: register_type,
- RegisterCost: registration_fee,
- TreatmentCost: medical_expenses,
- Status: 1,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- PsnNo: PsnNo,
- PsnCertType: PsnCertType,
- Certno: Certno,
- PsnName: PsnName,
- Gend: Gend,
- Naty: Naty,
- Brdy: Brdy,
- Age: Age,
- Iinfo: infoStr,
- Idetinfo: idetinfoStr,
- PatientId: patient.ID,
- RecordDate: theTime.Unix(),
- UserOrgId: adminInfo.CurrentOrgId,
- AdminUserId: admin_user_id,
- IsReturn: 1,
- IdCardType: id_card_type,
- Doctor: doctor,
- Departments: department,
- }
-
- timestamp := time.Now().Unix()
- tempTime := time.Unix(timestamp, 0)
- timeFormat := tempTime.Format("20060102150405")
- chrgBchno := rand.Intn(100000) + 10000
- ipt_otp_no := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(his.PatientId, 10)
- his.Number = ipt_otp_no
- //count, _ := service.FindHisRegisterRecord(theTime.Unix(), patient.ID, adminInfo.CurrentOrgId)
- department, _ := service.GetDepartMentDetail(department)
- //doctor_id := strconv.FormatInt(patientPrescription., 10)
-
- IdCardNo := ""
- if id_card_type == 1 {
- // IdCardNo = medical_insurance_card
- IdCardNo = patient.IdCardNo
- } else {
- IdCardNo = patient.IdCardNo
- }
-
- var rf []*ResultFive
- json.Unmarshal([]byte(his.Iinfo), &rf)
- var insutypes []*ResultFive
- var insutype string
- var insuplc_admdvs_temp string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- if len(insutypes) == 2 {
- insutype = med_type
- }
-
- if len(med_type) > 0 {
-
- insutype = med_type
- }
-
- var infocode int64
- var resThree ResultThree
- var resThree10265 ResultThree10265
-
- if len(insuplc_admdvs) == 0 {
- insuplc_admdvs_temp = miConfig.InsuplcAdmdvs
- } else {
-
- insuplc_admdvs_temp = insuplc_admdvs
-
- }
-
- if miConfig.MdtrtareaAdmvs == "421300" {
- hb_doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, patientPrescription.DoctorId)
-
- api := "http://192.168.124.4:9532/" + "hbyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + Certno + "&ipt_otp_no=" + ipt_otp_no +
- "&org_name=" + miConfig.OrgName + "&doctor=" + hb_doctor_info.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + hb_doctor_info.DoctorNumber + "&doctor_name=" + hb_doctor_info.UserName + "&opter=" + roles.UserName
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &resThree); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- infocode = resThree.Infcode
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- psn_info, _ := service.GetPsnByPatientId(id)
- his.PsnNo = psn_info.PsnNo
- psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1)
- var cert_no string
- if id_card_type == 3 {
- psn_info.VerifyNumber = IdCardNo + "|" + psn_info.VerifyNumber
- cert_no = IdCardNo
- } else if id_card_type == 4 {
- cert_no = IdCardNo
- psn_info.VerifyNumber = psn_info.VerifyNumber
- } else {
-
- bas := strings.Split(psn_info.CardInfo, "|")
- cert_no = bas[2]
- }
-
- var hisPrescription []*models.HisPrescription
-
- for _, item := range rf {
- if item.Insutype == insutype {
- //insuplc_admdvs = item.InsuplcAdmdvs
- his.InsuplcAdmdvs = insuplc_admdvs
- }
- }
- his.Insutype = insutype
-
- res3101 := Check3101ForOne(c, patient.ID, his, admin_user_id, "1", record_time, hisPrescription)
- fmt.Println(res3101)
- fmt.Println(res3101.Infcode)
-
- if res3101.Infcode == "0" {
- fmt.Println("33333333")
- if len(res3101.Output.Result) > 0 {
- fmt.Println("222222")
-
- for _, item := range res3101.Output.Result {
- if len(res3101.ErrMsg) == 0 {
- res3101.ErrMsg = item.VolaCont
- } else {
- res3101.ErrMsg = res3101.ErrMsg + "\n" + item.VolaCont
- }
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res3101.ErrMsg,
- })
- return
- } else {
- fmt.Println("11111")
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
-
- api = "http://192.168.2.110:9532/" + "jsyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no +
- "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo
-
- } else {
- api = "http://192.168.5.251:9532/" + "jsyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no +
- "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
-
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- var respJSON map[string]interface{}
-
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
-
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &resThree10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- resThree.ErrMsg = resThree10265.ErrMsg
-
- resThree.Output = resThree10265.Output
-
- resThree.InfRefmsgid = resThree10265.InfRefmsgid
-
- infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64)
-
- }
-
- } else if res3101.Infcode != "0" {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res3101.ErrMsg,
- })
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
-
- psn_info, _ := service.GetPsnByPatientId(id)
- var cert_no string
- if id_card_type == 1 {
- cert_no = strings.Split(psn_info.CardInfo, "|")[0]
- } else if id_card_type == 4 {
- cert_no = psn_info.VerifyNumber
- } else {
- cert_no = psn_info.VerifyNumber
- }
-
- result, requestLog, _ := service.FJyb2201(psn_info.PsnNo, insutype, IdCardNo, miConfig.OrgName, doctor_info.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, roles.UserName, doctor_info.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, cert_no)
- saveLog(result, requestLog, "2201", "挂号")
- if miConfig.Code == "H15049901371" {
-
- if err := json.Unmarshal([]byte(result), &resThree10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- resThree.ErrMsg = resThree10265.ErrMsg
- resThree.Output = resThree10265.Output
- resThree.InfRefmsgid = resThree10265.InfRefmsgid
- } else {
- if err := json.Unmarshal([]byte(result), &resThree); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64)
- } else if miConfig.MdtrtareaAdmvs == "360399" { //江西萍乡
-
- psn_info, _ := service.GetPsnByPatientId(id)
- var result string
- var requestLog string
- if id_card_type == 1 {
- bas := strings.Split(psn_info.CardInfo, "|")
- basNumber := bas[2]
- card_sn := bas[3]
- result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, miConfig.MdtrtareaAdmvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn)
- saveLog(result, requestLog, "2201A", "挂号")
-
- } else if id_card_type == 2 {
- result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, IdCardNo, "", "")
- saveLog(result, requestLog, "2201A", "挂号")
-
- } else {
-
- result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "")
- saveLog(result, requestLog, "2201A", "挂号")
-
- }
-
- if err := json.Unmarshal([]byte(result), &resThree); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- infocode = resThree.Infcode
- } else if miConfig.MdtrtareaAdmvs == "430800" { //江西萍乡
-
- psn_info, _ := service.GetPsnByPatientId(id)
- var result string
- var requestLog string
- if id_card_type == 1 {
- bas := strings.Split(psn_info.CardInfo, "|")
- basNumber := bas[2]
- card_sn := bas[3]
- result, requestLog = service.Hnyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, miConfig.MdtrtareaAdmvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn)
- saveLog(result, requestLog, "2201A", "挂号")
-
- } else if id_card_type == 2 {
- result, requestLog = service.Hnyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, IdCardNo, "", "")
- saveLog(result, requestLog, "2201A", "挂号")
-
- } else {
-
- result, requestLog = service.Hnyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "")
- saveLog(result, requestLog, "2201A", "挂号")
-
- }
-
- if err := json.Unmarshal([]byte(result), &resThree); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- infocode = resThree.Infcode
- } else {
- psn_info, _ := service.GetPsnByPatientId(id)
- result, requestLog := service.Gdyb2201A(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, record_time, psn_info.VerifyNumber)
- saveLog(result, requestLog, "2201A", "挂号")
- if miConfig.Code == "H15049901371" {
-
- if err := json.Unmarshal([]byte(result), &resThree10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- resThree.ErrMsg = resThree10265.ErrMsg
- resThree.Output = resThree10265.Output
- resThree.InfRefmsgid = resThree10265.InfRefmsgid
- } else {
- if err := json.Unmarshal([]byte(result), &resThree); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- if miConfig.Code == "H15049901371" {
- infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64)
- } else {
- infocode = resThree.Infcode
-
- }
-
- }
-
- if infocode != 0 {
-
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: resThree.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 2,
- }
- service.CreateErrMsgLog(errlog)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": resThree.ErrMsg,
- })
- return
- }
-
- his.Number = resThree.Output.Data.MdtrtID
- his.PsnNo = resThree.Output.Data.PsnNo
- his.IptOtpNo = resThree.Output.Data.IptOtpNo
- his.IdCardNo = patient.IdCardNo
- his.PhoneNumber = patient.Phone
- his.UserOrgId = adminInfo.CurrentOrgId
- his.Insutype = insutype
- his.Ctime = time.Now().Unix()
- his.Mtime = time.Now().Unix()
- his.InsuplcAdmdvs = insuplc_admdvs_temp
- his.Status = 1
- service.UpdateHisPatientStatus(&his)
- service.UpdateHisPrescriptionHisID(his.ID, patient.ID, recordDateTime, adminInfo.CurrentOrgId)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "his_info": his,
- })
-
- } else {
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 1,
- }
- service.CreateErrMsgLog(errlog)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
-
- //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeGdybOneException)
- }
- }
- }
-
- //上传明细----预结算----确认订单
- func (c *HisApiController) GetUploadInfo() {
- id, _ := c.GetInt64("id")
- record_time := c.GetString("record_time")
- his_patient_id, _ := c.GetInt64("his_patient_id")
-
- order_id, _ := c.GetInt64("order_id")
-
- pay_way, _ := c.GetInt64("pay_way")
- pay_price, _ := c.GetFloat("pay_price")
- pay_card_no := c.GetString("pay_card_no")
-
- discount_price, _ := c.GetFloat("discount_price")
- preferential_price, _ := c.GetFloat("preferential_price")
- reality_price, _ := c.GetFloat("reality_price")
- found_price, _ := c.GetFloat("found_price")
- medical_insurance_price, _ := c.GetFloat("medical_insurance_price")
- private_price, _ := c.GetFloat("private_price")
- settle_accounts_type, _ := c.GetInt64("settle_accounts_type")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- fapiao_code := c.GetString("fapiao_code")
- fapiao_number := c.GetString("fapiao_number")
-
- diagnosis_id := c.GetString("diagnosis")
- sick_type, _ := c.GetInt64("sick_type")
- reg_type, _ := c.GetInt64("p_type")
- begin_time := c.GetString("begin_time")
-
- id_str := c.GetString("ids")
- ids_arr := strings.Split(id_str, ",")
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordDateTime := theTime.Unix()
- adminUser := c.GetAdminUserInfo()
- var tempOrder models.HisOrder
- tempOrder, _ = service.GetHisOrderByID(order_id)
-
- var prescriptions []*models.HisPrescription
-
- var start_time int64
- var end_time int64
-
- //押金模块
- dec_way := c.GetString("dec_way") //是否使用押金支付bool类型
- tmp_decimal := c.GetString("tmp_decimal")
- var decimal float64 //本次使用的押金
- var errmsg error
-
- if dec_way == "true" && tmp_decimal == "0" || dec_way == "true" && tmp_decimal == "" {
- c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "押金不能为0")
- return
- }
- if len(tmp_decimal) > 0 {
- if tmp_decimal[0] == 45 {
- c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "押金不能为负数")
- return
- }
- }
- tt, errs := strconv.ParseFloat(tmp_decimal, 64)
- fmt.Println(errs)
- decimal = tt
-
- //if adminUser.CurrentOrgId == 10106{
- // if len(fapiao_code) == 0{
- // fapiao_code = "144072080589"
- // }
- // if len(fapiao_number) == 0{
- // order, _ := service.GetLastHisOrder(adminUser.CurrentOrgId)
- // if order.ID == 0{
- // fapiao_number = "00001520"
- // }else{
- // //fapiao_code = "00001520"
- // fpNumber, _ := strconv.Atoi(order.FaPiaoNumber)
- // var zero string
- // if fpNumber >= 1000{
- // zero = "0000" + strconv.Itoa(fpNumber)
- // }else if fpNumber >= 10000{
- // zero = "000" + strconv.Itoa(fpNumber)
- // } else if fpNumber >= 100000{
- // zero = "00" + strconv.Itoa(fpNumber)
- // } else if fpNumber >= 1000000{
- // zero = "0" + strconv.Itoa(fpNumber)
- // }else {
- // zero = strconv.Itoa(fpNumber)
- // }
- // fapiao_number = zero
- // }
- // }
- //}
-
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- his, _ := service.GetNewHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
- var patientPrescription models.HisPrescriptionInfo
- patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
- if patientPrescription.ID == 0 {
- patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime)
- }
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
-
- doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId)
-
- diagnosis_ids := strings.Split(diagnosis_id, ",")
-
- var config []*models.HisXtDiagnoseConfig
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- config = append(config, &diagnosisConfig)
- }
-
- sickConfig, _ := service.FindSickById(sick_type)
-
- //if tempOrder.ID == 0 {
- // tempOrder, _ = service.GetTodayHisOrder(adminUser.CurrentOrgId, id, recordDateTime, his.Number)
- //}
-
- if tempOrder.ID == 0 {
- var result string
- var requestLog string
- var res2 ResultSix
- var ressix10265 ResultSix10265
-
- if miConfig.MdtrtareaAdmvs == "421300" {
-
- data := make(map[string]interface{})
- client := &http.Client{}
- data["psn_no"] = his.PsnNo
- data["mdtrt_id"] = his.Number
- data["opter"] = roles.UserName
- data["org_name"] = miConfig.OrgName
- data["med_type"] = strconv.FormatInt(reg_type, 10)
- data["doctor_id"] = doctor_info.DoctorNumber
- data["doctor_name"] = doctor_info.UserName
- data["department"] = department.Name
-
- data["fixmedins_code"] = miConfig.Code
- data["insuplc_admdvs"] = his.InsuplcAdmdvs
- data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
- data["secret_key"] = miConfig.SecretKey
- data["sick_code"] = sickConfig.CountryCode
- data["sick_name"] = sickConfig.ClassName
- data["dept"] = strconv.FormatInt(department.ID, 10)
- data["config"] = config
- data["begin_time"] = begin_time
-
- bytesData, _ := json.Marshal(data)
- req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/2203", bytes.NewReader(bytesData))
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
-
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
-
- data := make(map[string]interface{})
- client := &http.Client{}
- data["psn_no"] = his.PsnNo
- data["mdtrt_id"] = his.Number
- data["doctor"] = roles.UserName
- data["department"] = department.Name
- data["org_name"] = miConfig.OrgName
- data["med_type"] = strconv.FormatInt(reg_type, 10)
- data["doctor_id"] = doctor_info.DoctorNumber
- data["new_doctor_name"] = doctor_info.UserName
- data["fixmedins_code"] = miConfig.Code
- data["insuplc_admdvs"] = his.InsuplcAdmdvs
- data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
- data["secret_key"] = miConfig.SecretKey
- data["sick_code"] = sickConfig.CountryCode
- data["sick_name"] = sickConfig.ClassName
- data["url"] = miConfig.Url
- data["ak"] = miConfig.AccessKey
- data["begin_time"] = begin_time
- data["cainfo"] = miConfig.Cainfo
-
- data["dept"] = strconv.FormatInt(department.ID, 10)
- data["config"] = config
- bytesData, _ := json.Marshal(data)
-
- var req *http.Request
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2203", bytes.NewReader(bytesData))
-
- //api = "http://192.168.2.110:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- // "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2203", bytes.NewReader(bytesData))
-
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
-
- if err := json.Unmarshal(userJSONBytes, &ressix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res2.InfRefmsgid = ressix10265.InfRefmsgid
- res2.Output = ressix10265.Output
- res2.ErrMsg = ressix10265.ErrMsg
- res2.Cainfo = ressix10265.Cainfo
- res2.WarnMsg = ressix10265.WarnMsg
- infocode, _ := strconv.ParseInt(ressix10265.Infcode, 10, 64)
- res2.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- result, requestLog, _ = service.FJyb2203(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time, doctor_info.UserName, roles.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- saveLog(result, requestLog, "2203", "上传就诊信息")
- var respJSON2 map[string]interface{}
- if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- userJSONBytes2, _ := json.Marshal(respJSON2)
- if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else {
- if miConfig.MdtrtareaAdmvs == "440781" { //
- result, requestLog = service.Gdyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time)
- } else {
- if miConfig.Code == "H15049901371" {
- //赤峰地区国家医保医疗类别
- //职工透析:医疗类别选特殊情况门诊990502
- //居民定额血透门慢: 医疗类别选门诊慢病140104
- var med_type string
- if his.Insutype == "390" {
- if reg_type == 14 {
- med_type = "9933"
- } else if reg_type == 11 {
- med_type = "11"
-
- }
- } else if his.Insutype == "310" {
- if reg_type == 14 {
- med_type = "990502"
- } else if reg_type == 11 {
- med_type = "11"
- }
- }
- result, requestLog = service.Gdyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, med_type, doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time)
-
- } else {
- result, requestLog = service.Gdyb2203(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time)
-
- }
- }
-
- saveLog(result, requestLog, "2203", "上传就诊信息")
- var respJSON2 map[string]interface{}
- if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- userJSONBytes2, _ := json.Marshal(respJSON2)
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes2, &ressix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res2.InfRefmsgid = ressix10265.InfRefmsgid
- res2.Output = ressix10265.Output
- res2.ErrMsg = ressix10265.ErrMsg
- res2.Cainfo = ressix10265.Cainfo
- res2.WarnMsg = ressix10265.WarnMsg
- infocode, _ := strconv.ParseInt(ressix10265.Infcode, 10, 64)
- res2.Infcode = infocode
- } else {
- if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- }
-
- if res2.Infcode != 0 {
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res2.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 3,
- }
- service.CreateErrMsgLog(errlog)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res2.ErrMsg,
- })
- return
-
- } else {
- his.Diagnosis = diagnosis_id
- his.SickType = sickConfig.ID
- //var p_type int64
- //if reg_type == 1111 || reg_type == 1112 {
- // p_type = 11
- //
- //}
- his.PType = fmt.Sprintf("%d", reg_type)
- service.UpdateHisPatientThree(&his)
-
- data := make(map[string]interface{})
- if settle_accounts_type == 1 { //日结
-
- if reg_type == 11 || reg_type == 1111 || reg_type == 1112 {
- prescriptions, _ = service.GetPrescriptionByIds(ids_arr, adminUser.CurrentOrgId)
- } else {
- prescriptions, _ = service.GetNewHisPrescription(adminUser.CurrentOrgId, his_patient_id, recordDateTime, strconv.Itoa(int(reg_type)))
- }
- //prescriptions, _ = service.GetNewHisPrescriptionTwo(adminUser.CurrentOrgId, his_patient_id, recordDateTime, reg_type)
- data["pre"] = prescriptions
-
- } else { //月结
- start_time_str := c.GetString("start_time")
- end_time_str := c.GetString("end_time")
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordStartTime := theStartTime.Unix()
- start_time = recordStartTime
- theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordEndTime := theEndTime.Unix()
- end_time = recordEndTime
- prescriptions, _ = service.GetMonthHisPrescriptionTwo(adminUser.CurrentOrgId, id, recordStartTime, recordEndTime, reg_type)
- data["pre"] = prescriptions
-
- }
-
- timestamp := time.Now().Unix()
- tempTime := time.Unix(timestamp, 0)
- timeFormat := tempTime.Format("20060102150405")
- chrgBchno := rand.Intn(100000) + 10000
- chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(his.PatientId, 10)
- strconv.FormatInt(his.PatientId, 10)
- client := &http.Client{}
-
- data["psn_no"] = his.PsnNo
- data["mdtrt_id"] = his.Number
- data["chrg_bchno"] = chrg_bchno
- data["org_name"] = miConfig.OrgName
- data["doctor"] = doctor_info.UserName
- data["doctor_id"] = doctor_info.DoctorNumber
- data["dept"] = strconv.FormatInt(patientPrescription.Departments, 10)
- data["fixmedins_code"] = miConfig.Code
- data["opter"] = roles.UserName
- data["dept_code"] = department.Number
- data["insuplc_admdvs"] = his.InsuplcAdmdvs
- data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
- data["secret_key"] = miConfig.SecretKey
- data["balance_accounts_type"] = strconv.FormatInt(his.BalanceAccountsType, 10)
- data["url"] = miConfig.Url
- data["ak"] = miConfig.AccessKey
- data["new_doctor_name"] = patientPrescription.Doctor
- data["diag_code"] = sickConfig.CountryCode
- data["cainfo"] = miConfig.Cainfo
- data["opter"] = roles.UserName
-
- var ids []int64
-
- for _, item := range prescriptions {
- ids = append(ids, item.ID)
- }
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- if config.IsOpen == 1 { //对接了医保,走医保流程
- var res ResultFour
- var resFour10265 ResultFour10265
-
- if miConfig.MdtrtareaAdmvs == "421300" {
-
- bytesData, _ := json.Marshal(data)
- req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/2204", bytes.NewReader(bytesData))
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- result3101 := Check3101(c, id, his_patient_id, admin_user_id, "2", record_time, prescriptions)
- if result3101.Infcode == "0" {
- if len(result3101.Output.Result) > 0 {
- var errMsgs []string
- for _, item := range result3101.Output.Result {
- errMsgs = append(errMsgs, item.VolaCont)
-
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": errMsgs,
- })
- return
- }
- }
- bytesData, _ := json.Marshal(data)
- var req *http.Request
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
- if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resFour10265.InfRefmsgid
- res.Output = resFour10265.Output
- res.ErrMsg = resFour10265.ErrMsg
- res.Cainfo = resFour10265.Cainfo
- res.WarnMsg = resFour10265.WarnMsg
- infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
-
- result, request_log, _ := service.FJyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(patientPrescription.Departments, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(his.BalanceAccountsType, 10), roles.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, sickConfig.CountryCode)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2204", "上传费用明细")
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resFour10265.InfRefmsgid
- res.Output = resFour10265.Output
- res.ErrMsg = resFour10265.ErrMsg
- res.Cainfo = resFour10265.Cainfo
- res.WarnMsg = resFour10265.WarnMsg
- infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else {
-
- if miConfig.Code == "H15049901371" {
- result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(patientPrescription.Departments, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(his.BalanceAccountsType, 10), patientPrescription.DoctorId, sickConfig.CountryCode)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2204", "上传费用明细")
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resFour10265.InfRefmsgid
- res.Output = resFour10265.Output
- res.ErrMsg = resFour10265.ErrMsg
- res.Cainfo = resFour10265.Cainfo
- res.WarnMsg = resFour10265.WarnMsg
- infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else {
- result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(patientPrescription.Departments, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(his.BalanceAccountsType, 10), patientPrescription.DoctorId, sickConfig.CountryCode)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2204", "上传费用明细")
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- }
-
- if res.Infcode == 0 {
- order := &models.HisOrder{
- UserOrgId: adminUser.CurrentOrgId,
- HisPatientId: his.ID,
- PatientId: his.PatientId,
- SettleAccountsDate: recordDateTime,
- MdtrtId: his.Number,
- PsnNo: his.PsnNo,
- MedType: strconv.FormatInt(reg_type, 10),
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- Status: 1,
- Number: chrg_bchno,
- Infcode: res.Infcode,
- WarnMsg: res.WarnMsg,
- Cainfo: res.Cainfo,
- ErrMsg: res.ErrMsg,
- RespondTime: res.RefmsgTime,
- InfRefmsgid: res.InfRefmsgid,
- OrderStatus: 1,
- PayWay: pay_way,
- PayPrice: pay_price,
- PayCardNo: pay_card_no,
- DiscountPrice: discount_price,
- PreferentialPrice: preferential_price,
- RealityPrice: reality_price,
- FoundPrice: found_price,
- MedicalInsurancePrice: medical_insurance_price,
- PrivatePrice: private_price,
- IsMedicineInsurance: 1,
- SettleType: settle_accounts_type,
- SettleStartTime: start_time,
- SettleEndTime: end_time,
- Creator: roles.AdminUserId,
- Modify: roles.AdminUserId,
- FaPiaoNumber: fapiao_number,
- FaPiaoCode: fapiao_code,
- PType: 2,
- Diagnosis: diagnosis_id,
- }
- err = service.CreateOrder(order)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException)
- return
- }
-
- for _, item := range res.Output.Result {
- temp := strings.Split(item.FeedetlSn, "-")
- var advice_id int64 = 0
- var project_id int64 = 0
- var types int64 = 0
-
- id, _ := strconv.ParseInt(temp[2], 10, 64)
- types, _ = strconv.ParseInt(temp[1], 10, 64)
-
- if temp[1] == "1" {
- advice_id = id
- project_id = 0
- } else if temp[1] == "2" {
- advice_id = 0
- project_id = id
- }
-
- info := &models.HisOrderInfo{
- OrderNumber: order.Number,
- FeedetlSn: item.FeedetlSn,
- UploadDate: time.Now().Unix(),
- AdviceId: advice_id,
- DetItemFeeSumamt: item.DetItemFeeSumamt,
- Cnt: item.Cnt,
- Pric: float64(item.Pric),
- PatientId: his.PatientId,
- PricUplmtAmt: item.PricUplmtAmt,
- SelfpayProp: item.SelfpayProp,
- FulamtOwnpayAmt: item.FulamtOwnpayAmt,
- OverlmtAmt: item.OverlmtAmt,
- PreselfpayAmt: item.PreselfpayAmt,
- BasMednFlag: item.BasMednFlag,
- MedChrgitmType: item.MedChrgitmType,
- HiNegoDrugFlag: item.HiNegoDrugFlag,
- Status: 1,
- Memo: item.Memo,
- Mtime: time.Now().Unix(),
- InscpScpAmt: item.InscpScpAmt,
- DrtReimFlag: item.DrtReimFlag,
- Ctime: time.Now().Unix(),
- ListSpItemFlag: item.ListSpItemFlag,
- ChldMedcFlag: item.ChldMedcFlag,
- LmtUsedFlag: item.LmtUsedFlag,
- ChrgitmLv: item.ChrgitmLv,
- UserOrgId: adminUser.CurrentOrgId,
- HisPatientId: his.ID,
- OrderId: order.ID,
- ProjectId: project_id,
- Type: types,
- }
- service.CreateOrderInfo(info)
-
- }
- service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, chrg_bchno)
- service.UpDateHisPrescriptionInfoNumber(adminUser.CurrentOrgId, his_patient_id, chrg_bchno, recordDateTime)
-
- var total float64
- for _, item := range prescriptions {
- if item.Type == 1 { //药品
- for _, subItem := range item.HisDoctorAdviceInfo {
- total = total + (subItem.Price * subItem.PrescribingNumber)
- }
- }
- if item.Type == 2 { //项目
- for _, subItem := range item.HisPrescriptionProject {
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
-
- total = total + (subItem.Price * cnt)
- }
- }
- }
-
- for _, item := range prescriptions {
- for _, subItem := range item.HisAdditionalCharge {
- total = total + (subItem.Price * float64(subItem.Count))
- }
- }
- var allTotal string
- if adminUser.CurrentOrgId == 9919 {
-
- allTotal = fmt.Sprintf("%.4f", total)
-
- } else {
-
- allTotal = fmt.Sprintf("%.4f", total)
-
- }
-
- if res.Infcode == 0 {
- var rf []*ResultFive
- json.Unmarshal([]byte(his.Iinfo), &rf)
- chrg_bchno := chrg_bchno
- cert_no := his.Certno
-
- var insutypes []string
-
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item.Insutype)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0]
- } else {
- for _, i := range insutypes {
- if i == "390" {
- is390 = 1
- }
-
- if i == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- if len(insutypes) == 2 {
- insutype = strconv.FormatInt(his.SocialType, 10)
- }
-
- insutype = strconv.FormatInt(his.SocialType, 10)
- //insutype = "390"
- if his.IdCardType == 1 {
- // cert_no = his.MedicalInsuranceNumber
- cert_no = his.Certno
-
- } else {
-
- cert_no = his.Certno
-
- }
- var res ResultSeven
- var resSeven10265 ResultSeven10265
-
- var src_resquest string
- var result2 string
- var acct_used_flag string
- fmt.Println("pay_way")
- fmt.Println(pay_way)
- fmt.Println("pay_way")
-
- if pay_way == 4 {
- acct_used_flag = "1"
- } else {
- acct_used_flag = "0"
- }
- if miConfig.MdtrtareaAdmvs == "421300" {
-
- api := "http://192.168.124.4:9532/" + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resSeven10265.InfRefmsgid
- res.Output = resSeven10265.Output
- res.ErrMsg = resSeven10265.ErrMsg
- res.Cainfo = resSeven10265.Cainfo
- res.WarnMsg = resSeven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else {
-
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- result3101 := Check3102(c, id, his_patient_id, admin_user_id, "7", order.ID)
- if result3101.Infcode == "0" {
- if len(result3101.Output.Result) > 0 {
- var errMsgs []string
- for _, item := range result3101.Output.Result {
- errMsgs = append(errMsgs, item.VolaCont)
-
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": errMsgs,
- })
- return
- } else {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1)
- bas := strings.Split(psn_info.CardInfo, "|")
- if his.IdCardType == 1 {
- cert_no = bas[2]
- } else if his.IdCardType == 3 {
- cert_no = his.Certno
- psn_info.VerifyNumber = his.Certno + "|" + psn_info.VerifyNumber
- } else if his.IdCardType == 4 {
- cert_no = his.Certno
- psn_info.VerifyNumber = psn_info.VerifyNumber
- }
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo
- } else {
- api = "http://192.168.5.251:9532/" + "jsyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resSeven10265.InfRefmsgid
- res.Output = resSeven10265.Output
- res.ErrMsg = resSeven10265.ErrMsg
- res.Cainfo = resSeven10265.Cainfo
- res.WarnMsg = resSeven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64)
- res.Infcode = infocode
- }
- }
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- var cert_no string
- if his.IdCardType == 4 {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- cert_no = psn_info.VerifyNumber
- result2, src_resquest, _ = service.FJyb2207ForToken(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
-
- } else if his.IdCardType == 1 {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- cert_no = strings.Split(psn_info.CardInfo, "|")[0]
- result2, src_resquest, _ = service.FJyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- }
-
- //result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, acct_used_flag)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result2, src_resquest, "2207", "结算")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resSeven10265.InfRefmsgid
- res.Output = resSeven10265.Output
- res.ErrMsg = resSeven10265.ErrMsg
- res.Cainfo = resSeven10265.Cainfo
- res.WarnMsg = resSeven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else {
- if miConfig.Code == "H15049901371" {
- //赤峰地区国家医保医疗类别
- //职工透析:医疗类别选特殊情况门诊990502
- //居民定额血透门慢: 医疗类别选门诊慢病140104
- var med_type string
- if his.Insutype == "390" {
- if reg_type == 14 {
- med_type = "9933"
- } else if reg_type == 11 {
- med_type = "11"
- }
- } else if his.Insutype == "310" {
- if reg_type == 14 {
- med_type = "990502"
- } else if reg_type == 11 {
- med_type = "11"
- }
- }
- result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "")
- } else {
- if his.IdCardType == 4 {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- var token string
- token = psn_info.VerifyNumber
- result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, token)
-
- } else {
- result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "")
-
- }
-
- }
-
- //result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, acct_used_flag)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_resquest, "2207", "结算")
-
- userJSONBytes, _ := json.Marshal(dat)
- if miConfig.Code == "H15049901371" {
-
- if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resSeven10265.InfRefmsgid
- res.Output = resSeven10265.Output
- res.ErrMsg = resSeven10265.ErrMsg
- res.Cainfo = resSeven10265.Cainfo
- res.WarnMsg = resSeven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else {
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- }
-
- if res.Infcode != 0 {
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- Number: chrg_bchno,
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 6,
- }
- service.CreateErrMsgLog(errlog)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- } else {
- order, _ := service.GetHisOrderTwo(adminUser.CurrentOrgId, chrg_bchno, id)
- order.OrderStatus = 2
- order.Status = 1
- order.MdtrtId = res.Output.Setlinfo.MdtrtID
- order.SetlId = res.Output.Setlinfo.SetlID
- order.PsnNo = res.Output.Setlinfo.PsnNo
- order.PsnName = res.Output.Setlinfo.PsnName
- order.PsnCertType = res.Output.Setlinfo.PsnCertType
- order.Certno = res.Output.Setlinfo.Certno
- order.Gend = res.Output.Setlinfo.Gend
- order.Naty = res.Output.Setlinfo.Naty
- order.Age = res.Output.Setlinfo.Age
- order.Insutype = res.Output.Setlinfo.Insutype
- order.PsnType = res.Output.Setlinfo.PsnType
- order.CvlservFlag = res.Output.Setlinfo.CvlservFlag
- order.SetlTime = res.Output.Setlinfo.SetlTime
- order.MdtrtCertType = res.Output.Setlinfo.MdtrtCertType
- if res.Output.Setlinfo.MedType == "140101" {
- order.MedType = "14"
-
- } else {
- order.MedType = res.Output.Setlinfo.MedType
- }
- if reg_type == 1112 {
- order.MedType = "1112"
- }
- if reg_type == 1111 {
- order.MedType = "1111"
- }
- order.MedfeeSumamt = res.Output.Setlinfo.MedfeeSumamt
- order.FulamtOwnpayAmt = res.Output.Setlinfo.FulamtOwnpayAmt
- order.OverlmtSelfPay = res.Output.Setlinfo.OverlmtSelfpay
- order.PreselfpayAmt = res.Output.Setlinfo.PreselfpayAmt
- order.InscpScpAmt = res.Output.Setlinfo.InscpScpAmt
- order.ActPayDedc = res.Output.Setlinfo.ActPayDedc
- order.HifpPay = res.Output.Setlinfo.HifpPay
- order.CvlservPay = res.Output.Setlinfo.CvlservPay
- order.PoolPropSelfpay = res.Output.Setlinfo.PoolPropSelfpay
- order.HifesPay = res.Output.Setlinfo.HifesPay
- order.HifobPay = res.Output.Setlinfo.HifobPay
- order.MafPay = res.Output.Setlinfo.MafPay
- order.HifmiPay = res.Output.Setlinfo.HifmiPay
- order.OthPay = res.Output.Setlinfo.OthPay
- order.FundPaySumamt = res.Output.Setlinfo.FundPaySumamt
- order.PsnPartAmt = res.Output.Setlinfo.PsnPartAmt
- order.AcctPay = res.Output.Setlinfo.AcctPay
- order.PsnCashPay = res.Output.Setlinfo.PsnCashPay
- order.HospPartAmt = res.Output.Setlinfo.HospPartAmt
- order.Balc = res.Output.Setlinfo.Balc
- order.AcctMulaidPay = res.Output.Setlinfo.AcctMulaidPay
- order.MedinsSetlId = res.Output.Setlinfo.MedinsSetlID
- order.ClrOptins = res.Output.Setlinfo.ClrOptins
- order.ClrType = res.Output.Setlinfo.ClrType
- order.ClrWay = res.Output.Setlinfo.ClrWay
- order.Creator = order.Creator
- order.Modify = roles.AdminUserId
- order.RequestLog = src_resquest
- setlDetail, _ := json.Marshal(res.Output.Setldetail)
- detailStr := string(setlDetail)
- order.SetlDetail = detailStr
- err := service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId)
- err = service.UpDateOrder(order)
- if err == nil {
- //判断是否使用了押金
- if dec_way == "true" {
- tmpstring := strconv.FormatInt(order.ID, 10)
- order.Decimal = decimal
- service.UpDateOrder(order)
- //扣押金
- errmsg = service.SpendDeposit(c.GetAdminUserInfo().CurrentOrgId, id, c.GetAdminUserInfo().AdminUser.Id, tmpstring, decimal)
- if errmsg != nil {
- c.ServeFailJsonSend(enums.ErrorCodeParamWrong, errmsg.Error())
- return
- }
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "结算成功",
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException)
- return
- }
- }
- } else {
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 4,
- }
- service.CreateErrMsgLog(errlog)
-
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterRepeatException)
- return
- }
- } else {
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 4,
- }
- service.CreateErrMsgLog(errlog)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCalOrderException)
- //return
- }
- }
-
- }
-
- } else if tempOrder.ID > 0 {
- if tempOrder.IsPre == 1 {
- allTotal := fmt.Sprintf("%.4f", tempOrder.MedfeeSumamt)
- var rf []*ResultFive
- json.Unmarshal([]byte(his.Iinfo), &rf)
- chrg_bchno := tempOrder.Number
- cert_no := his.Certno
-
- var insutypes []string
-
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item.Insutype)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0]
- } else {
- for _, i := range insutypes {
- if i == "390" {
- is390 = 1
- }
-
- if i == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- if len(insutypes) == 2 {
- insutype = strconv.FormatInt(his.SocialType, 64)
- }
-
- //insutype = "390"
- if his.IdCardType == 1 {
- // cert_no = his.MedicalInsuranceNumber
- cert_no = his.Certno
-
- } else {
-
- cert_no = his.Certno
-
- }
- var res ResultSeven
- var resSeven10265 ResultSeven10265
- var src_resquest string
- var result2 string
- var acct_used_flag string
- fmt.Println("pay_way")
- fmt.Println(pay_way)
- fmt.Println("pay_way")
- if pay_way == 4 {
- acct_used_flag = "1"
- } else {
- acct_used_flag = "0"
- }
-
- if miConfig.MdtrtareaAdmvs == "421300" {
- api := "http://192.168.124.4:9532/" + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- result3101 := Check3102(c, id, his_patient_id, admin_user_id, "7", tempOrder.ID)
- if result3101.Infcode == "0" {
- if len(result3101.Output.Result) > 0 {
- var errMsgs []string
- for _, item := range result3101.Output.Result {
- errMsgs = append(errMsgs, item.VolaCont)
-
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": errMsgs,
- })
- return
- } else {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1)
- bas := strings.Split(psn_info.CardInfo, "|")
- if his.IdCardType == 1 {
- cert_no = bas[2]
- } else if his.IdCardType == 3 {
- cert_no = his.Certno
- psn_info.VerifyNumber = his.Certno + "|" + psn_info.VerifyNumber
- } else if his.IdCardType == 4 {
- cert_no = his.Certno
- psn_info.VerifyNumber = psn_info.VerifyNumber
- }
-
- //江苏地区国家医保医疗类别
- //职工透析:医疗类别选特殊情况门诊9933
- //居民血透门慢: 医疗类别选门诊慢病1402
- //var med_type string
- //if his.Insutype == "310" {
- // if reg_type == 14 {
- // med_type = "9933"
- // } else if reg_type == 11 {
- // med_type = "11"
- //
- // }
- //} else if his.Insutype == "390" {
- // if reg_type == 14 {
- // med_type = "1402"
- // } else if reg_type == 11 {
- // med_type = "11"
- // }
- //}
-
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + tempOrder.MedType + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo
-
- //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- api = "http://192.168.5.251:9532/" + "jsyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + tempOrder.MedType + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
- if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resSeven10265.InfRefmsgid
- res.Output = resSeven10265.Output
- res.ErrMsg = resSeven10265.ErrMsg
- res.Cainfo = resSeven10265.Cainfo
- res.WarnMsg = resSeven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- }
- }
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- var cert_no string
- if his.IdCardType == 1 {
- cert_no = strings.Split(psn_info.CardInfo, "|")[0]
- } else {
- cert_no = psn_info.VerifyNumber
-
- }
-
- result2, src_resquest, _ = service.FJyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result2, src_resquest, "2207", "结算")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- var cert_no string
- if his.IdCardType == 1 {
- cert_no = strings.Split(psn_info.CardInfo, "|")[0]
- } else if his.IdCardType == 2 {
- cert_no = his.IdCardNo
- } else {
- cert_no = psn_info.VerifyNumber
-
- }
- result2, src_resquest := service.Jxyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdCardType, acct_used_flag, miConfig.Url, miConfig.AccessKey, cert_no, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result2, src_resquest, "2207", "结算")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- var cert_no string
- if his.IdCardType == 1 {
- cert_no = strings.Split(psn_info.CardInfo, "|")[0]
- } else if his.IdCardType == 2 {
- cert_no = his.IdCardNo
- } else {
- cert_no = psn_info.VerifyNumber
-
- }
- result2, src_resquest := service.Hnyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdCardType, acct_used_flag, miConfig.Url, miConfig.AccessKey, cert_no, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result2, src_resquest, "2207", "结算")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
-
- var src_resquest string
- if miConfig.Code == "H15049901371" {
- //赤峰地区国家医保医疗类别
- //职工透析:医疗类别选特殊情况门诊990502
- //居民定额血透门慢: 医疗类别选门诊慢病140104
- var med_type string
- if his.Insutype == "390" {
- if reg_type == 14 {
- med_type = "9933"
- } else if reg_type == 11 {
- med_type = "11"
- }
- } else if his.Insutype == "310" {
- if reg_type == 14 {
- med_type = "990502"
- } else if reg_type == 11 {
- med_type = "11"
- }
- }
- result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "")
- } else {
- if his.IdCardType == 4 {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- token := psn_info.VerifyNumber
- result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, token)
-
- } else {
-
- result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "")
-
- }
- }
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result2, src_resquest, "2207", "结算")
- userJSONBytes, _ := json.Marshal(dat)
- if miConfig.Code == "H15049901371" {
-
- if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSeven10265.InfRefmsgid
- res.Output = resSeven10265.Output
- res.ErrMsg = resSeven10265.ErrMsg
- res.Cainfo = resSeven10265.Cainfo
- res.WarnMsg = resSeven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else {
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
- }
-
- if res.Infcode != 0 {
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- Number: chrg_bchno,
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 6,
- }
- service.CreateErrMsgLog(errlog)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- } else {
-
- order, _ := service.GetHisOrderTwo(adminUser.CurrentOrgId, chrg_bchno, id)
- order.OrderStatus = 2
- order.MdtrtId = res.Output.Setlinfo.MdtrtID
- order.SetlId = res.Output.Setlinfo.SetlID
- order.PsnNo = res.Output.Setlinfo.PsnNo
- order.PsnName = res.Output.Setlinfo.PsnName
- order.PsnCertType = res.Output.Setlinfo.PsnCertType
- order.Certno = res.Output.Setlinfo.Certno
- order.Gend = res.Output.Setlinfo.Gend
- order.Naty = res.Output.Setlinfo.Naty
- order.Age = res.Output.Setlinfo.Age
- order.Insutype = res.Output.Setlinfo.Insutype
- order.PsnType = res.Output.Setlinfo.PsnType
- order.CvlservFlag = res.Output.Setlinfo.CvlservFlag
- order.SetlTime = res.Output.Setlinfo.SetlTime
- order.MdtrtCertType = res.Output.Setlinfo.MdtrtCertType
- //order.MedType = res.Output.Setlinfo.MedType
- if reg_type == 1112 {
- order.MedType = "1112"
- }
- if reg_type == 1111 {
- order.MedType = "1111"
- }
- order.MedfeeSumamt = res.Output.Setlinfo.MedfeeSumamt
- order.FulamtOwnpayAmt = res.Output.Setlinfo.FulamtOwnpayAmt
- order.OverlmtSelfPay = res.Output.Setlinfo.OverlmtSelfpay
- order.PreselfpayAmt = res.Output.Setlinfo.PreselfpayAmt
- order.InscpScpAmt = res.Output.Setlinfo.InscpScpAmt
- order.ActPayDedc = res.Output.Setlinfo.ActPayDedc
- order.HifpPay = res.Output.Setlinfo.HifpPay
- order.CvlservPay = res.Output.Setlinfo.CvlservPay
- order.PoolPropSelfpay = res.Output.Setlinfo.PoolPropSelfpay
- order.HifesPay = res.Output.Setlinfo.HifesPay
- order.HifobPay = res.Output.Setlinfo.HifobPay
- order.MafPay = res.Output.Setlinfo.MafPay
- order.HifmiPay = res.Output.Setlinfo.HifmiPay
- order.OthPay = res.Output.Setlinfo.OthPay
- order.FundPaySumamt = res.Output.Setlinfo.FundPaySumamt
- order.PsnPartAmt = res.Output.Setlinfo.PsnPartAmt
- order.AcctPay = res.Output.Setlinfo.AcctPay
- order.PsnCashPay = res.Output.Setlinfo.PsnCashPay
- order.HospPartAmt = res.Output.Setlinfo.HospPartAmt
- order.Balc = res.Output.Setlinfo.Balc
- order.AcctMulaidPay = res.Output.Setlinfo.AcctMulaidPay
- order.MedinsSetlId = res.Output.Setlinfo.MedinsSetlID
- order.ClrOptins = res.Output.Setlinfo.ClrOptins
- order.ClrWay = res.Output.Setlinfo.ClrWay
- order.Creator = order.Creator
- order.Modify = roles.AdminUserId
- order.RequestLog = src_resquest
- order.Diagnosis = diagnosis_id
- setlDetail, _ := json.Marshal(res.Output.Setldetail)
- detailStr := string(setlDetail)
- order.SetlDetail = detailStr
-
- err := service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId)
- err = service.UpDateOrder(order)
- if err == nil {
- //判断是否使用了押金
- if dec_way == "true" {
- tmpstring := strconv.FormatInt(order.ID, 10)
- //扣押金
- order.Decimal = decimal
- service.UpDateOrder(order)
-
- errmsg = service.SpendDeposit(c.GetAdminUserInfo().CurrentOrgId, id, c.GetAdminUserInfo().AdminUser.Id, tmpstring, decimal)
- if errmsg != nil {
- c.ServeFailJsonSend(enums.ErrorCodeParamWrong, errmsg.Error())
- return
- }
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "结算成功",
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException)
- return
- }
- }
- }
- }
- }
-
- //func (c *HisApiController) GetPreUploadInfo() {
- // id, _ := c.GetInt64("id")
- // record_time := c.GetString("record_time")
- // settle_accounts_type, _ := c.GetInt64("settle_accounts_type")
- // admin_user_id, _ := c.GetInt64("admin_user_id")
- //
- // timeLayout := "2006-01-02"
- // loc, _ := time.LoadLocation("Local")
- // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- // if err != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- // return
- // }
- // recordDateTime := theTime.Unix()
- // adminUser := c.GetAdminUserInfo()
- //
- // var prescriptions []*models.HisPrescription
- //
- // var start_time int64
- // var end_time int64
- //
- // data := make(map[string]interface{})
- // if settle_accounts_type == 1 { //日结
- // prescriptions, _ = service.GetHisPrescription(adminUser.CurrentOrgId, id, recordDateTime)
- // data["pre"] = prescriptions
- //
- // } else { //月结
- // start_time_str := c.GetString("start_time")
- // end_time_str := c.GetString("end_time")
- // timeLayout := "2006-01-02"
- // loc, _ := time.LoadLocation("Local")
- // theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc)
- // if err != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- // return
- // }
- // recordStartTime := theStartTime.Unix()
- // start_time = recordStartTime
- // theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc)
- // if err != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- // return
- // }
- // recordEndTime := theEndTime.Unix()
- // end_time = recordEndTime
- // prescriptions, _ = service.GetMonthHisPrescription(adminUser.CurrentOrgId, id, recordStartTime, recordEndTime)
- // data["pre"] = prescriptions
- //
- // }
- //
- // roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- //
- // his, _ := service.GetVMHisPatientInfo(adminUser.CurrentOrgId, id, recordDateTime)
- // timestamp := time.Now().Unix()
- // tempTime := time.Unix(timestamp, 0)
- // timeFormat := tempTime.Format("20060102150405")
- // chrgBchno := rand.Intn(100000) + 10000
- // chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(his.PatientId, 10)
- // miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- // patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime)
- // department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
- // strconv.FormatInt(his.PatientId, 10)
- // client := &http.Client{}
- // data["psn_no"] = his.PsnNo
- // data["mdtrt_id"] = his.Number
- // data["chrg_bchno"] = chrg_bchno
- // data["org_name"] = miConfig.OrgName
- // data["doctor"] = roles.UserName
- // data["doctor_id"] = strconv.FormatInt(roles.AdminUserId, 10)
- // data["dept"] = strconv.FormatInt(patientPrescription.Departments, 10)
- // data["fixmedins_code"] = miConfig.Code
- // data["dept_code"] = department.Number
- // data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs
- // data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
- // data["secret_key"] = miConfig.SecretKey
- // var ids []int64
- //
- // for _, item := range prescriptions {
- // ids = append(ids, item.ID)
- // }
- // config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- // if config.IsOpen == 1 { //对接了医保,走医保流程
- // bytesData, _ := json.Marshal(data)
- // req, _ := http.NewRequest("POST", "http://127.0.0.1:9532/"+"gdyb/five", bytes.NewReader(bytesData))
- // resp, _ := client.Do(req)
- // defer resp.Body.Close()
- // body, ioErr := ioutil.ReadAll(resp.Body)
- // if ioErr != nil {
- // utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // var respJSON map[string]interface{}
- // if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- // utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- //
- // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- // userJSONBytes, _ := json.Marshal(respJSON)
- // var res ResultFour
- // if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- //
- // if res.Infcode == 0 {
- // order := &models.HisOrder{
- // UserOrgId: adminUser.CurrentOrgId,
- // HisPatientId: his.ID,
- // PatientId: his.PatientId,
- // SettleAccountsDate: recordDateTime,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // Status: 1,
- // Number: chrg_bchno,
- // Infcode: res.Infcode,
- // WarnMsg: res.WarnMsg,
- // Cainfo: res.Cainfo,
- // ErrMsg: res.ErrMsg,
- // RespondTime: res.RefmsgTime,
- // InfRefmsgid: res.InfRefmsgid,
- // OrderStatus: 1,
- // IsMedicineInsurance: 1,
- // SettleType: settle_accounts_type,
- // SettleStartTime: start_time,
- // SettleEndTime: end_time,
- // Creator: roles.ID,
- // Modify: roles.ID,
- // PType: 2,
- // }
- // err = service.CreateOrder(order)
- // if err != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException)
- // return
- // }
- //
- // for _, item := range res.Output.Result {
- // temp := strings.Split(item.FeedetlSn, "-")
- // var advice_id int64 = 0
- // var project_id int64 = 0
- // var types int64 = 0
- //
- // id, _ := strconv.ParseInt(temp[2], 10, 64)
- // types, _ = strconv.ParseInt(temp[1], 10, 64)
- //
- // if temp[1] == "1" {
- // advice_id = id
- // project_id = 0
- // } else if temp[1] == "2" {
- // advice_id = 0
- // project_id = id
- // }
- //
- // info := &models.HisOrderInfo{
- // OrderNumber: order.Number,
- // FeedetlSn: item.FeedetlSn,
- // UploadDate: time.Now().Unix(),
- // AdviceId: advice_id,
- // DetItemFeeSumamt: item.DetItemFeeSumamt,
- // Cnt: item.Cnt,
- // Pric: float64(item.Pric),
- // PatientId: his.PatientId,
- // PricUplmtAmt: item.PricUplmtAmt,
- // SelfpayProp: item.SelfpayProp,
- // FulamtOwnpayAmt: item.FulamtOwnpayAmt,
- // OverlmtAmt: item.OverlmtAmt,
- // PreselfpayAmt: item.PreselfpayAmt,
- // BasMednFlag: item.BasMednFlag,
- // MedChrgitmType: item.MedChrgitmType,
- // HiNegoDrugFlag: item.HiNegoDrugFlag,
- // Status: 1,
- // Memo: item.Memo,
- // Mtime: time.Now().Unix(),
- // InscpScpAmt: item.InscpScpAmt,
- // DrtReimFlag: item.DrtReimFlag,
- // Ctime: time.Now().Unix(),
- // ListSpItemFlag: item.ListSpItemFlag,
- // ChldMedcFlag: item.ChldMedcFlag,
- // LmtUsedFlag: item.LmtUsedFlag,
- // ChrgitmLv: item.ChrgitmLv,
- // UserOrgId: adminUser.CurrentOrgId,
- // HisPatientId: his.ID,
- // OrderId: order.ID,
- // ProjectId: project_id,
- // Type: types,
- // }
- // service.CreateOrderInfo(info)
- //
- // }
- // service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, chrg_bchno)
- // service.UpDatePrescriptionInfoNumber(adminUser.CurrentOrgId, patientPrescription.PatientId, chrg_bchno, recordDateTime)
- //
- // var total float64
- // for _, item := range prescriptions {
- // if item.Type == 1 { //药品
- // for _, subItem := range item.HisDoctorAdviceInfo {
- // total = total + (subItem.Price * subItem.PrescribingNumber)
- // }
- // }
- // if item.Type == 2 { //项目
- // for _, subItem := range item.HisPrescriptionProject {
- // total = total + (subItem.Price * float64(subItem.Count))
- // }
- // }
- // }
- //
- // for _, item := range prescriptions {
- // for _, subItem := range item.HisAdditionalCharge {
- // total = total + (subItem.Price * float64(subItem.Count))
- // }
- // }
- //
- // allTotal := fmt.Sprintf("%.2f", total)
- // if res.Infcode == 0 {
- // var rf []*ResultFive
- // json.Unmarshal([]byte(his.Iinfo), &rf)
- // psn_no := his.PsnNo
- // mdtrt_id := his.Number
- // chrg_bchno := chrg_bchno
- // cert_no := his.Certno
- // insutype := rf[0].Insutype
- //
- // if his.IdCardType == 1 {
- // cert_no = his.MedicalInsuranceNumber
- //
- // } else {
- //
- // cert_no = his.Certno
- //
- // }
- //
- // api := "http://127.0.0.1:9532/" + "gdyb/seven?cert_no=" + cert_no + "&insutype=" +
- // insutype + "&psn_no=" + psn_no + "&chrg_bchno=" + chrg_bchno + "&mdtrt_id=" + mdtrt_id +
- // "&total=" + allTotal + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" +
- // miConfig.SecretKey + "&med_type=" + strconv.FormatInt(patientPrescription.RegisterType, 10) + "&id_card_type=" + strconv.FormatInt(int64(his.IdCardType), 10)
- // resp, requestErr := http.Get(api)
- // if requestErr != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // defer resp.Body.Close()
- // body, ioErr := ioutil.ReadAll(resp.Body)
- // if ioErr != nil {
- // utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // var respJSON map[string]interface{}
- // if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- // utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // fmt.Println(respJSON)
- // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- // userJSONBytes, _ := json.Marshal(respJSON)
- // var res ResultSeven
- // if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // if res.Infcode != 0 {
- // errlog := &models.HisOrderError{
- // UserOrgId: adminUser.CurrentOrgId,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // Number: chrg_bchno,
- // ErrMsg: res.ErrMsg,
- // Status: 1,
- // PatientId: id,
- // RecordTime: recordDateTime,
- // Stage: 7,
- // }
- // service.CreateErrMsgLog(errlog)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterRepeatException)
- // return
- // } else {
- // order, _ := service.GetHisOrderTwo(adminUser.CurrentOrgId, chrg_bchno, id)
- // order.OrderStatus = 1
- // order.MdtrtId = res.Output.Setlinfo.MdtrtID
- // order.SetlId = res.Output.Setlinfo.SetlID
- // order.PsnNo = res.Output.Setlinfo.PsnNo
- // order.PsnName = res.Output.Setlinfo.PsnName
- // order.PsnCertType = res.Output.Setlinfo.PsnCertType
- // order.Certno = res.Output.Setlinfo.Certno
- // order.Gend = res.Output.Setlinfo.Gend
- // order.Naty = res.Output.Setlinfo.Naty
- // order.Age = res.Output.Setlinfo.Age
- // order.Insutype = res.Output.Setlinfo.Insutype
- // order.PsnType = res.Output.Setlinfo.PsnType
- // order.CvlservFlag = res.Output.Setlinfo.CvlservFlag
- // order.SetlTime = res.Output.Setlinfo.SetlTime
- // order.MdtrtCertType = res.Output.Setlinfo.MdtrtCertType
- // order.MedType = res.Output.Setlinfo.MedType
- // order.MedfeeSumamt = res.Output.Setlinfo.MedfeeSumamt
- // order.FulamtOwnpayAmt = res.Output.Setlinfo.FulamtOwnpayAmt
- // order.OverlmtSelfPay = res.Output.Setlinfo.OverlmtSelfpay
- // order.PreselfpayAmt = res.Output.Setlinfo.PreselfpayAmt
- // order.InscpScpAmt = res.Output.Setlinfo.InscpScpAmt
- // order.ActPayDedc = res.Output.Setlinfo.ActPayDedc
- // order.HifpPay = res.Output.Setlinfo.HifpPay
- // order.CvlservPay = res.Output.Setlinfo.CvlservPay
- // order.PoolPropSelfpay = res.Output.Setlinfo.PoolPropSelfpay
- // order.HifesPay = res.Output.Setlinfo.HifesPay
- // order.HifobPay = res.Output.Setlinfo.HifobPay
- // order.MafPay = res.Output.Setlinfo.MafPay
- // order.OthPay = res.Output.Setlinfo.OthPay
- // order.FundPaySumamt = res.Output.Setlinfo.FundPaySumamt
- // order.PsnPartAmt = res.Output.Setlinfo.PsnPartAmt
- // order.AcctPay = res.Output.Setlinfo.AcctPay
- // order.PsnCashPay = res.Output.Setlinfo.PsnCashPay
- // order.HospPartAmt = res.Output.Setlinfo.HospPartAmt
- // order.Balc = res.Output.Setlinfo.Balc
- // order.AcctMulaidPay = res.Output.Setlinfo.AcctMulaidPay
- // order.MedinsSetlId = res.Output.Setlinfo.MedinsSetlID
- // order.ClrOptins = res.Output.Setlinfo.ClrOptins
- // order.ClrWay = res.Output.Setlinfo.ClrWay
- // order.Creator = order.Creator
- // order.Modify = roles.ID
- // setlDetail, _ := json.Marshal(res.Output.Setldetail)
- // detailStr := string(setlDetail)
- // order.SetlDetail = detailStr
- // //err := service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId)
- // err = service.UpDateOrder(order)
- // if err == nil {
- // c.ServeSuccessJSON(map[string]interface{}{
- // "msg": "预结算成功",
- // })
- // } else {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException)
- // return
- // }
- // }
- // } else {
- // adminUser := c.GetAdminUserInfo()
- // errlog := &models.HisOrderError{
- // UserOrgId: adminUser.CurrentOrgId,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // ErrMsg: res.ErrMsg,
- // Status: 1,
- // PatientId: id,
- // RecordTime: recordDateTime,
- // Stage: 4,
- // }
- // service.CreateErrMsgLog(errlog)
- //
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterRepeatException)
- // return
- // }
- // } else {
- // adminUser := c.GetAdminUserInfo()
- // errlog := &models.HisOrderError{
- // UserOrgId: adminUser.CurrentOrgId,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // ErrMsg: res.ErrMsg,
- // Status: 1,
- // PatientId: id,
- // RecordTime: recordDateTime,
- // Stage: 4,
- // }
- // service.CreateErrMsgLog(errlog)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCalOrderException)
- // return
- // }
- //
- // } else {
- // var total float64
- // for _, item := range prescriptions {
- // if item.Type == 1 { //药品
- // for _, subItem := range item.HisDoctorAdviceInfo {
- // total = total + (subItem.Price * subItem.PrescribingNumber)
- // }
- // }
- // if item.Type == 2 { //项目
- // for _, subItem := range item.HisPrescriptionProject {
- // total = total + (subItem.Price * float64(subItem.Count))
- // }
- // }
- //
- // for _, subItem := range item.HisAdditionalCharge {
- // total = total + (subItem.Price * float64(subItem.Count))
- // }
- // }
- //
- // allTotal := fmt.Sprintf("%.2f", total)
- // totals, _ := strconv.ParseFloat(allTotal, 64)
- // order := &models.HisOrder{
- // UserOrgId: adminUser.CurrentOrgId,
- // HisPatientId: his.ID,
- // PatientId: id,
- // SettleAccountsDate: recordDateTime,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // Status: 1,
- // OrderStatus: 2,
- // Number: chrg_bchno,
- // MedfeeSumamt: totals,
- // }
- // err = service.CreateOrder(order)
- // if err != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException)
- // return
- // }
- //
- // var customs []*Custom
- // for _, item := range prescriptions {
- //
- // if item.Type == 1 { //药品
- // for _, subItem := range item.HisDoctorAdviceInfo {
- // cus := &Custom{
- // AdviceId: subItem.ID,
- // ProjectId: 0,
- // DetItemFeeSumamt: fmt.Sprintf("%.2f", subItem.Price*subItem.PrescribingNumber),
- // Cut: fmt.Sprintf("%.2f", subItem.PrescribingNumber),
- // FeedetlSn: subItem.FeedetlSn,
- // Price: fmt.Sprintf("%.2f", subItem.Price),
- // MedListCodg: subItem.MedListCodg,
- // Type: 1,
- // }
- // customs = append(customs, cus)
- // }
- // }
- //
- // if item.Type == 2 { //项目
- // for _, subItem := range item.HisPrescriptionProject {
- //
- // cus := &Custom{
- // AdviceId: 0,
- // ProjectId: subItem.ID,
- // DetItemFeeSumamt: fmt.Sprintf("%.2f", subItem.Price*float64(subItem.Count)),
- // Cut: fmt.Sprintf("%.2f", float64(subItem.Count)),
- // FeedetlSn: subItem.FeedetlSn,
- // Price: fmt.Sprintf("%.2f", float64(subItem.Price)),
- // MedListCodg: subItem.MedListCodg,
- // Type: 2,
- // }
- //
- // customs = append(customs, cus)
- // }
- // }
- //
- // for _, item := range item.HisAdditionalCharge {
- // cus := &Custom{
- // ItemId: item.ID,
- // AdviceId: 0,
- // ProjectId: 0,
- // DetItemFeeSumamt: fmt.Sprintf("%.2f", item.Price),
- // Cut: fmt.Sprintf("%.2f", float64(item.Count)),
- // FeedetlSn: item.FeedetlSn,
- // Price: fmt.Sprintf("%.2f", float64(item.Price)),
- // MedListCodg: item.XtHisAddtionConfig.Code,
- // Type: 3,
- // }
- //
- // customs = append(customs, cus)
- // }
- //
- // }
- //
- // for _, item := range customs {
- // var advice_id int64 = 0
- // var project_id int64 = 0
- // var item_id int64 = 0
- //
- // var types int64 = 0
- //
- // if item.Type == 1 {
- // advice_id = item.AdviceId
- // project_id = 0
- // item_id = 0
- // } else if item.Type == 2 {
- // advice_id = 0
- // item_id = 0
- //
- // project_id = item.ProjectId
- // } else if item.Type == 3 {
- // advice_id = 0
- // item_id = item.ItemId
- // project_id = 0
- // }
- //
- // detItemFeeSumamt, _ := strconv.ParseFloat(item.DetItemFeeSumamt, 32)
- // cut, _ := strconv.ParseFloat(item.Cut, 32)
- // pric, _ := strconv.ParseFloat(item.Price, 32)
- //
- // info := &models.HisOrderInfo{
- // OrderNumber: order.Number,
- // UploadDate: time.Now().Unix(),
- // AdviceId: advice_id,
- // DetItemFeeSumamt: detItemFeeSumamt,
- // Cnt: cut,
- // Pric: pric,
- // PatientId: id,
- // Status: 1,
- // Mtime: time.Now().Unix(),
- // Ctime: time.Now().Unix(),
- // UserOrgId: adminUser.CurrentOrgId,
- // HisPatientId: his.ID,
- // OrderId: order.ID,
- // ProjectId: project_id,
- // Type: types,
- // ItemId: item_id,
- // }
- // service.CreateOrderInfo(info)
- // }
- // //err := service.UpDateAddtionNumber(adminUser.CurrentOrgId, ids, chrg_bchno)
- // err = service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, chrg_bchno)
- // err = service.UpDatePrescriptionInfoNumber(adminUser.CurrentOrgId, id, chrg_bchno, recordDateTime)
- // err = service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId)
- // if err == nil {
- // c.ServeSuccessJSON(map[string]interface{}{
- // "msg": "结算成功",
- // })
- // } else {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException)
- // return
- // }
- // }
- //}
-
- //上传明细-预结算-
- func (c *HisApiController) GetPreUploadInfo() {
- id, _ := c.GetInt64("id")
- record_time := c.GetString("record_time")
- his_patient_id, _ := c.GetInt64("his_patient_id")
- settle_accounts_type, _ := c.GetInt64("settle_accounts_type")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- diagnosis_id := c.GetString("diagnosis")
- sick_type, _ := c.GetInt64("sick_type")
- reg_type, _ := c.GetInt64("p_type")
- begin_time := c.GetString("begin_time")
-
- id_str := c.GetString("ids")
- ids_arr := strings.Split(id_str, ",")
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordDateTime := theTime.Unix()
- adminUser := c.GetAdminUserInfo()
-
- diagnosis_ids := strings.Split(diagnosis_id, ",")
-
- var config []*models.HisXtDiagnoseConfig
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- config = append(config, &diagnosisConfig)
- }
- //diagnosisConfig, _ := service.FindDiagnoseById(diagnosis_id)
-
- sickConfig, _ := service.FindSickById(sick_type)
-
- var prescriptions []*models.HisPrescription
-
- var start_time int64
- var end_time int64
-
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- fmt.Println(his_patient_id)
- his, _ := service.GetNewHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
- timestamp := time.Now().Unix()
- tempTime := time.Unix(timestamp, 0)
- timeFormat := tempTime.Format("20060102150405")
- chrgBchno := rand.Intn(100000) + 10000
- chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(his.PatientId, 10)
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- var patientPrescription models.HisPrescriptionInfo
- patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
- if patientPrescription.ID == 0 {
- patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime)
- }
- //miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
-
- doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId)
-
- strconv.FormatInt(his.PatientId, 10)
-
- var res2 ResultSix
- var resSix10265 ResultSix10265
- //var time_stamp string
- if miConfig.MdtrtareaAdmvs == "421300" {
- data := make(map[string]interface{})
- client := &http.Client{}
- data["psn_no"] = his.PsnNo
- data["mdtrt_id"] = his.Number
- data["department"] = department.Name
- data["org_name"] = miConfig.OrgName
- data["med_type"] = strconv.FormatInt(reg_type, 10)
- data["doctor_id"] = doctor_info.DoctorNumber
- data["doctor_name"] = roles.UserName
- data["fixmedins_code"] = miConfig.Code
- data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs
- data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
- data["secret_key"] = miConfig.SecretKey
- data["sick_code"] = sickConfig.CountryCode
- data["sick_name"] = sickConfig.ClassName
- data["begin_time"] = begin_time
- data["dept"] = strconv.FormatInt(department.ID, 10)
- data["config"] = config
- data["opter"] = roles.UserName
-
- fmt.Println(data)
- bytesData, _ := json.Marshal(data)
- req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/2203", bytes.NewReader(bytesData))
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
-
- data := make(map[string]interface{})
- client := &http.Client{}
- data["psn_no"] = his.PsnNo
- data["mdtrt_id"] = his.Number
- data["doctor"] = roles.UserName
- data["department"] = department.Name
- data["org_name"] = miConfig.OrgName
- data["med_type"] = strconv.FormatInt(reg_type, 10)
- data["doctor_id"] = strconv.FormatInt(doctor_info.AdminUserId, 10)
- data["fixmedins_code"] = miConfig.Code
- data["insuplc_admdvs"] = his.InsuplcAdmdvs
- data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
- data["secret_key"] = miConfig.SecretKey
- data["sick_code"] = sickConfig.CountryCode
- data["sick_name"] = sickConfig.ClassName
- data["begin_time"] = begin_time
- data["dept"] = strconv.FormatInt(department.ID, 10)
- data["config"] = config
- data["url"] = miConfig.Url
- data["ak"] = miConfig.AccessKey
- data["cainfo"] = miConfig.Cainfo
-
- bytesData, _ := json.Marshal(data)
-
- var req *http.Request
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2203", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2203", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- //time_stamp := strconv.FormatInt(int64(respJSON["data"].(map[string]interface{})["time_stamp"].(float64)), 10)
-
- //fmt.Println(respJSON["data"].(map[string]interface{})["time_stamp"].(string))
- //time_stamp = respJSON["data"].(map[string]interface{})["time_stamp"].(string)
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
- if err := json.Unmarshal(userJSONBytes, &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res2.InfRefmsgid = resSix10265.InfRefmsgid
- res2.Output = resSix10265.Output
- res2.ErrMsg = resSix10265.ErrMsg
- res2.Cainfo = resSix10265.Cainfo
- res2.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res2.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
-
- result, requestLog, _ := service.FJyb2203(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time, doctor_info.UserName, roles.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- saveLog(result, requestLog, "2203", "上传就诊信息")
- var respJSON2 map[string]interface{}
- if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- userJSONBytes2, _ := json.Marshal(respJSON2)
- if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- var result string
- var requestLog string
- result, requestLog = service.Jxyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, miConfig.Url, miConfig.AccessKey, "")
-
- saveLog(result, requestLog, "2203", "上传就诊信息")
- var respJSON2 map[string]interface{}
- if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- userJSONBytes2, _ := json.Marshal(respJSON2)
- if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- var result string
- var requestLog string
- result, requestLog = service.Hnyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, miConfig.Url, miConfig.AccessKey, "")
-
- saveLog(result, requestLog, "2203", "上传就诊信息")
- var respJSON2 map[string]interface{}
- if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- userJSONBytes2, _ := json.Marshal(respJSON2)
- if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
- var result string
- var requestLog string
- if miConfig.MdtrtareaAdmvs == "440781" { //
- result, requestLog = service.Gdyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time)
- } else {
-
- if miConfig.Code == "H15049901371" {
- //赤峰地区国家医保医疗类别
- //职工透析:医疗类别选特殊情况门诊990502
- //居民定额血透门慢: 医疗类别选门诊慢病140104
- var med_type string
- if his.Insutype == "390" {
- if reg_type == 14 {
- med_type = "9933"
- } else if reg_type == 11 {
- med_type = "11"
- }
- } else if his.Insutype == "310" {
- if reg_type == 14 {
- med_type = "990502"
- } else if reg_type == 11 {
- med_type = "11"
- }
- }
- result, requestLog = service.Gdyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, med_type, doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time)
- } else {
- result, requestLog = service.Gdyb2203(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time)
- }
-
- saveLog(result, requestLog, "2203", "上传就诊信息")
- var respJSON2 map[string]interface{}
- if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- userJSONBytes2, _ := json.Marshal(respJSON2)
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes2, &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res2.InfRefmsgid = resSix10265.InfRefmsgid
- res2.Output = resSix10265.Output
- res2.ErrMsg = resSix10265.ErrMsg
- res2.Cainfo = resSix10265.Cainfo
- res2.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res2.Infcode = infocode
- } else {
- if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- }
- }
- if res2.Infcode != 0 {
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res2.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 3,
- }
- service.CreateErrMsgLog(errlog)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res2.ErrMsg,
- })
- return
-
- } else {
- his.Diagnosis = diagnosis_id
- his.SickType = sickConfig.ID
- his.PType = fmt.Sprintf("%d", reg_type)
- service.UpdateHisPatientThree(&his)
-
- data := make(map[string]interface{})
- if settle_accounts_type == 1 { //日结
- if reg_type == 11 || reg_type == 1111 || reg_type == 1112 {
- prescriptions, _ = service.GetPrescriptionByIds(ids_arr, adminUser.CurrentOrgId)
- } else {
- prescriptions, _ = service.GetNewHisPrescription(adminUser.CurrentOrgId, his_patient_id, recordDateTime, strconv.Itoa(int(reg_type)))
- }
- data["pre"] = prescriptions
- } else { //月结
- start_time_str := c.GetString("start_time")
- end_time_str := c.GetString("end_time")
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordStartTime := theStartTime.Unix()
- start_time = recordStartTime
- theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordEndTime := theEndTime.Unix()
- end_time = recordEndTime
- prescriptions, _ = service.GetMonthHisPrescriptionTwo(adminUser.CurrentOrgId, id, recordStartTime, recordEndTime, reg_type)
- data["pre"] = prescriptions
- }
-
- client := &http.Client{}
-
- data["psn_no"] = his.PsnNo
- data["mdtrt_id"] = his.Number
- data["chrg_bchno"] = chrg_bchno
- data["org_name"] = miConfig.OrgName
- data["doctor"] = doctor_info.UserName
- data["doctor_id"] = doctor_info.DoctorNumber
- data["dept"] = strconv.FormatInt(patientPrescription.Departments, 10)
- data["fixmedins_code"] = miConfig.Code
- data["opter"] = roles.UserName
- data["dept_code"] = department.Number
- data["insuplc_admdvs"] = his.InsuplcAdmdvs
- data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
- data["secret_key"] = miConfig.SecretKey
- data["balance_accounts_type"] = strconv.FormatInt(his.BalanceAccountsType, 10)
- data["url"] = miConfig.Url
- data["ak"] = miConfig.AccessKey
- data["new_doctor_name"] = patientPrescription.Doctor
- data["diag_code"] = sickConfig.CountryCode
- data["cainfo"] = miConfig.Cainfo
- data["opter"] = roles.UserName
-
- var ids []int64
-
- for _, item := range prescriptions {
- ids = append(ids, item.ID)
- }
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- if config.IsOpen == 1 { //对接了医保,走医保流程
- var res ResultFour
- var resFour10265 ResultFour10265
-
- if miConfig.MdtrtareaAdmvs == "421300" {
- bytesData, _ := json.Marshal(data)
- req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/2204", bytes.NewReader(bytesData))
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- result3101 := Check3101(c, id, his_patient_id, admin_user_id, "2", record_time, prescriptions)
- if result3101.Infcode == "0" {
- if len(result3101.Output.Result) > 0 {
- var errMsgs []string
- for _, item := range result3101.Output.Result {
- errMsgs = append(errMsgs, item.VolaCont)
-
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": errMsgs,
- })
- return
- } else {
-
- bytesData, _ := json.Marshal(data)
- var req *http.Request
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes))
- if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resFour10265.InfRefmsgid
- res.Output = resFour10265.Output
- res.ErrMsg = resFour10265.ErrMsg
- res.Cainfo = resFour10265.Cainfo
- res.WarnMsg = resFour10265.WarnMsg
- infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- }
- }
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
-
- result, request_log, _ := service.FJyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(patientPrescription.Departments, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(his.BalanceAccountsType, 10), roles.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, sickConfig.CountryCode)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2204", "上传费用明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- result, request_log := service.Jxyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), sickConfig.CountryCode, miConfig.Url, miConfig.AccessKey, doctor_info.UserName, "", "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2204", "上传费用明细")
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- result, request_log := service.Hnyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), sickConfig.CountryCode, miConfig.Url, miConfig.AccessKey, doctor_info.UserName, "", "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2204", "上传费用明细")
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
-
- if miConfig.Code == "H15049901371" {
- result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), patientPrescription.DoctorId, sickConfig.CountryCode)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2204", "上传费用明细")
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resFour10265.InfRefmsgid
- res.Output = resFour10265.Output
- res.ErrMsg = resFour10265.ErrMsg
- res.Cainfo = resFour10265.Cainfo
- res.WarnMsg = resFour10265.WarnMsg
- infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else {
- result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), patientPrescription.DoctorId, sickConfig.CountryCode)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2204", "上传费用明细")
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- }
-
- if res.Infcode == 0 {
- order := &models.HisOrder{
- UserOrgId: adminUser.CurrentOrgId,
- HisPatientId: his.ID,
- PatientId: his.PatientId,
- SettleAccountsDate: recordDateTime,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- MdtrtId: his.Number,
- PsnNo: his.PsnNo,
- MedType: strconv.FormatInt(reg_type, 10),
- Status: 1,
- Number: chrg_bchno,
- Infcode: res.Infcode,
- WarnMsg: res.WarnMsg,
- Cainfo: res.Cainfo,
- ErrMsg: res.ErrMsg,
- RespondTime: res.RefmsgTime,
- InfRefmsgid: res.InfRefmsgid,
- OrderStatus: 1,
- IsMedicineInsurance: 1,
- SettleType: settle_accounts_type,
- SettleStartTime: start_time,
- SettleEndTime: end_time,
- Creator: roles.AdminUserId,
- Modify: roles.AdminUserId,
- PType: 2,
- Diagnosis: diagnosis_id,
- }
-
- err = service.CreateOrder(order)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException)
- return
- }
-
- for _, item := range res.Output.Result {
- temp := strings.Split(item.FeedetlSn, "-")
- var advice_id int64 = 0
- var project_id int64 = 0
- var types int64 = 0
-
- id, _ := strconv.ParseInt(temp[2], 10, 64)
- types, _ = strconv.ParseInt(temp[1], 10, 64)
-
- if temp[1] == "1" {
- advice_id = id
- project_id = 0
- } else if temp[1] == "2" {
- advice_id = 0
- project_id = id
- }
-
- info := &models.HisOrderInfo{
- OrderNumber: order.Number,
- FeedetlSn: item.FeedetlSn,
- UploadDate: time.Now().Unix(),
- AdviceId: advice_id,
- DetItemFeeSumamt: item.DetItemFeeSumamt,
- Cnt: item.Cnt,
- Pric: float64(item.Pric),
- PatientId: his.PatientId,
- PricUplmtAmt: item.PricUplmtAmt,
- SelfpayProp: item.SelfpayProp,
- FulamtOwnpayAmt: item.FulamtOwnpayAmt,
- OverlmtAmt: item.OverlmtAmt,
- PreselfpayAmt: item.PreselfpayAmt,
- BasMednFlag: item.BasMednFlag,
- MedChrgitmType: item.MedChrgitmType,
- HiNegoDrugFlag: item.HiNegoDrugFlag,
- Status: 1,
- Memo: item.Memo,
- Mtime: time.Now().Unix(),
- InscpScpAmt: item.InscpScpAmt,
- DrtReimFlag: item.DrtReimFlag,
- Ctime: time.Now().Unix(),
- ListSpItemFlag: item.ListSpItemFlag,
- ChldMedcFlag: item.ChldMedcFlag,
- LmtUsedFlag: item.LmtUsedFlag,
- ChrgitmLv: item.ChrgitmLv,
- UserOrgId: adminUser.CurrentOrgId,
- HisPatientId: his.ID,
- OrderId: order.ID,
- ProjectId: project_id,
- Type: types,
- }
- service.CreateOrderInfo(info)
-
- }
- service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, chrg_bchno)
- service.UpDateHisPrescriptionInfoNumber(adminUser.CurrentOrgId, his_patient_id, chrg_bchno, recordDateTime)
-
- var total float64
- for _, item := range prescriptions {
- if item.Type == 1 { //药品
- for _, subItem := range item.HisDoctorAdviceInfo {
- total = total + (subItem.Price * subItem.PrescribingNumber)
- }
- }
- if item.Type == 2 { //项目
-
- for _, subItem := range item.HisPrescriptionProject {
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
-
- total = total + (subItem.Price * cnt)
- }
- }
- }
-
- for _, item := range prescriptions {
- for _, subItem := range item.HisAdditionalCharge {
- total = total + (subItem.Price * float64(subItem.Count))
- }
- }
-
- allTotal := fmt.Sprintf("%.4f", total)
- if res.Infcode == 0 {
- var rf []*ResultFive
- json.Unmarshal([]byte(his.Iinfo), &rf)
- chrg_bchno := chrg_bchno
- cert_no := his.Certno
-
- var insutypes []string
-
- var insutype string
- var is390 int = 0
- var is310 int = 0
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item.Insutype)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0]
- } else {
- for _, i := range insutypes {
- if i == "390" {
- is390 = 1
- }
-
- if i == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
- if len(insutypes) == 2 {
- insutype = strconv.FormatInt(his.SocialType, 64)
- }
-
- //insutype = "390"
- if his.IdCardType == 1 {
- cert_no = his.MedicalInsuranceNumber
-
- } else {
-
- cert_no = his.Certno
-
- }
- var res ResultSeven
- var resSeven10265 ResultSeven10265
-
- if miConfig.MdtrtareaAdmvs == "421300" {
-
- api := "http://192.168.124.4:9532/" + "hbyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10)
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- result3101 := Check3102(c, id, his_patient_id, admin_user_id, "6", order.ID)
- if result3101.Infcode == "0" {
- if len(result3101.Output.Result) > 0 {
- var errMsgs []string
- for _, item := range result3101.Output.Result {
- errMsgs = append(errMsgs, item.VolaCont)
-
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": errMsgs,
- })
- return
- } else {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- if his.IdCardType != 4 {
- psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1)
- bas := strings.Split(psn_info.CardInfo, "|")
- if his.IdCardType == 1 {
- cert_no = bas[2]
- } else {
- cert_no = bas[1]
- }
-
- } else {
- cert_no = his.Certno
- }
-
- //江苏地区国家医保医疗类别
- //职工透析:医疗类别选特殊情况门诊9933
- //居民血透门慢: 医疗类别选门诊慢病1402
- //var med_type string
- //if his.Insutype == "310" {
- // if reg_type == 14 {
- // med_type = "9933"
- // } else if reg_type == 11 {
- // med_type = "11"
- //
- // }
- //} else if his.Insutype == "390" {
- // if reg_type == 14 {
- // med_type = "1402"
- // } else if reg_type == 11 {
- // med_type = "11"
- // }
- //}
-
- var api string
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&verify_number=" + psn_info.VerifyNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- api = "http://192.168.5.251:9532/" + "jsyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" +
- his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName +
- "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) +
- "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no +
- "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&verify_number=" + psn_info.VerifyNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
- if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resSeven10265.InfRefmsgid
- res.Output = resSeven10265.Output
- res.ErrMsg = resSeven10265.ErrMsg
- res.Cainfo = resSeven10265.Cainfo
- res.WarnMsg = resSeven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- }
- }
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- psn_info, _ := service.GetPsnByPatientIdTwo(his.PatientId, recordDateTime)
- var result string
- var request_log string
- if his.IdCardType == 4 && len(psn_info.VerifyNumber) > 0 {
- result, request_log, _ = service.FJyb2206ForToken(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
-
- } else {
- result, request_log, _ = service.FJyb2206(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- }
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2206", "预结算")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- var result string
- var request_log string
- if his.IdCardType == 2 {
- result, request_log = service.Jxyb2206(his.PsnNo, his.Number, chrg_bchno, his.IdCardNo, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, his.IdCardNo, "")
-
- } else if his.IdCardType == 1 {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- bas := strings.Split(psn_info.CardInfo, "|")
- basNumber := bas[2]
- card_sn := bas[3]
- result, request_log = service.Jxyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn)
-
- } else {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
-
- result, request_log = service.Jxyb2206(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "")
-
- }
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2206", "预结算")
-
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- var result string
- var request_log string
- if his.IdCardType == 2 {
- result, request_log = service.Hnyb2206(his.PsnNo, his.Number, chrg_bchno, his.IdCardNo, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, his.IdCardNo, "")
-
- } else if his.IdCardType == 1 {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- bas := strings.Split(psn_info.CardInfo, "|")
- basNumber := bas[2]
- card_sn := bas[3]
- result, request_log = service.Jxyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn)
-
- } else {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
-
- result, request_log = service.Jxyb2206(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "")
-
- }
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2206", "预结算")
-
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
-
- var result string
- var request_log string
- if miConfig.Code == "H15049901371" {
- //赤峰地区国家医保医疗类别
- //职工透析:医疗类别选特殊情况门诊990502
- //居民定额血透门慢: 医疗类别选门诊慢病140104
- var med_type string
- if his.Insutype == "390" {
- if reg_type == 14 {
- med_type = "9933"
- } else if reg_type == 11 {
- med_type = "11"
- }
- } else if his.Insutype == "310" {
- if reg_type == 14 {
- med_type = "990502"
- } else if reg_type == 11 {
- med_type = "11"
- }
- }
- result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, 0, 0, 0, 0, his.IdType)
- } else {
- psn_info, _ := service.GetPsnByPatientId(his.PatientId)
- if his.IdCardType == 4 {
- result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType)
- } else {
- result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType)
- }
-
- }
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request_log, "2206", "预结算")
- //userJSONBytes, _ := json.Marshal(dat)
- //
- //if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- //}
-
- userJSONBytes, _ := json.Marshal(dat)
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSeven10265.InfRefmsgid
- res.Output = resSeven10265.Output
- res.ErrMsg = resSeven10265.ErrMsg
- res.Cainfo = resSeven10265.Cainfo
- res.WarnMsg = resSeven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64)
- res.Infcode = infocode
- } else {
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- }
-
- if res.Infcode != 0 {
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- Number: chrg_bchno,
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 20,
- }
- service.CreateErrMsgLog(errlog)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- } else {
- order, _ := service.GetHisOrderTwo(adminUser.CurrentOrgId, chrg_bchno, id)
- order.OrderStatus = 1
- order.IsPre = 1
- order.Status = 1
- order.MdtrtId = res.Output.Setlinfo.MdtrtID
- order.SetlId = res.Output.Setlinfo.SetlID
- order.PsnNo = res.Output.Setlinfo.PsnNo
- order.PsnName = res.Output.Setlinfo.PsnName
- order.PsnCertType = res.Output.Setlinfo.PsnCertType
- order.Certno = res.Output.Setlinfo.Certno
- order.Gend = res.Output.Setlinfo.Gend
- order.Naty = res.Output.Setlinfo.Naty
- order.Age = res.Output.Setlinfo.Age
- order.Insutype = res.Output.Setlinfo.Insutype
- order.PsnType = res.Output.Setlinfo.PsnType
- order.CvlservFlag = res.Output.Setlinfo.CvlservFlag
- order.SetlTime = res.Output.Setlinfo.SetlTime
- order.MdtrtCertType = res.Output.Setlinfo.MdtrtCertType
- if res.Output.Setlinfo.MedType == "140101" {
- order.MedType = "14"
-
- } else {
- order.MedType = res.Output.Setlinfo.MedType
- }
- if reg_type == 1112 {
- order.MedType = "1112"
- }
- if reg_type == 1111 {
- order.MedType = "1111"
- }
- order.MedfeeSumamt = res.Output.Setlinfo.MedfeeSumamt
- order.FulamtOwnpayAmt = res.Output.Setlinfo.FulamtOwnpayAmt
- order.OverlmtSelfPay = res.Output.Setlinfo.OverlmtSelfpay
- order.PreselfpayAmt = res.Output.Setlinfo.PreselfpayAmt
- order.InscpScpAmt = res.Output.Setlinfo.InscpScpAmt
- order.ActPayDedc = res.Output.Setlinfo.ActPayDedc
- order.HifpPay = res.Output.Setlinfo.HifpPay
- order.CvlservPay = res.Output.Setlinfo.CvlservPay
- order.PoolPropSelfpay = res.Output.Setlinfo.PoolPropSelfpay
- order.HifesPay = res.Output.Setlinfo.HifesPay
- order.HifobPay = res.Output.Setlinfo.HifobPay
- order.MafPay = res.Output.Setlinfo.MafPay
- order.HifmiPay = res.Output.Setlinfo.HifmiPay
- order.OthPay = res.Output.Setlinfo.OthPay
- order.FundPaySumamt = res.Output.Setlinfo.FundPaySumamt
- order.PsnPartAmt = res.Output.Setlinfo.PsnPartAmt
- order.AcctPay = res.Output.Setlinfo.AcctPay
- order.PsnCashPay = res.Output.Setlinfo.PsnCashPay
- order.HospPartAmt = res.Output.Setlinfo.HospPartAmt
- order.Balc = res.Output.Setlinfo.Balc
- order.AcctMulaidPay = res.Output.Setlinfo.AcctMulaidPay
- order.MedinsSetlId = res.Output.Setlinfo.MedinsSetlID
- order.ClrOptins = res.Output.Setlinfo.ClrOptins
- order.ClrWay = res.Output.Setlinfo.ClrWay
- order.Creator = order.Creator
- order.Modify = roles.AdminUserId
- setlDetail, _ := json.Marshal(res.Output.Setldetail)
- detailStr := string(setlDetail)
- order.SetlDetail = detailStr
- //err := service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId)
- err = service.UpDateOrder(order)
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "预结算成功",
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException)
- return
- }
- }
- } else {
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 4,
- }
- service.CreateErrMsgLog(errlog)
-
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterRepeatException)
- return
- }
- } else {
- adminUser := c.GetAdminUserInfo()
- errlog := &models.HisOrderError{
- UserOrgId: adminUser.CurrentOrgId,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- ErrMsg: res.ErrMsg,
- Status: 1,
- PatientId: id,
- RecordTime: recordDateTime,
- Stage: 4,
- }
- service.CreateErrMsgLog(errlog)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
- }
- }
-
- //退款
- func (c *HisApiController) Refund() {
- order_id, _ := c.GetInt64("order_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- adminUser := c.GetAdminUserInfo()
- var order models.HisOrder
- order, _ = service.GetHisOrderByID(order_id)
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- if order.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- his, _ := service.GetHisPatientByNumber(order.MdtrtId)
-
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- if config.IsOpen == 1 { //对接了医保,走医保流程
- var res ResultSixteen
- var resSixteen10265 ResultSixteen10265
- var src_resquest string
- var result string
-
- if miConfig.MdtrtareaAdmvs == "421300" {
- api3 := "http://192.168.124.4:9532/" + "hbyb/2208?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes3))
- if err := json.Unmarshal(userJSONBytes3, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
-
- var api3 string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api3 = "http://192.168.2.110:9532/" + "jsyb/2208?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- api3 = "http://192.168.5.251:9532/" + "jsyb/2208?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
- if err := json.Unmarshal(userJSONBytes3, &resSixteen10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resSixteen10265.InfRefmsgid
- res.Output = resSixteen10265.Output
- res.ErrMsg = resSixteen10265.ErrMsg
- res.Cainfo = resSixteen10265.Cainfo
- res.WarnMsg = resSixteen10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSixteen10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- result, src_resquest, _ = service.FJyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, src_resquest, "2208", "退费")
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- result, src_resquest = service.Jxyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Url, miConfig.AccessKey, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, src_resquest, "2208", "退费")
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- result, src_resquest = service.Hnyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Url, miConfig.AccessKey, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, src_resquest, "2208", "退费")
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
-
- if miConfig.Code == "H15049901371" {
- result, src_resquest = service.Gdyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, src_resquest, "2208", "退费")
-
- userJSONBytes, _ := json.Marshal(dat)
-
- if err := json.Unmarshal(userJSONBytes, &resSixteen10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSixteen10265.InfRefmsgid
- res.Output = resSixteen10265.Output
- res.ErrMsg = resSixteen10265.ErrMsg
- res.Cainfo = resSixteen10265.Cainfo
- res.WarnMsg = resSixteen10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSixteen10265.Infcode, 10, 64)
- res.Infcode = infocode
- } else {
- result, src_resquest = service.Gdyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, src_resquest, "2208", "退费")
-
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- }
-
- if res.Infcode == 0 {
- var res2 ResultSix
- var resSix10265 ResultSix10265
-
- if miConfig.MdtrtareaAdmvs == "421300" {
-
- api3 := "http://192.168.124.4:9532/" + "hbyb/2205?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes3))
- if err := json.Unmarshal(userJSONBytes3, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- var api3 string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api3 = "http://192.168.2.110:9532/" + "jsyb/2205?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- api3 = "http://192.168.5.251:9532/" + "jsyb/2205?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes3))
- if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res2.InfRefmsgid = resSix10265.InfRefmsgid
- res2.Output = resSix10265.Output
- res2.ErrMsg = resSix10265.ErrMsg
- res2.Cainfo = resSix10265.Cainfo
- res2.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res2.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- result2, src_request, _ := service.FJyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_request, "2205", "撤销明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- result2, src_request := service.Jxyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_request, "2205", "撤销明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- result2, src_request := service.Hnyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_request, "2205", "撤销明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else {
-
- if miConfig.Code == "H15049901371" {
- result2, src_request := service.Gdyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_request, "2205", "撤销明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res2.InfRefmsgid = resSix10265.InfRefmsgid
- res2.Output = resSix10265.Output
- res2.ErrMsg = resSix10265.ErrMsg
- res2.Cainfo = resSix10265.Cainfo
- res2.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res2.Infcode = infocode
- } else {
- result2, src_request := service.Gdyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_request, "2205", "撤销明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- }
-
- if res2.Infcode == 0 {
- err := service.UpdataOrderStatus(order_id, order.Number, adminUser.CurrentOrgId, src_resquest, result)
- if err == nil {
- //当押金不为零时产生退费记录
- if order.Decimal != 0 {
- tmp := strconv.FormatInt(order.ID, 10)
- err = service.MoneyIncrease(adminUser.CurrentOrgId, order.PatientId, tmp, order.Decimal)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "退费成功",
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "code": -10,
- "msg": res2.ErrMsg,
- })
- }
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "code": -10,
- "msg": res.ErrMsg,
- })
- }
- }
- }
-
- func (c *HisApiController) RefundNumber() {
- record_time := c.GetString("record_time")
- //patient_id, _ := c.GetInt64("patient_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- his_patient_id, _ := c.GetInt64("id")
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- adminUser := c.GetAdminUserInfo()
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- fmt.Println(err)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordDateTime := theTime.Unix()
- //his, _ := service.GetVMHisPatientInfo(adminUser.CurrentOrgId, patient_id, recordDateTime)
-
- his, _ := service.GetHisPatientRecord(adminUser.CurrentOrgId, his_patient_id)
- //patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime)
- //order, _ := service.GetHisOrderByID(order_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
-
- count, _ := service.GetOrderCountByNumber(adminUser.CurrentOrgId, his.PatientId, recordDateTime, his.Number)
-
- if count > 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeOrderParamWrong)
- return
- }
-
- if config.IsOpen == 1 { //对接了医保,走医保流程
- var res2 ResultSix
- var resSix10265 ResultSix10265
-
- if miConfig.MdtrtareaAdmvs == "421300" {
-
- api3 := "http://192.168.124.4:9532/" + "hbyb/2202?psn_no=" + his.PsnNo +
- "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes3))
- if err := json.Unmarshal(userJSONBytes3, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- var api3 string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api3 = "http://192.168.2.110:9532/" + "jsyb/2202?psn_no=" + his.PsnNo +
- "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- api3 = "http://192.168.5.251:9532/" + "jsyb/2202?psn_no=" + his.PsnNo +
- "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
- }
-
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
- if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res2.InfRefmsgid = resSix10265.InfRefmsgid
- res2.Output = resSix10265.Output
- res2.ErrMsg = resSix10265.ErrMsg
- res2.Cainfo = resSix10265.Cainfo
- res2.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res2.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
-
- result, request, _ := service.FJyb2202(his.PsnNo, his.Number, his.IptOtpNo, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request, "2202", "退号")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- result, request := service.Jxyb2202(his.PsnNo, his.Number, his.IptOtpNo, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request, "2202", "退号")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- result, request := service.Hnyb2202(his.PsnNo, his.Number, his.IptOtpNo, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- saveLog(result, request, "2202", "退号")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
- var api3 string
-
- if miConfig.Code == "H15049901371" {
-
- api3 = "http://127.0.0.1:9532/" + "gdyb/three?psn_no=" + his.PsnNo +
- "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- } else {
- api3 = "http://127.0.0.1:9532/" + "gdyb/three?psn_no=" + his.PsnNo +
- "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
-
- }
-
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
-
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res2.InfRefmsgid = resSix10265.InfRefmsgid
- res2.Output = resSix10265.Output
- res2.ErrMsg = resSix10265.ErrMsg
- res2.Cainfo = resSix10265.Cainfo
- res2.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res2.Infcode = infocode
- } else {
-
- if err := json.Unmarshal(userJSONBytes3, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- }
-
- if res2.Infcode == 0 {
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "退号成功",
- })
- service.UpdataRegStatusTwo(his_patient_id, recordDateTime, adminUser.CurrentOrgId)
-
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "code": -10,
- "msg": res2.ErrMsg,
- })
-
- }
-
- } else {
- //err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId)
- //if err == nil {
- // c.ServeSuccessJSON(map[string]interface{}{
- // "msg": "退费成功",
- // })
- //} else {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- //}
- }
- }
- func (c *HisApiController) RefundDetail() {
- order_id, _ := c.GetInt64("order_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- //his_patient_id, _ := c.GetInt64("his_patient_id")
-
- number := c.GetString("number")
- record_time := c.GetString("record_time")
- patient_id, _ := c.GetInt64("patient_id")
- //med_type, _ := c.GetInt64("med_type")
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- adminUser := c.GetAdminUserInfo()
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- fmt.Println(err)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordDateTime := theTime.Unix()
- //his, _ := service.GetNewVMHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime)
-
- patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime)
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
-
- var order models.HisOrder
- order, _ = service.GetHisOrderByID(order_id)
- his, _ := service.GetHisPatientByNumber(order.MdtrtId)
- if config.IsOpen == 1 { //对接了医保,走医保流程
- var res2 ResultSix
-
- if miConfig.MdtrtareaAdmvs == "421300" {
- api3 := "http://192.168.124.4:9532/" + "hbyb/2205?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes3))
- if err := json.Unmarshal(userJSONBytes3, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "")
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "撤销明细成功",
- })
- return
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- var resSix10265 ResultSix10265
-
- var api3 string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api3 = "http://192.168.2.110:9532/" + "jsyb/2205?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- api3 = "http://192.168.5.251:9532/" + "jsyb/2205?psn_no=" + order.PsnNo +
- "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp3, requestErr3 := http.Get(api3)
- if requestErr3 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body3, ioErr3 := ioutil.ReadAll(resp3.Body)
- if ioErr3 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr3)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON3 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes3, _ := json.Marshal(respJSON3)
- fmt.Println("log")
- fmt.Println(string(userJSONBytes3))
- if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res2.InfRefmsgid = resSix10265.InfRefmsgid
- res2.Output = resSix10265.Output
- res2.ErrMsg = resSix10265.ErrMsg
- res2.Cainfo = resSix10265.Cainfo
- res2.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res2.Infcode = infocode
-
- err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "")
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "撤销明细成功",
- })
- return
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- result2, src_request, _ := service.FJyb2205(his.PsnNo, his.Number, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_request, "2205", "撤销明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res2.Infcode == 0 {
- err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "")
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "撤销明细成功",
- })
- return
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "code": -10,
- "msg": res2.ErrMsg,
- })
- }
-
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- result2, src_request := service.Jxyb2205(his.PsnNo, his.Number, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_request, "2205", "撤销明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res2.Infcode == 0 {
- err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "")
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "撤销明细成功",
- })
- return
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "code": -10,
- "msg": res2.ErrMsg,
- })
- }
-
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- result2, src_request := service.Hnyb2205(his.PsnNo, his.Number, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result2), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- saveLog(result2, src_request, "2205", "撤销明细")
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res2.Infcode == 0 {
- err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "")
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "撤销明细成功",
- })
- return
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "code": -10,
- "msg": res2.ErrMsg,
- })
- }
-
- } else {
- api2 := "http://127.0.0.1:9532/" + "gdyb/six?psn_no=" + his.PsnNo +
- "&mdtrt_id=" + his.Number + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- resp2, requestErr2 := http.Get(api2)
- if requestErr2 != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body2, ioErr2 := ioutil.ReadAll(resp2.Body)
- if ioErr2 != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr2)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON2 map[string]interface{}
- if err := json.Unmarshal([]byte(string(body2)), &respJSON2); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "")
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "撤销明细成功",
- })
- return
-
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
- } else {
- err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "")
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "退费成功",
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- }
-
- //对账
- func (c *HisApiController) GetCheckAccount() {
- start_time := c.GetString("start_time")
- end_time := c.GetString("end_time")
- insutype := c.GetString("insutype")
- clr_type := c.GetString("clr_type")
- clr_org := c.GetString("clr_optins")
-
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- if len(clr_org) == 0 {
- clr_org = miConfig.MdtrtareaAdmvs
- }
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
- orders, _ := service.GetOrderByTime(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type)
- orders_two, _ := service.GetOrderByTimeFive(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type)
-
- fixmedins_setl_cnt := int64(len(orders))
- var medfee_sumamt float64
- var acct_pay float64
- var fund_pay_sumamt float64
- for _, item := range orders {
- medfee_sumamt = medfee_sumamt + item.MedfeeSumamt
- acct_pay = acct_pay + item.AcctPay
- fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt
- }
- var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- if role.ID == 0 {
- user_name = "xxx"
- } else {
- user_name = role.UserName
- }
- var res ResultEight
- var res10188 ResultEightFor10188
- if config.IsOpen == 1 {
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- api := "http://192.168.2.110:9532/" + "jsyb/3201?" +
- "insutype=" + insutype +
- "&clr_type=" + clr_type +
- "&setl_optins=" + clr_org +
- "&stmt_begndate=" + start_time +
- "&stm_enddate=" + end_time +
- "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
- "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
- "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) +
- "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt+int64(len(orders_two)*2), 10) +
- "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
- "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey +
- "&org_name=" + miConfig.OrgName +
- "&doctor=" + user_name +
- "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- fmt.Println(api)
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body, ioErr := ioutil.ReadAll(resp.Body)
- fmt.Println(body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = res10188.InfRefmsgid
- res.Output = res10188.Output
- res.ErrMsg = res10188.ErrMsg
- res.Cainfo = res10188.Cainfo
- res.WarnMsg = res10188.WarnMsg
- infocode, _ := strconv.ParseInt(res10188.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "150499" {
-
- api := "http://172.16.13.254:9532/" + "nmyb/3201?" +
- "insutype=" + insutype +
- "&clr_type=" + "21" +
- "&setl_optins=" + clr_org +
- "&stmt_begndate=" + start_time +
- "&stm_enddate=" + end_time +
- "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
- "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
- "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) +
- "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt+int64(len(orders_two)*2), 10) +
- "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
- "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey +
- "&org_name=" + miConfig.OrgName +
- "&doctor=" + user_name
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
- if err := json.Unmarshal([]byte(result), &res10188); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = res10188.InfRefmsgid
- res.Output = res10188.Output
- res.ErrMsg = res10188.ErrMsg
- res.Cainfo = res10188.Cainfo
- res.WarnMsg = res10188.WarnMsg
- infocode, _ := strconv.ParseInt(res10188.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- var baseParams models.BaseParams
- baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- baseParams.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- baseParams.SecretKey = miConfig.SecretKey
- baseParams.OrgName = miConfig.OrgName
- baseParams.FixmedinsCode = miConfig.Code
- baseParams.EncKey = miConfig.EncKey
- baseParams.AppSecret = miConfig.AppSecret
- baseParams.SignKey = miConfig.SignKey
- baseParams.AppID = miConfig.Code
- baseParams.Doctor = role.UserName
- baseParams.RequestUrl = miConfig.Url
-
- businessParams := models.BusinessParams{
- Insutype: insutype,
- ClrType: clr_type,
- SetlOptins: clr_org,
- StmtBegndate: start_time,
- StmtEnddate: end_time,
- MedfeeSumamt: medfee_sumamt,
- FundPaySumamt: fund_pay_sumamt,
- AcctPay: acct_pay,
- FixmedinsSetlCnt: fixmedins_setl_cnt,
- }
- result, requestLog, err_msg := service.FJyb3201(baseParams, businessParams, fmt.Sprintf("%.4f", medfee_sumamt), fmt.Sprintf("%.4f", fund_pay_sumamt))
- fmt.Println(requestLog)
- fmt.Println(result)
- fmt.Println(err_msg)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "" {
- var baseParams models.BaseParams
- baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs
- baseParams.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs
- baseParams.SecretKey = miConfig.SecretKey
- baseParams.OrgName = miConfig.OrgName
- baseParams.FixmedinsCode = miConfig.Code
- baseParams.EncKey = miConfig.EncKey
- baseParams.AppSecret = miConfig.AppSecret
- baseParams.SignKey = miConfig.SignKey
- baseParams.AppID = miConfig.Code
- baseParams.Doctor = role.UserName
- baseParams.RequestUrl = miConfig.Url
-
- businessParams := models.BusinessParams{
- Insutype: insutype,
- ClrType: clr_type,
- SetlOptins: clr_org,
- StmtBegndate: start_time,
- StmtEnddate: end_time,
- MedfeeSumamt: medfee_sumamt,
- FundPaySumamt: fund_pay_sumamt,
- AcctPay: acct_pay,
- FixmedinsSetlCnt: fixmedins_setl_cnt,
- }
- result, requestLog, err_msg := service.FJyb3201(baseParams, businessParams, fmt.Sprintf("%.4f", medfee_sumamt), fmt.Sprintf("%.4f", fund_pay_sumamt))
- fmt.Println(requestLog)
- fmt.Println(result)
- fmt.Println(err_msg)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else {
- if len(clr_type) == 0 {
- clr_type = "11"
- }
- api := "http://127.0.0.1:9532/" + "gdyb/ten?" +
- "insutype=" + insutype +
- "&clr_type=" + clr_type +
- "&setl_optins=" + clr_org +
- "&stmt_begndate=" + start_time +
- "&stm_enddate=" + end_time +
- "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
- "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
- "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) +
- "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt, 10) +
- "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
- "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey +
- "&org_name=" + miConfig.OrgName +
- "&doctor=" + user_name
-
- fmt.Println(api)
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body, ioErr := ioutil.ReadAll(resp.Body)
- fmt.Println(body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- if res.Infcode == 0 {
- if res.Output.Stmtinfo.StmtRslt == "0" {
- micc := &models.MedicalInsuranceCostCompare{
- StartTime: startime.Unix(),
- EndTime: endtime.Unix(),
- Insutype: insutype,
- CheckType: 1,
- Num: fixmedins_setl_cnt,
- Mtime: time.Now().Unix(),
- Status: 1,
- UserOrgId: adminUser.CurrentOrgId,
- CostTotal: medfee_sumamt,
- FuncTotal: fund_pay_sumamt,
- PsnPay: acct_pay,
- Creator: admin_user_id,
- Ctime: time.Now().Unix(),
- ClrType: clr_type,
- }
- err := service.CreateMedicalInsuranceCostCompareRecord(micc)
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "stmt_rslt": res.Output.Stmtinfo.StmtRslt,
- "stmt_rslt_dscr": res.Output.Stmtinfo.StmtRsltDscr,
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- }
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "stmt_rslt": res.Output.Stmtinfo.StmtRslt,
- "stmt_rslt_dscr": res.Output.Stmtinfo.StmtRsltDscr,
- })
- }
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "code": -10,
- "msg": res.ErrMsg,
- })
-
- }
- }
- }
-
- func (c *HisApiController) Check310() {
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
-
- var user_name string
- user_name = "高慧裕"
- api := "http://127.0.0.1:9532/" + "gdyb/ten?" +
- "insutype=" + "310" +
- "&clr_type=" + "" +
- "&setl_optins=" + "441202" +
- "&stmt_begndate=" + "2022-03-01" +
- "&stm_enddate=" + "2022-03-31" +
- "&medfee_sumamt=" + "194930.12" +
- "&fund_pay_sumamt=" + "188741.46" +
- "&acct_pay=" + "0" +
- "&fixmedins_setl_cnt=" + "452" +
- "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
- "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey +
- "&org_name=" + miConfig.OrgName +
- "&doctor=" + user_name
-
- fmt.Println(api)
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body, ioErr := ioutil.ReadAll(resp.Body)
- fmt.Println(body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
-
- var res ResultEight
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
- func (c *HisApiController) Check390() {
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
-
- var user_name string
- user_name = "高慧裕"
- api := "http://127.0.0.1:9532/" + "gdyb/ten?" +
- "insutype=" + "390" +
- "&clr_type=" + "" +
- "&setl_optins=" + "441202" +
- "&stmt_begndate=" + "2022-03-01" +
- "&stm_enddate=" + "2022-03-31" +
- "&medfee_sumamt=" + "1068448.89" +
- "&fund_pay_sumamt=" + "1014677.62" +
- "&acct_pay=" + "0" +
- "&fixmedins_setl_cnt=" + "1950" +
- "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
- "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey +
- "&org_name=" + miConfig.OrgName +
- "&doctor=" + user_name
-
- fmt.Println(api)
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body, ioErr := ioutil.ReadAll(resp.Body)
- fmt.Println(body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
-
- var res ResultEight
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
-
- //对账明细
- func (c *HisApiController) GetCheckDetailAccount() {
- start_time := c.GetString("start_time")
- end_time := c.GetString("end_time")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
- orders, _ := service.GetOrderByTimeTwo(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId)
-
- rand.Seed(time.Now().UnixNano())
-
- num := rand.Intn(30000)
- Mkdir(miConfig.OrgName)
- file := strconv.FormatInt(int64(num), 10)
- file_name := file + ".txt"
- zip_name := file + ".zip"
- zip_path := miConfig.OrgName + "/" + zip_name
- file_path := miConfig.OrgName + "/" + file_name
-
- decimal.DivisionPrecision = 2
- var medfee_sumamt float64
- var psn_cash_pay float64
- var fund_pay_sumamt float64
- fixmedins_setl_cnt := int64(len(orders))
-
- for _, item := range orders {
- medfee_sumamt = medfee_sumamt + item.MedfeeSumamt
- psn_cash_pay = psn_cash_pay + item.PsnCashPay
- fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt
- }
-
- f, err := os.Create(miConfig.OrgName + "/" + file_name)
- defer f.Close()
- if err != nil {
- fmt.Println(err.Error())
- } else {
- for _, item := range orders {
- var refd_setl_flag string
- if item.OrderStatus == 2 {
- refd_setl_flag = "0"
- var str string
- str = item.SetlId + " " +
- item.MdtrtId + " " +
- item.PsnNo + " " +
- fmt.Sprintf("%.4f", item.MedfeeSumamt) + " " +
- fmt.Sprintf("%.4f", item.FundPaySumamt) + " " +
- fmt.Sprintf("%.4f", item.AcctPay) + " " + refd_setl_flag + "\r\n"
- _, err = f.Write([]byte(str))
- }
- if item.OrderStatus == 3 {
-
- var str string
- str = item.SetlId + " " +
- item.MdtrtId + " " +
- item.PsnNo + " " +
- fmt.Sprintf("%.4f", item.MedfeeSumamt) + " " +
- fmt.Sprintf("%.4f", item.FundPaySumamt) + " " +
- fmt.Sprintf("%.4f", item.AcctPay) + " " + "1" + "\r\n"
- _, err = f.Write([]byte(str))
-
- var str2 string
- str2 = item.SetlId + " " +
- item.MdtrtId + " " +
- item.PsnNo + " " +
- fmt.Sprintf("%.4f", 0-item.MedfeeSumamt) + " " +
- fmt.Sprintf("%.4f", 0-item.FundPaySumamt) + " " +
- fmt.Sprintf("%.4f", 0-item.AcctPay) + " " + "1" + "\r\n"
- _, err = f.Write([]byte(str2))
- }
-
- }
-
- }
- Zip(file_path, zip_path)
- fmt.Println(ReadFile(zip_path))
- fmt.Println(string(ReadFile(zip_path)))
-
- if config.IsOpen == 1 {
-
- var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- if role.ID == 0 {
- user_name = "管理员"
- } else {
- user_name = role.UserName
- }
-
- baseParams := models.BaseParams{
- SecretKey: miConfig.SecretKey,
- FixmedinsCode: miConfig.Code,
- InsuplcAdmdvs: miConfig.InsuplcAdmdvs,
- MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs,
- OrgName: miConfig.OrgName,
- Doctor: user_name,
- }
-
- result := service.Gdyb9101(baseParams, file_name, ReadFile(file_path))
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
-
- var res ResultNine
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- fileNo := res.Output.FileQuryNo
- api := "http://127.0.0.1:9532/" + "gdyb/twelve?" +
- "file_qury_no=" + fileNo +
- "&setl_optins=" + "定点医保中心" +
- "&stmt_begndate=" + start_time +
- "&stm_enddate=" + end_time +
- "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) +
- "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) +
- "&cash_payamt=" + fmt.Sprintf("%.4f", psn_cash_pay) +
- "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt, 10) +
- "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs +
- "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs +
- "&secret_key=" + miConfig.SecretKey +
- "&org_name=" + miConfig.OrgName +
- "&doctor=" + user_name
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
-
- userJSONBytes, _ := json.Marshal(respJSON)
- var res ResultTen
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- service.Gdyb9102(baseParams, zip_name, fileNo)
-
- micc := &models.MedicalInsuranceCostCompare{
- StartTime: startime.Unix(),
- EndTime: endtime.Unix(),
- Insutype: "0",
- CheckType: 2,
- Num: fixmedins_setl_cnt,
- Mtime: time.Now().Unix(),
- Status: 1,
- UserOrgId: adminUser.CurrentOrgId,
- CostTotal: medfee_sumamt,
- FuncTotal: fund_pay_sumamt,
- PsnPay: psn_cash_pay,
- Creator: admin_user_id,
- Ctime: time.Now().Unix(),
- }
-
- service.CreateMedicalInsuranceCostCompareRecord(micc)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "明细对账成功",
- })
- }
-
- } else {
-
- }
- }
- }
-
- type CustomOrderInfo struct {
- Name string
- Spec string
- Unit string
- Count float64
- Price float64
- Total float64
- }
-
- func (c *HisApiController) GetSettleAccounts() {
- //id, _ := c.GetInt64("id")
- //record_time := c.GetString("record_time")
- order_id, _ := c.GetInt64("order_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- //timeLayout := "2006-01-02"
- //loc, _ := time.LoadLocation("Local")
- //
- //theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- //if err != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- // return
- //}
- //recordDateTime := theTime.Unix()
- adminUser := c.GetAdminUserInfo()
- order, _ := service.GetHisOrderByID(order_id)
- his, _ := service.GetHisPatientByNumber(order.MdtrtId)
- orderInfos, _ := service.GetHisOrderInfoByNumber(order.Number)
- orderInfos_two, _ := service.GetHisOrderInfoByNumberTwo(order.Number)
- orderInfos = append(orderInfos, orderInfos_two...)
- his_hospital, _ := service.GetInHospitalRecordByNumber(order.MdtrtId)
- //diagnosisConfig, _ := service.FindDiagnoseById(his.Diagnosis)
- var diagnosis_ids []string
- if his.ID > 0 {
- diagnosis_ids = strings.Split(his.Diagnosis, ",")
-
- } else {
- diagnosis_ids = strings.Split(his_hospital.Diagnosis, ",")
-
- }
- patient, _ := service.GetPatientByIDTwo(adminUser.CurrentOrgId, order.PatientId)
- var dia_config []*models.HisXtDiagnoseConfig
- var name string
- for _, item := range diagnosis_ids {
- id, _ := strconv.ParseInt(item, 10, 64)
- diagnosisConfig, _ := service.FindDiagnoseById(id)
- dia_config = append(dia_config, &diagnosisConfig)
- if len(name) == 0 {
- name = diagnosisConfig.ClassName
-
- } else {
- name = name + "," + diagnosisConfig.ClassName
- }
- }
-
- var bedCostTotal float64 = 0 //床位总费
- var bedCostSelfTotal float64 = 0 //床位自费
- var bedCostPartSelfTotal float64 = 0 //床位部分项目自费
-
- var operationCostTotal float64 = 0 //手术费
- var operationCostSelfTotal float64 = 0 //手术费
- var operationCostPartSelfTotal float64 = 0 //手术费
-
- var otherCostTotal float64 = 0 //其他费用
- var otherCostSelfTotal float64 = 0 //其他费用
- var otherCostPartSelfTotal float64 = 0 //其他费用
-
- var materialCostTotal float64 = 0 //材料费
- var materialCostSelfTotal float64 = 0 //材料费
- var materialCostPartSelfTotal float64 = 0 //材料费
-
- var westernMedicineCostTotal float64 = 0 //西药费
- var westernMedicineCostSelfTotal float64 = 0 //西药费
- var westernMedicineCostPartSelfTotal float64 = 0 //西药费
-
- var chineseTraditionalMedicineCostTotal float64 = 0 //中成药
- var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药
- var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药
-
- var checkCostTotal float64 = 0 //检查费
- var checkCostSelfTotal float64 = 0 //检查费
- var checkCostPartSelfTotal float64 = 0 //检查费
-
- var laboratoryCostTotal float64 = 0 //化验费
- var laboratoryCostSelfTotal float64 = 0 //化验费
- var laboratoryCostPartSelfTotal float64 = 0 //化验费
-
- var treatCostTotal float64 = 0 //治疗费用
- var treatCostSelfTotal float64 = 0 //治疗费用
- var treatCostPartSelfTotal float64 = 0 //治疗费用
-
- decimal.DivisionPrecision = 2
-
- for _, item := range orderInfos {
- if item.MedChrgitmType == "01" { //床位费
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
-
- if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 {
- if item.MedChrgitmType == "03" { //检查费
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
- } else {
-
- if item.MedChrgitmType == "03" { //检查费
- checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
-
- }
-
- if item.MedChrgitmType == "04" { //化验费
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
-
- if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" { //治疗费
-
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
-
- }
-
- if item.MedChrgitmType == "06" { //手术费
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
-
- if item.MedChrgitmType == "08" { //材料费
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
-
- if item.MedChrgitmType == "09" { //西药费
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
-
- if item.MedChrgitmType == "11" { //中成费
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
-
- if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" || item.MedChrgitmType == "02" { //其他费
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
- otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
- }
- }
-
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
-
- var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- if role.ID == 0 {
- user_name = "管理员"
- } else {
- user_name = role.UserName
- }
-
- baseParams := models.BaseParams{
- SecretKey: miConfig.SecretKey,
- FixmedinsCode: miConfig.Code,
- InsuplcAdmdvs: miConfig.InsuplcAdmdvs,
- MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs,
- OrgName: miConfig.OrgName,
- Doctor: user_name,
- RequestUrl: miConfig.Url,
- AccessKey: miConfig.AccessKey,
- }
-
- businessParams := models.BusinessParams{
- PsnNo: order.PsnNo,
- MdtrtId: order.MdtrtId,
- SetlId: order.SetlId,
- }
- var res ResultEleven
- var resEleven10265 ResultEleven10265
-
- if config.IsOpen == 1 {
- if miConfig.MdtrtareaAdmvs == "421300" {
-
- api := "http://192.168.124.4:9532/" + "hbyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId +
- "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
-
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId +
- "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
-
- } else {
- //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData))
- api = "http://192.168.5.251:9532/" + "jsyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId +
- "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo
-
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
- if err := json.Unmarshal([]byte(result), &resEleven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resEleven10265.InfRefmsgid
- res.Output = resEleven10265.Output
- res.ErrMsg = resEleven10265.ErrMsg
- res.Cainfo = resEleven10265.Cainfo
- res.WarnMsg = resEleven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resEleven10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else if miConfig.MdtrtareaAdmvs == "350500" {
- result, requestLog, _ := service.FJyb5203(baseParams, businessParams, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey)
- saveLog(result, requestLog, "5203", "结算单")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "360399" {
- result, requestLog := service.Jxyb5203(baseParams, businessParams)
- saveLog(result, requestLog, "5203", "结算单")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "430800" {
- result, requestLog := service.Hnyb5203(baseParams, businessParams)
- saveLog(result, requestLog, "5203", "结算单")
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- } else if miConfig.MdtrtareaAdmvs == "150499" {
-
- api := "http://172.16.13.254:9532/" + "nmyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId +
- "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
- if err := json.Unmarshal([]byte(result), &resEleven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- res.InfRefmsgid = resEleven10265.InfRefmsgid
- res.Output = resEleven10265.Output
- res.ErrMsg = resEleven10265.ErrMsg
- res.Cainfo = resEleven10265.Cainfo
- res.WarnMsg = resEleven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resEleven10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- } else {
- result := service.Gdyb5203(baseParams, businessParams)
- //service.Gdyb5204(baseParams, businessParams)
- //service.Gdyb5302(businessParams.PsnNo, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs, baseParams.SecretKey)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
-
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes, &resEleven10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resEleven10265.InfRefmsgid
- res.Output = resEleven10265.Output
- res.ErrMsg = resEleven10265.ErrMsg
- res.Cainfo = resEleven10265.Cainfo
- res.WarnMsg = resEleven10265.WarnMsg
- infocode, _ := strconv.ParseInt(resEleven10265.Infcode, 10, 64)
- res.Infcode = infocode
- } else {
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- }
- }
-
- printor_admin, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- charge_admin, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, order.Creator)
-
- patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, order.PatientId, order.SettleAccountsDate)
- adminRole_two, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId)
-
- doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, his_hospital.Doctor)
-
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
-
- var doctor_name string
- if roles.ID == 0 {
- doctor_name = "管理员"
- } else {
- doctor_name = roles.UserName
- }
-
- yiliao_leibie := ""
-
- switch order.MedType {
- case "11":
- yiliao_leibie = "普通门诊"
- break
- case "12":
- yiliao_leibie = "门诊挂号"
- break
- case "13":
- yiliao_leibie = "急诊"
- break
- case "14":
- yiliao_leibie = "门诊特殊病"
- break
- case "15":
- yiliao_leibie = "门诊统筹"
- break
- case "16":
- yiliao_leibie = "门诊慢性病"
- break
- case "21":
- yiliao_leibie = "普通住院"
- break
- }
- departments, _ := service.GetDepartMentDetail(patientPrescription.Departments)
-
- res.Output.Setlinfo.PsnCashPay = res.Output.Setlinfo.CashPayamt
-
- if res.Infcode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "diagnosis": name,
- "order_infos": orderInfos,
- "number": order.MdtrtId,
- "date": order.SettleAccountsDate,
- "charge_admin": charge_admin,
- "printor_admin": printor_admin,
- "info": res.Output.Setlinfo,
- "order": order,
- "bedCostTotal": bedCostTotal,
- "bedCostSelfTotal": bedCostSelfTotal,
- "bedCostPartSelfTotal": bedCostPartSelfTotal,
- "operationCostTotal": operationCostTotal,
- "operationCostSelfTotal": operationCostSelfTotal,
- "operationCostPartSelfTotal": operationCostPartSelfTotal,
- "otherCostTotal": otherCostTotal,
- "otherCostSelfTotal": otherCostSelfTotal,
- "otherCostPartSelfTotal": otherCostPartSelfTotal,
- "materialCostTotal": materialCostTotal,
- "materialCostSelfTotal": materialCostSelfTotal,
- "materialCostPartSelfTotal": materialCostPartSelfTotal,
- "westernMedicineCostTotal": westernMedicineCostTotal,
- "westernMedicineCostSelfTotal": westernMedicineCostSelfTotal,
- "westernMedicineCostPartSelfTotal": westernMedicineCostPartSelfTotal,
- "chineseTraditionalMedicineCostTotal": chineseTraditionalMedicineCostTotal,
- "chineseTraditionalMedicineCostSelfTotal": chineseTraditionalMedicineCostSelfTotal,
- "chineseTraditionalMedicineCostPartSelfTotal": chineseTraditionalMedicineCostPartSelfTotal,
- "checkCostTotal": checkCostTotal,
- "checkCostSelfTotal": checkCostSelfTotal,
- "checkCostPartSelfTotal": checkCostPartSelfTotal,
- "laboratoryCostTotal": laboratoryCostTotal,
- "laboratoryCostSelfTotal": laboratoryCostSelfTotal,
- "laboratoryCostPartSelfTotal": laboratoryCostPartSelfTotal,
- "treatCostTotal": treatCostTotal,
- "treatCostSelfTotal": treatCostSelfTotal,
- "treatCostPartSelfTotal": treatCostPartSelfTotal,
- "doctor_info": doctor_info,
- "doctor_code": adminRole_two.DoctorCode,
- "doctor_name": doctor_name,
- "health_card_no": order.PsnNo,
- "department": departments.Name,
- "yiliao_leibie": yiliao_leibie,
- "after_money": order.AccountPrice,
- "patient": patient,
- "org_name": miConfig.OrgName,
- "org_code": miConfig.Code,
- "order_number": order.Number,
- "his_hospital": his_hospital,
- "his": his,
- "dia_config": dia_config,
-
- //"check_order_info": cus_slice,
- })
- }
- }
-
- }
-
- func (c *HisApiController) CheckTreatment() {
- patient_id, _ := c.GetInt64("patient_id")
- id_card_no := c.GetString("id_card_no")
- insutype := c.GetString("insutype")
- med_type := c.GetString("med_type")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- adminUser := c.GetAdminUserInfo()
- patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id)
-
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
-
- if miConfig.MdtrtareaAdmvs == "421300" {
- var res ResultTwo
- api := "http://192.168.124.4:9532/" + "hbyb/1101?cert_no=" + "" +
- "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(2, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(2, 10)
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
-
- api := "http://192.168.124.4:9532/" + "hbyb/2001?cert_no=" + "" +
- "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&psn_no=" + res.Output.Baseinfo.PsnNo + "&insutype=" + insutype + "&med_type=" + med_type
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var res Result2001
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result2, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result2), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": res.Output.Trtinfo,
- })
- }
-
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return
- }
-
- } else {
-
- result := service.Gdyb1101A(id_card_no, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, patient.Name)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- var res10265 ResultTwo10265
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes, &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
- } else {
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, adminUser.AdminUser.Id)
- if role.ID == 0 {
- user_name = "xxx"
- } else {
- user_name = role.UserName
- }
-
- baseParams := models.BaseParams{
- SecretKey: miConfig.SecretKey,
- FixmedinsCode: miConfig.Code,
- InsuplcAdmdvs: miConfig.InsuplcAdmdvs,
- MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs,
- OrgName: miConfig.OrgName,
- Doctor: user_name,
- }
-
- if config.IsOpen == 1 {
- if miConfig.Code == "H15049901371" {
- if med_type == "14" {
- if insutype == "390" {
- med_type = "9933"
- } else if insutype == "310" {
- med_type = "990502"
- }
- } else if med_type == "11" {
- med_type = "11"
- }
- }
- result := service.Gdyb2001(baseParams, res.Output.Baseinfo.PsnNo, insutype, med_type)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- var res Result2001
- var res10265 Result2001Org10265
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- } else {
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- if res.Infcode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": res.Output.Trtinfo,
- })
- }
- }
- }
- }
-
- //func (c *HisApiController) PutRecord() {
- // id, _ := c.GetInt64("id")
- // record_time := c.GetString("record_time")
- // timeLayout := "2006-01-02"
- // loc, _ := time.LoadLocation("Local")
- // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- // if err != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- // return
- // }
- // recordDateTime := theTime.Unix()
- //
- // adminInfo := c.GetAdminUserInfo()
- // patient, _ := service.GetPatientByID(adminInfo.CurrentOrgId, id)
- // patientPrescription, _ := service.FindPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime)
- //
- // miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId)
- //
- // fmt.Println(miConfig.SecretKey)
- //
- // if patient == nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist)
- // return
- // }
- // if len(patient.IdCardNo) == 0 {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeIDCartNo)
- // return
- // }
- // config, _ := service.GetMedicalInsuranceConfig(adminInfo.CurrentOrgId)
- // if config.IsOpen == 1 {
- // api := "http://127.0.0.1:9532/" + "gdyb/one?cert_no=" + patient.IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + patientPrescription.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- // resp, requestErr := http.Get(api)
- // if requestErr != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // defer resp.Body.Close()
- // body, ioErr := ioutil.ReadAll(resp.Body)
- // if ioErr != nil {
- // utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // var respJSON map[string]interface{}
- //
- // if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- // utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- //
- // userJSON := respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- // userJSONBytes, _ := json.Marshal(userJSON)
- // var res ResultTwo
- // if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // Iinfos, _ := json.Marshal(res.Output.Iinfo)
- // Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- // infoStr := string(Iinfos)
- // idetinfoStr := string(Idetinfos)
- //
- // if res.Infcode == 0 {
- // his := models.VMHisPatient{
- // Status: 1,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // PsnNo: res.Output.Baseinfo.PsnNo,
- // PsnCertType: res.Output.Baseinfo.PsnCertType,
- // Certno: res.Output.Baseinfo.Certno,
- // PsnName: res.Output.Baseinfo.PsnName,
- // Gend: res.Output.Baseinfo.Gend,
- // Naty: res.Output.Baseinfo.Naty,
- // Brdy: res.Output.Baseinfo.Brdy,
- // Age: res.Output.Baseinfo.Age,
- // Iinfo: infoStr,
- // Idetinfo: idetinfoStr,
- // PatientId: patient.ID,
- // RecordDate: theTime.Unix(),
- // UserOrgId: adminInfo.CurrentOrgId,
- // AdminUserId: adminInfo.AdminUser.Id,
- // IsReturn: 1,
- // }
- //
- // //doctor_id := strconv.FormatInt(patientPrescription.DoctorId, 10)
- // //result := service.Gdyb2503(his.PsnNo, res.Output.Iinfo[0].Insutype, miConfig.OrgName, patientPrescription.Doctor, miConfig.Code, doctor_id, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "重症尿毒症透析(血透)", "M07801")
- // //result2 := service.Gdyb5301(his.PsnNo, res.Output.Iinfo[0].Insutype, miConfig.OrgName, patientPrescription.Doctor, miConfig.Code, doctor_id, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "重症尿毒症透析(血透)", "M07801")
- //
- // //var dat map[string]interface{}
- // //if err := json.Unmarshal([]byte(result), &dat); err == nil {
- // // fmt.Println(dat)
- // //} else {
- // // fmt.Println(err)
- // //}
- //
- // var dat2 map[string]interface{}
- // if err := json.Unmarshal([]byte(result2), &dat2); err == nil {
- // fmt.Println(dat2)
- // } else {
- // fmt.Println(err)
- // }
- //
- // } else {
- // adminUser := c.GetAdminUserInfo()
- // errlog := &models.HisOrderError{
- // UserOrgId: adminUser.CurrentOrgId,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // ErrMsg: res.ErrMsg,
- // Status: 1,
- // PatientId: id,
- // RecordTime: recordDateTime,
- // Stage: 1,
- // }
- // service.CreateErrMsgLog(errlog)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeGdybOneException)
- // return
- // }
- // }
- //
- //}
-
- //func (c *HisApiController) GetUploadDiag() {
- // id, _ := c.GetInt64("id")
- // record_time := c.GetString("record_time")
- //
- // diagnosis_id, _ := c.GetInt64("diagnosis")
- // sick_type, _ := c.GetInt64("sick_type")
- // reg_type, _ := c.GetInt64("reg_type")
- //
- // timeLayout := "2006-01-02"
- // loc, _ := time.LoadLocation("Local")
- // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc)
- // if err != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- // return
- // }
- //
- // var patientPrescription models.HisPrescriptionInfo
- // recordDateTime := theTime.Unix()
- // adminInfo := c.GetAdminUserInfo()
- // patientPrescription, _ = service.FindPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime)
- //
- // if patientPrescription.ID == 0 {
- // patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime)
- // }
- //
- // miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId)
- // diagnosisConfig, _ := service.FindDiagnoseById(diagnosis_id)
- // his, _ := service.GetVMHisPatientInfo(adminInfo.CurrentOrgId, id, recordDateTime)
- // sickConfig, _ := service.FindSickById(sick_type)
- // department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
- //
- // api2 := "http://127.0.0.1:9532/" + "gdyb/four?psn_no=" + his.PsnNo +
- // "&mdtrt_id=" + his.Number + "&doctor=" + patientPrescription.Doctor + "&department=" + department.Name +
- // "&diag=" + diagnosisConfig.ClassName + "&org_name=" + miConfig.OrgName + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&doctor_id=" + strconv.FormatInt(patientPrescription.DoctorId, 10) + "&fixmedins_code=" + miConfig.Code + "&diag_code=" + diagnosisConfig.CountryCode +
- // "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&sick_code=" + sickConfig.ContentCode + "&sick_name=" + sickConfig.ClassName
- // resp2, requestErr2 := http.Get(api2)
- // if requestErr2 != nil {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // body2, ioErr2 := ioutil.ReadAll(resp2.Body)
- // if ioErr2 != nil {
- // utils.ErrorLog("接口返回数据读取失败: %v", ioErr2)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // var respJSON2 map[string]interface{}
- // if err := json.Unmarshal([]byte(string(body2)), &respJSON2); err != nil {
- // utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // respJSON2 = respJSON2["data"].(map[string]interface{})["pre"].(map[string]interface{})
- // userJSONBytes2, _ := json.Marshal(respJSON2)
- //
- // var res2 ResultSix
- // if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // if res2.Infcode != 0 {
- // adminUser := c.GetAdminUserInfo()
- // errlog := &models.HisOrderError{
- // UserOrgId: adminUser.CurrentOrgId,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // ErrMsg: res2.ErrMsg,
- // Status: 1,
- // PatientId: id,
- // RecordTime: recordDateTime,
- // Stage: 3,
- // }
- // service.CreateErrMsgLog(errlog)
- //
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterThreeException)
- // return
- // }
- //
- // c.ServeSuccessJSON(map[string]interface{}{
- // "msg": "上传成功",
- // })
- //
- //}
-
- type QueryResult struct {
- ID int64
- Name string
- Code string
- List_type_code string
- }
-
- func (c *HisApiController) GetCheckCode() {
- ids_str := c.GetString("ids")
- record_type, _ := c.GetInt64("record_type") //1.药品 2.耗材 3.项目
-
- ids_arr := strings.Split(ids_str, ",")
- var queryResult []QueryResult
- ids := make([]int64, 0)
- for _, item := range ids_arr {
- id, _ := strconv.ParseInt(item, 10, 64)
- ids = append(ids, id)
- }
- if record_type == 1 {
- drugs, _ := service.GetBatchDrugList(ids)
- for _, item := range drugs {
- result := QueryResult{
- ID: item.ID,
- Name: item.DrugName,
- Code: item.MedicalInsuranceNumber,
- List_type_code: "101",
- }
- queryResult = append(queryResult, result)
- }
-
- } else if record_type == 2 {
- goods, _ := service.GetBatchGoodInformationList(ids)
-
- for _, item := range goods {
- result := QueryResult{
- ID: item.ID,
- Name: item.GoodName,
- Code: item.MedicalInsuranceNumber,
- List_type_code: "301",
- }
- queryResult = append(queryResult, result)
- }
- } else if record_type == 3 {
- projects, _ := service.GetBathchMyPorjecgList(ids)
- for _, item := range projects {
- result := QueryResult{
- ID: item.ID,
- Name: item.ProjectName,
- Code: item.MedicalCode,
- List_type_code: "201",
- }
- queryResult = append(queryResult, result)
- }
- }
-
- admin_user_id, _ := c.GetInt64("admin_user_id")
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
-
- var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- if role.ID == 0 {
- user_name = "xxx"
- } else {
- user_name = role.UserName
- }
-
- baseParams := &models.BaseParams{
- SecretKey: miConfig.SecretKey,
- FixmedinsCode: miConfig.Code,
- InsuplcAdmdvs: miConfig.InsuplcAdmdvs,
- MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs,
- OrgName: miConfig.OrgName,
- Doctor: user_name,
- }
-
- if config.IsOpen == 1 {
- for _, item := range queryResult {
- var result string
- if record_type == 1 {
- result = service.Gdyb3301(baseParams, item.Name, item.Code, item.List_type_code, "2021-04-26", "", item.List_type_code)
- } else if record_type == 2 {
- result = service.Gdyb3301(baseParams, item.Name, item.Code, item.List_type_code, "2021-04-26", "", item.List_type_code)
- } else if record_type == 3 {
- result = service.Gdyb3301(baseParams, item.Name, item.Code, item.List_type_code, "2021-04-26", "", item.List_type_code)
- }
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultSix
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res.Infcode == 0 {
- if record_type == 1 {
- service.UpdateBaseDrugById(item.ID)
- } else if record_type == 2 {
- service.UpdateGoodInformaitonByDetail(item.ID)
- } else if record_type == 3 {
- service.UpdateProjectById(item.ID)
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": 0,
- "msg": "目录对照成功",
- })
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
-
- }
- }
- }
- }
- func (c *HisApiController) UnCheckCode() {
- ids_str := c.GetString("ids")
- record_type, _ := c.GetInt64("record_type") //1.药品 2.耗材 3.项目
- admin_user_id, _ := c.GetInt64("admin_user_id")
- ids_arr := strings.Split(ids_str, ",")
- var queryResult []QueryResult
- ids := make([]int64, 0)
- for _, item := range ids_arr {
- id, _ := strconv.ParseInt(item, 10, 64)
- ids = append(ids, id)
- }
- if record_type == 1 {
- drugs, _ := service.GetBatchDrugList(ids)
- for _, item := range drugs {
- result := QueryResult{
- ID: item.ID,
- Name: item.DrugName,
- Code: item.MedicalInsuranceNumber,
- List_type_code: "101",
- }
- queryResult = append(queryResult, result)
- }
-
- } else if record_type == 2 {
- goods, _ := service.GetBatchGoodInformationList(ids)
-
- for _, item := range goods {
- result := QueryResult{
- ID: item.ID,
- Name: item.GoodName,
- Code: item.MedicalInsuranceNumber,
- List_type_code: "301",
- }
- queryResult = append(queryResult, result)
- }
- } else if record_type == 3 {
- projects, _ := service.GetBathchMyPorjecgList(ids)
- for _, item := range projects {
- result := QueryResult{
- ID: item.ID,
- Name: item.ProjectName,
- Code: item.MedicalCode,
- List_type_code: "201",
- }
- queryResult = append(queryResult, result)
- }
- }
-
- adminUser := c.GetAdminUserInfo()
-
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
-
- var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- if role.ID == 0 {
- user_name = "xxx"
- } else {
- user_name = role.UserName
- }
-
- baseParams := &models.BaseParams{
- SecretKey: miConfig.SecretKey,
- FixmedinsCode: miConfig.Code,
- InsuplcAdmdvs: miConfig.InsuplcAdmdvs,
- MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs,
- OrgName: miConfig.OrgName,
- Doctor: user_name,
- }
-
- if config.IsOpen == 1 {
- for _, item := range queryResult {
- var result string
- if record_type == 1 {
- result = service.Gdyb3302(baseParams, item.Name, item.Code, item.List_type_code)
- } else if record_type == 2 {
- result = service.Gdyb3302(baseParams, item.Name, item.Code, item.List_type_code)
- } else if record_type == 3 {
- result = service.Gdyb3302(baseParams, item.Name, item.Code, item.List_type_code)
- }
- var dat2 map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat2); err == nil {
- fmt.Println(dat2)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat2)
- var res ResultSix
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res.Infcode == 0 {
- if record_type == 1 {
- service.UpdateDrugByIdDetail(item.ID)
- } else if record_type == 2 {
- service.UpdateGoodInfoById(item.ID)
- } else if record_type == 3 {
- service.UpdateMyProjectById(item.ID)
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": 0,
- "msg": "撤销目录对照成功",
- })
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- }
- }
- }
- }
- func (c *HisApiController) GetPatientInfo() {
- id_card_no := c.GetString("id_card_no")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- patient, _ := service.GetPatientByIDCard(id_card_no, c.GetAdminUserInfo().CurrentOrgId)
-
- if patient.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist)
- return
- }
-
- role, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(c.GetAdminUserInfo().CurrentOrgId)
- if config.IsOpen == 1 {
-
- result := service.Gdyb1101A(id_card_no, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, patient.Name)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultTwo
- var res10265 ResultTwo10265
-
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes, &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- } else {
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- //if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- //}
-
- if res.Infcode != 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": 0,
- "info": res,
- })
- }
-
- }
- }
- func (c *HisApiController) PsnPutOnRecord() {
- record_type, _ := c.GetInt64("type")
- patient_id, _ := c.GetInt64("patient_id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- start_time := c.GetString("start_time")
- end_time := c.GetString("end_time")
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
-
- var patients []*models.Patients
- if record_type == 1 { //全部备案
-
- patient, _ := service.GetAllPatient(adminUser.CurrentOrgId)
- patients = append(patients, patient...)
-
- } else { //单个备案
- patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id)
- patients = append(patients, patient)
-
- }
-
- var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- if role.ID == 0 {
- user_name = "xxx"
- } else {
- user_name = role.UserName
- }
-
- if config.IsOpen == 1 {
- for _, item := range patients {
- api := "http://127.0.0.1:9532/" + "gdyb/one?cert_no=" + item.IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
-
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- userJSON := respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(userJSON)
- var res ResultTwo
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- if res.Infcode == 0 {
- result := service.Gdyb2505(res.Output.Baseinfo.PsnNo, user_name, miConfig.OrgName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, start_time, end_time)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
-
- var res2 ResultThirteen
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res2.Infcode == 0 {
- psnResult := &models.GdybPsnRecord{
- UserOrgId: adminUser.CurrentOrgId,
- PatientId: item.ID,
- PsnNo: res.Output.Baseinfo.PsnNo,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- Status: 1,
- IsCancel: 1,
- TrtDclaDetlSn: res2.Output.Result.TrtDclaDetlSn,
- }
- service.CreatePsnRecord(psnResult)
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res2.ErrMsg,
- })
- return
- }
-
- }
-
- }
- }
-
- }
- func (c *HisApiController) PsnUnPutOnRecord() {
- id, _ := c.GetInt64("id")
- //record_type, _ := c.GetInt64("type")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
-
- var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- if role.ID == 0 {
- user_name = "xxx"
- } else {
- user_name = role.UserName
- }
-
- psn_record, _ := service.GetPsnRecordById(id)
- if psn_record.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorPsnRecordNoExistWrong)
- return
- }
- if config.IsOpen == 1 {
- result := service.Gdyb2506(psn_record.PsnNo, user_name, miConfig.OrgName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, psn_record.TrtDclaDetlSn)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultFourteen
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if res.Infcode == 0 {
- psn_record.IsCancel = 2
- service.CreatePsnRecord(&psn_record)
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
-
- }
- func (c *HisApiController) PsnPutNCDSOnRecord() {
- patient_id, _ := c.GetInt64("patient_id")
- insutype_two := c.GetString("insutype")
- psn_no := c.GetString("psn_no")
- doctor_id, _ := c.GetInt64("doctor_id")
- sick_id, _ := c.GetInt64("sick_id")
- department_id, _ := c.GetInt64("department_id")
- start_time := c.GetString("start_time")
- end_time := c.GetString("end_time")
- check_time := c.GetString("check_time")
-
- adminUser := c.GetAdminUserInfo()
- patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- sick, _ := service.FindSickById(sick_id)
- doctor, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, doctor_id)
-
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, doctor_id)
- var res ResultTwo
- var res10265 ResultTwo10265
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- psn_info, _ := service.GetPsnByPatientId(patient.ID)
- api := "http://192.168.2.110:9532/" + "hbyb/1101?cert_no=" + "" +
- "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(3, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(1, 10) + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- fmt.Println("log")
- fmt.Println(string(result))
-
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- } else {
- result, _ := service.Gdyb1101(patient.IdCardNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, "", "0", patient.Name)
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
- } else {
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- }
-
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- infoStr := string(Iinfos)
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insuplc_admdvs string
- var insutype string
- var is390 int = 0
- var is310 int = 0
- var insutypes []*ResultFive
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 2 {
- insutype = insutype_two
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
-
- insutype = insutype_two
-
- fmt.Println(insutype)
- for _, item := range rf {
- fmt.Println(item.Insutype)
- fmt.Println(insutype)
- if item.Insutype == insutype {
- fmt.Println(item.Insutype)
- fmt.Println(insutype)
- insuplc_admdvs = item.InsuplcAdmdvs
- }
- }
- fmt.Println(insuplc_admdvs)
- var res2 ResultThirteen
- var res10265_2 ResultThirteen10265
- if config.IsOpen == 1 {
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
-
- } else {
- result := service.Gdyb2503(psn_no, insutype, miConfig.OrgName, doctor.UserName, miConfig.Code, strconv.FormatInt(doctor.ID, 10), insuplc_admdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sick.ClassName, sick.ContentCode, start_time, end_time, check_time)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes, &res10265_2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res2.ErrMsg = res10265_2.ErrMsg
- infocode, _ := strconv.ParseInt(res10265_2.Infcode, 10, 64)
- res2.Infcode = infocode
- res2.Output = res10265_2.Output
- res2.InfRefmsgid = res10265_2.InfRefmsgid
- } else {
- if err := json.Unmarshal(userJSONBytes, &res2); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- }
-
- if res2.Infcode == 0 {
- psnResult := &models.GdybPsnNcdsRecord{
- UserOrgId: adminUser.CurrentOrgId,
- PatientId: patient.ID,
- PsnNo: psn_no,
- DoctorId: doctor.AdminUserId,
- DepartmentId: department_id,
- SickType: sick_id,
- Insutype: insutype,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- Status: 1,
- IsCancel: 1,
- TrtDclaDetlSn: res2.Output.Result.TrtDclaDetlSn,
- }
- service.CreatePsnNCDSRecord(psnResult)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": 0,
- "msg": "备案成功",
- "result": psnResult,
- })
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res2.ErrMsg,
- })
- return
- }
- }
- }
- func (c *HisApiController) PsnPutUnNCDSOnRecord() {
- id, _ := c.GetInt64("id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
-
- //config, _ := service.Ge(adminUser.CurrentOrgId)
- patient, _ := service.GetPatientByID(c.GetAdminUserInfo().CurrentOrgId, id)
- //role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- //var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- //if role.ID == 0 {
- // user_name = "xxx"
- //} else {
- // user_name = role.UserName
- //}
- psn_record, _ := service.GetPsnNCDSRecordById(id)
- if psn_record.ID == 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorPsnRecordNoExistWrong)
- return
- }
- result, _ := service.Gdyb1101(patient.IdCardNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, "", "0", patient.Name)
- var res ResultTwo
- var res10265 ResultTwo10265
-
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- } else {
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- infoStr := string(Iinfos)
- var rf []*ResultFive
- json.Unmarshal([]byte(infoStr), &rf)
-
- var insuplc_admdvs string
- var insutype string
- var is390 int = 0
- var is310 int = 0
- var insutypes []*ResultFive
-
- for _, item := range rf {
- if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") {
- insutypes = append(insutypes, item)
- }
- }
-
- if len(insutypes) == 1 {
- insutype = insutypes[0].Insutype
- //insuplc_admdvs = insutypes[0].InsuplcAdmdvs
- } else {
- for _, i := range insutypes {
- if i.Insutype == "390" {
- is390 = 1
- }
-
- if i.Insutype == "310" {
- is310 = 1
- }
- }
- }
- if is390 == 1 {
- insutype = "390"
- }
-
- if is310 == 1 {
- insutype = "310"
- }
-
- if len(insutypes) == 0 {
- insutype = "310"
- }
- insutype = psn_record.Insutype
-
- for _, item := range rf {
- if item.Insutype == insutype {
- insuplc_admdvs = item.InsuplcAdmdvs
- }
- }
-
- if config.IsOpen == 1 {
- result := service.Gdyb2504(psn_record.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, insuplc_admdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, psn_record.TrtDclaDetlSn)
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
-
- userJSONBytes, _ := json.Marshal(dat)
- var res ResultFourteen
- var res10265 ResultFourteen10265
-
- if miConfig.Code == "H15049901371" {
- if err := json.Unmarshal(userJSONBytes, &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
-
- } else {
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- //if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- //}
- if res.Infcode == 0 {
- psn_record.IsCancel = 2
- service.CreatePsnNCDSRecord(&psn_record)
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": 0,
- "msg": "撤销备案成功",
- })
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
-
- }
-
- func (c *HisApiController) TestTest() {
- patient, _ := service.GetHisPatientInfo(4, 456, 1619712000)
- fmt.Println(patient.Iinfo)
-
- }
-
- type CustomData struct {
- MsgId string
- PsnNo string
- Info string
- }
-
- func (c *HisApiController) ReversalData() {
- var customData []*CustomData
-
- custom := &CustomData{
- MsgId: "H44022900158202103301714472004",
- PsnNo: "44020000001101329945",
- Info: "2207",
- }
- customData = append(customData, custom)
-
- custom1 := &CustomData{
- MsgId: "H4402290015820210330172057803",
- PsnNo: "44020000001101161813",
- Info: "2207",
- }
- customData = append(customData, custom1)
- custom2 := &CustomData{
- MsgId: "H44022900158202103301705198813",
- PsnNo: "44190000133097375417",
- Info: "2207",
- }
- customData = append(customData, custom2)
- custom3 := &CustomData{
- MsgId: "H44022900158202103301715524756",
- PsnNo: "44020000001100187221",
- Info: "2207",
- }
- customData = append(customData, custom3)
- custom4 := &CustomData{
- MsgId: "H44022900158202103301730376224",
- PsnNo: "44020000001101959155",
- Info: "2207",
- }
- customData = append(customData, custom4)
- custom5 := &CustomData{
- MsgId: "H44022900158202103301748008725",
- PsnNo: "44020000001104246641",
- Info: "2207",
- }
- customData = append(customData, custom5)
- custom6 := &CustomData{
- MsgId: "H44022900158202103301718096755",
- PsnNo: "44020000001102211860",
- Info: "2207",
- }
- customData = append(customData, custom6)
- custom7 := &CustomData{
- MsgId: "H44022900158202103301736551640",
- PsnNo: "44020000001102687718",
- Info: "2207",
- }
-
- customData = append(customData, custom7)
-
- custom8 := &CustomData{
- MsgId: "H44022900158202103301743097676",
- PsnNo: "44020000001102127785",
- Info: "2207",
- }
- customData = append(customData, custom8)
- custom9 := &CustomData{
- MsgId: "H44022900158202103301712304203",
- PsnNo: "44020000001101518097",
- Info: "2207",
- }
- customData = append(customData, custom9)
- custom10 := &CustomData{
- MsgId: "H44022900158202103301738448785",
- PsnNo: "44020000001100500813",
- Info: "2207",
- }
- customData = append(customData, custom10)
-
- custom11 := &CustomData{
- MsgId: "H44022900158202103301732455843",
- PsnNo: "44020000001102690557",
- Info: "2207",
- }
-
- customData = append(customData, custom11)
-
- custom12 := &CustomData{
- MsgId: "H44022900158202103301745421708",
- PsnNo: "44020000001102211928",
- Info: "2207",
- }
- customData = append(customData, custom12)
-
- custom1212 := &CustomData{
- MsgId: "H440229001582021033017351627",
- PsnNo: "44020000001102481733",
- Info: "2207",
- }
- customData = append(customData, custom1212)
-
- custom13 := &CustomData{
- MsgId: "H44022900158202103301740327951",
- PsnNo: "44020000001103174866",
- Info: "2207",
- }
- customData = append(customData, custom13)
- custom14 := &CustomData{
- MsgId: "H4402290015820210330174922668",
- PsnNo: "44020000001102927272",
- Info: "2207",
- }
- customData = append(customData, custom14)
- custom15 := &CustomData{
- MsgId: "H44022900158202103301752362273",
- PsnNo: "44020000001102942890",
- Info: "2207",
- }
- customData = append(customData, custom15)
-
- custom16 := &CustomData{
- MsgId: "H44022900158202103301751082917",
- PsnNo: "44020000001101662162",
- Info: "2207",
- }
- customData = append(customData, custom16)
-
- custom17 := &CustomData{
- MsgId: "H44022900158202103301754147728",
- PsnNo: "44020000000229014511",
- Info: "2207",
- }
- customData = append(customData, custom17)
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
-
- for _, item := range customData {
- result := service.Gdyb2601(item.PsnNo, item.MsgId, item.Info, miConfig.OrgName, "张俊杰", miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey)
- fmt.Println(result)
- }
- }
-
- //func (c *HisApiController) GetAllopatry() {
- // year := c.GetString("year")
- // month := c.GetString("month")
- // admin_user_id, _ := c.GetInt64("admin_user_id")
- // adminUser := c.GetAdminUserInfo()
- // miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- // roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- // result, _ := service.Gdyb9001(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1669)
- //
- // var dat map[string]interface{}
- // if err := json.Unmarshal([]byte(result), &dat); err == nil {
- // fmt.Println(dat)
- // } else {
- // fmt.Println(err)
- // }
- // userJSONBytes, _ := json.Marshal(dat)
- // var res models.Result9001
- // if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- //
- // result2, _ := service.Gdyb3260(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res.Output.Signinoutb.SignNo)
- // var dat2 map[string]interface{}
- // if err := json.Unmarshal([]byte(result2), &dat2); err == nil {
- // fmt.Println(dat)
- // } else {
- // fmt.Println(err)
- // }
- // userJSONBytes2, _ := json.Marshal(dat2)
- // var res2 models.Result3260
- // if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- // if res2.Infcode == 0 {
- // c.ServeSuccessJSON(map[string]interface{}{
- // "list": res2.Output.Data,
- // })
- // return
- // } else {
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- //
- //}
-
- //func (c *HisApiController) ComfirmAllopatry() {
- // year := c.GetString("year")
- // month := c.GetString("month")
- // admin_user_id, _ := c.GetInt64("admin_user_id")
- // adminUser := c.GetAdminUserInfo()
- // miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- // roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- // result, _ := service.Gdyb9001(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1669)
- // var dat map[string]interface{}
- // if err := json.Unmarshal([]byte(result), &dat); err == nil {
- // fmt.Println(dat)
- // } else {
- // fmt.Println(err)
- // }
- // userJSONBytes, _ := json.Marshal(dat)
- // var res models.Result9001
- // if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- //
- // result2, _ := service.Gdyb3260(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res.Output.Signinoutb.SignNo)
- // var dat2 map[string]interface{}
- // if err := json.Unmarshal([]byte(result2), &dat2); err == nil {
- // fmt.Println(dat)
- // } else {
- // fmt.Println(err)
- // }
- // userJSONBytes2, _ := json.Marshal(dat2)
- // var res2 models.Result3260
- // if err := json.Unmarshal(userJSONBytes2, &res2); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- //
- // if res2.Infcode == 0 {
- // result, _, msgId := service.Gdyb3261(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res2)
- // var dat map[string]interface{}
- // if err := json.Unmarshal([]byte(result), &dat); err == nil {
- // fmt.Println(dat)
- // } else {
- // fmt.Println(err)
- // }
- // userJSONBytes, _ := json.Marshal(dat)
- // var res3 models.Result3261
- // if err := json.Unmarshal(userJSONBytes, &res3); err != nil {
- // utils.ErrorLog("解析失败:%v", err)
- // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- // return
- // }
- //
- // if res3.Infcode == 0 {
- // record := &models.HisYidiClearRecord{
- // UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- // Ctime: time.Now().Unix(),
- // Mtime: time.Now().Unix(),
- // Status: 1,
- // MsgId: msgId,
- // }
- // service.SaveClearRecord(record)
- // c.ServeSuccessJSON(map[string]interface{}{
- // "msg": "提取成功",
- // })
- // }
- // }
- //}
-
- func (c *HisApiController) RefundAllopatry() {
- year := c.GetString("year")
- month := c.GetString("month")
- id, _ := c.GetInt64("id")
- admin_user_id, _ := c.GetInt64("admin_user_id")
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- record, _ := service.GetClearRecordById(id)
- result, _ := service.Gdyb3262(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, record.MsgId)
-
- var dat map[string]interface{}
- if err := json.Unmarshal([]byte(result), &dat); err == nil {
- fmt.Println(dat)
- } else {
- fmt.Println(err)
- }
- userJSONBytes, _ := json.Marshal(dat)
- var empty ResultFourteen
- if err := json.Unmarshal(userJSONBytes, &empty); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- if empty.Infcode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "撤销成功",
- })
- return
- }
- }
-
- func (c *HisApiController) ReversalOtherData() {
- var customData []*CustomData
-
- custom := &CustomData{
- MsgId: "H44022900158202103301714472004",
- PsnNo: "44020000001101329945",
- Info: "2208",
- }
- customData = append(customData, custom)
-
- custom1 := &CustomData{
- MsgId: "H4402290015820210330172057803",
- PsnNo: "44020000001101161813",
- Info: "2208",
- }
- customData = append(customData, custom1)
- custom2 := &CustomData{
- MsgId: "H44022900158202103301705198813",
- PsnNo: "44190000133097375417",
- Info: "2208",
- }
- customData = append(customData, custom2)
- custom3 := &CustomData{
- MsgId: "H44022900158202103301715524756",
- PsnNo: "44020000001100187221",
- Info: "2208",
- }
- customData = append(customData, custom3)
- custom4 := &CustomData{
- MsgId: "H44022900158202103301730376224",
- PsnNo: "44020000001101959155",
- Info: "2208",
- }
- customData = append(customData, custom4)
- custom5 := &CustomData{
- MsgId: "H44022900158202103301748008725",
- PsnNo: "44020000001104246641",
- Info: "2208",
- }
- customData = append(customData, custom5)
- custom6 := &CustomData{
- MsgId: "H44022900158202103301718096755",
- PsnNo: "44020000001102211860",
- Info: "2208",
- }
- customData = append(customData, custom6)
- custom7 := &CustomData{
- MsgId: "H44022900158202103301736551640",
- PsnNo: "44020000001102687718",
- Info: "2208",
- }
-
- customData = append(customData, custom7)
-
- custom8 := &CustomData{
- MsgId: "H44022900158202103301743097676",
- PsnNo: "44020000001102127785",
- Info: "2208",
- }
- customData = append(customData, custom8)
- custom9 := &CustomData{
- MsgId: "H44022900158202103301712304203",
- PsnNo: "44020000001101518097",
- Info: "2208",
- }
- customData = append(customData, custom9)
- custom10 := &CustomData{
- MsgId: "H44022900158202103301738448785",
- PsnNo: "44020000001100500813",
- Info: "2208",
- }
- customData = append(customData, custom10)
-
- custom11 := &CustomData{
- MsgId: "H44022900158202103301732455843",
- PsnNo: "44020000001102690557",
- Info: "2208",
- }
-
- customData = append(customData, custom11)
-
- custom12 := &CustomData{
- MsgId: "H44022900158202103301745421708",
- PsnNo: "44020000001102211928",
- Info: "2208",
- }
- customData = append(customData, custom12)
-
- custom1212 := &CustomData{
- MsgId: "H440229001582021033017351627",
- PsnNo: "44020000001102481733",
- Info: "2208",
- }
- customData = append(customData, custom1212)
-
- custom13 := &CustomData{
- MsgId: "H44022900158202103301740327951",
- PsnNo: "44020000001103174866",
- Info: "2208",
- }
- customData = append(customData, custom13)
- custom14 := &CustomData{
- MsgId: "H4402290015820210330174922668",
- PsnNo: "44020000001102927272",
- Info: "2208",
- }
- customData = append(customData, custom14)
- custom15 := &CustomData{
- MsgId: "H44022900158202103301752362273",
- PsnNo: "44020000001102942890",
- Info: "2208",
- }
- customData = append(customData, custom15)
-
- custom16 := &CustomData{
- MsgId: "H44022900158202103301751082917",
- PsnNo: "44020000001101662162",
- Info: "2208",
- }
- customData = append(customData, custom16)
-
- custom17 := &CustomData{
- MsgId: "H44022900158202103301754147728",
- PsnNo: "44020000000229014511",
- Info: "2208",
- }
- customData = append(customData, custom17)
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
-
- for _, item := range customData {
- result := service.Gdyb2601(item.PsnNo, item.MsgId, item.Info, miConfig.OrgName, "张俊杰", miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey)
- fmt.Println(result)
- }
- }
-
- func PathExists(path string) (bool, error) {
- _, err := os.Stat(path)
- if err == nil {
- return true, nil
- }
- if os.IsNotExist(err) {
- return false, nil
- }
- return false, err
- }
-
- //创建文件夹
- func Mkdir(dir string) {
- // 创建文件夹
- exist, err := PathExists(dir)
- if err != nil {
- fmt.Println(err.Error())
- } else {
- if exist {
- fmt.Println(dir + "文件夹已存在!")
- } else {
- // 文件夹名称,权限
- err := os.Mkdir(dir, os.ModePerm)
- if err != nil {
- fmt.Println(dir+"文件夹创建失败:", err.Error())
- } else {
- fmt.Println(dir + "文件夹创建成功!")
- }
- }
- }
- }
-
- //压缩文件
- func Zip(srcFile string, destZip string) error {
- zipfile, err := os.Create(destZip)
- if err != nil {
- return err
- }
- defer zipfile.Close()
-
- archive := zip.NewWriter(zipfile)
- defer archive.Close()
-
- filepath.Walk(srcFile, func(path string, info os.FileInfo, err error) error {
- if err != nil {
- return err
- }
-
- header, err := zip.FileInfoHeader(info)
- if err != nil {
- return err
- }
-
- header.Name = strings.TrimPrefix(path, filepath.Dir(srcFile)+"/")
- // header.Name = path
- if info.IsDir() {
- header.Name += "/"
- } else {
- header.Method = zip.Deflate
- }
-
- writer, err := archive.CreateHeader(header)
- if err != nil {
- return err
- }
-
- if !info.IsDir() {
- file, err := os.Open(path)
- if err != nil {
- return err
- }
- defer file.Close()
- _, err = io.Copy(writer, file)
- }
- return err
- })
-
- return err
- }
-
- func ReadFile(filePath string) []byte {
- f, err := os.Open(filePath)
- if err != nil {
- fmt.Println("read file fail", err)
- return nil
- }
- defer f.Close()
-
- fd, err := ioutil.ReadAll(f)
- if err != nil {
- fmt.Println("read to fd fail", err)
- return nil
- }
-
- return fd
- }
-
- func saveLog(result string, request string, infno string, desc string) {
-
- org_id, _ := beego.AppConfig.Int64("org_id")
- miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
- dir := miConfig.OrgName + "日志"
- utils.Mkdir(dir)
- month := time.Unix(1557042972, 0).Format("1")
- year := time.Now().Format("2006")
- month = time.Now().Format("01")
- day := time.Now().Format("02")
- hour := time.Now().Format("15")
- min := time.Now().Format("04")
- sec := time.Now().Format("05")
-
- result_time := year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec
-
- file := strconv.FormatInt(org_id, 10) + "_" + year + month + day + "_log"
- file_name := file + ".txt"
- file_path := miConfig.OrgName + "日志" + "/" + file_name
- exist, _ := utils.PathExists(file_path)
- if exist { //存在
- fmt.Println("存在")
- f, err := os.OpenFile(file_path, os.O_WRONLY, 0644)
- if err != nil {
- fmt.Println("read fail")
- }
- content := "\r\n" + "\r\n" + "\r\n" + result_time + " " + "【 " + desc + infno + "入参" + " 】:" + "\r\n" + request + "\r\n" + result_time + " " + "【 " + desc + infno + "出参" + " 】:" + "\r\n" + result
- n, _ := f.Seek(0, 2)
- _, err = f.WriteAt([]byte(content), n)
-
- } else { //不存在
- fmt.Println("文件不存在,创建文件")
- f, err := os.Create(miConfig.OrgName + "日志" + "/" + file_name)
- defer f.Close()
- if err != nil {
- } else {
- _, err = f.Write([]byte("记录日志"))
- }
- }
-
- }
-
- type Charset string
-
- const (
- UTF8 = Charset("UTF-8")
- GB18030 = Charset("GB18030")
- )
-
- func ConvertToString(src string, srcCode string, tagCode string) string {
- srcCoder := mahonia.NewDecoder(srcCode)
- srcResult := srcCoder.ConvertString(src)
- tagCoder := mahonia.NewDecoder(tagCode)
- _, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
- result := string(cdata)
- return result
- }
-
- func ReadEleCard(admin_user_id int64, org_id int64, c *HisApiController) string {
- roles, _ := service.GetAdminUserInfoByID(org_id, admin_user_id)
- miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
- var token string
- if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" {
- var api string
- if miConfig.MdtrtareaAdmvs == "320921" {
- api = "http://192.168.2.110:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(4, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName
- fmt.Println(api)
-
- } else {
- api = "http://192.168.5.251:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName +
- "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(4, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName
- }
-
- resp, requestErr := http.Get(api)
- if requestErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return ""
- }
-
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return ""
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return ""
- }
- var status string
- status = respJSON["data"].(map[string]interface{})["status"].(string)
- //card_type := respJSON["data"].(map[string]interface{})["type"].(string)
-
- var res ResultTwo //1101结果
- var res10265 ResultTwo10265 //1101结果
- if status == "0" { //读卡成功
- var card_info string //卡信息
- var busi_card_info string
- token = respJSON["data"].(map[string]interface{})["token"].(string)
- busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string)
- card_info = respJSON["data"].(map[string]interface{})["card_info"].(string)
- fmt.Println(card_info)
- fmt.Println(busi_card_info)
-
- respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
-
- if err := json.Unmarshal([]byte(result), &res10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return ""
- }
- res.ErrMsg = res10265.ErrMsg
- infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64)
- res.Infcode = infocode
- res.Output = res10265.Output
- res.InfRefmsgid = res10265.InfRefmsgid
- if res.Infcode == 0 {
- patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId)
- if err == gorm.ErrRecordNotFound {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException)
- return ""
- } else if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return ""
-
- } else {
- Iinfos, _ := json.Marshal(res.Output.Iinfo)
- Idetinfos, _ := json.Marshal(res.Output.Idetinfo)
- infoStr := string(Iinfos)
- idetinfoStr := string(Idetinfos)
- psn := &models.HisPsn{
- PsnNo: res.Output.Baseinfo.PsnNo,
- Age: res.Output.Baseinfo.Age,
- PatientId: patient.ID,
- Certno: res.Output.Baseinfo.Certno,
- Brdy: res.Output.Baseinfo.Brdy,
- Gend: res.Output.Baseinfo.Gend,
- Naty: res.Output.Baseinfo.Naty,
- PsnCertType: res.Output.Baseinfo.PsnCertType,
- PsnName: res.Output.Baseinfo.PsnName,
- Idetinfo: idetinfoStr,
- Insuinfo: infoStr,
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- CardInfo: card_info,
- VerifyNumber: token,
- }
- service.CreateHisPsn(psn)
- return token
- }
- }
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return ""
- }
- } else { //读卡失败
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException)
- return ""
- }
- return token
- }
-
- func DeleteExtraSpaceTwo(s string) string {
-
- //删除字符串中的多余空格,有多个空格时,仅保留一个空格
- s1 := strings.Replace(s, " ", " ", -1) //替换tab为空格
- regstr := "\\s{2,}" //两个及两个以上空格的正则表达式
- reg, _ := regexp.Compile(regstr) //编译正则表达式
- s2 := make([]byte, len(s1)) //定义字符数组切片
- copy(s2, s1) //将字符串复制到切片
- spc_index := reg.FindStringIndex(string(s2)) //在字符串中搜索
- for len(spc_index) > 0 { //找到适配项
- s2 = append(s2[:spc_index[0]+1], s2[spc_index[1]:]...) //删除多余空格
- spc_index = reg.FindStringIndex(string(s2)) //继续在字符串中搜索
- }
- return string(s2)
- }
-
- func Remove0000(s string) string {
- str := make([]rune, 0, len(s))
- for _, v := range []rune(s) {
- if v == 0 {
- continue
- }
- str = append(str, v)
- }
- return string(str)
- }
-
- func (c *HisApiController) GetELeCertInfo(code string, operator_id string, operator_name string) (string, string) {
- DllDef := syscall.MustLoadDLL("HeaSecReadInfo.dll")
- readCard := DllDef.MustFindProc("EcQuery")
- pCardInfo := make([]byte, 8192)
- pBusiCardInfo := make([]byte, 8192)
-
- data := make(map[string]interface{})
- //pData := make(map[string]interface{})
-
- inputData := make(map[string]interface{})
- inputData["orgId"] = code
- inputData["businessType"] = "01101"
- inputData["operatorId"] = operator_id
- inputData["operatorName"] = operator_name
- inputData["officeId"] = "001"
- inputData["officeName"] = "血透室"
- //
- data["data"] = inputData
- data["transType"] = "ec.query"
- data["orgId"] = code
- bytesData, _ := json.Marshal(data)
- pCardInfo = bytesData
- ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&pCardInfo[0])), (uintptr)(unsafe.Pointer(&pBusiCardInfo[0])))
- fmt.Println(ret2)
- //fmt.Println(DeleteExtraSpace(string(bytesData)))
- //fmt.Println(DeleteExtraSpace(string(pBusiCardInfo)))
- fmt.Println(":", ConvertToString(DeleteExtraSpace(string(bytesData)), "gbk", "utf-8"))
- fmt.Println(":", ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8"))
- if ret2 != 0 {
- return "", ""
- }
- return DeleteExtraSpace(string(bytesData)), DeleteExtraSpace(string(pBusiCardInfo))
- }
-
- func DeleteExtraSpace(s string) string {
- //删除字符串中的多余空格,有多个空格时,仅保留一个空格
- s1 := strings.Replace(s, " ", " ", -1) //替换tab为空格
- regstr := "\\s{2,}" //两个及两个以上空格的正则表达式
- reg, _ := regexp.Compile(regstr) //编译正则表达式
- s2 := make([]byte, len(s1)) //定义字符数组切片
- copy(s2, s1) //将字符串复制到切片
- spc_index := reg.FindStringIndex(string(s2)) //在字符串中搜索
- for len(spc_index) > 0 { //找到适配项
- s2 = append(s2[:spc_index[0]+1], s2[spc_index[1]:]...) //删除多余空格
- spc_index = reg.FindStringIndex(string(s2)) //继续在字符串中搜索
- }
- return string(s2)
- }
-
- //对账
- func (c *HisApiController) Post3202() {
- start_time := c.GetString("start_time")
- end_time := c.GetString("end_time")
- //insutype := c.GetString("insutype")
- clr_type := c.GetString("clr_type")
- clr_org := c.GetString("clr_optins")
-
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- adminUser := c.GetAdminUserInfo()
- miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId)
- config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId)
- if len(clr_org) == 0 {
- clr_org = miConfig.MdtrtareaAdmvs
- }
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
- orders, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId)
- //orders_two, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, "310", "", clr_type)
-
- //fixmedins_setl_cnt := int64(len(orders))
- var medfee_sumamt float64
- var acct_pay float64
- var fund_pay_sumamt float64
-
- for _, item := range orders {
- medfee_sumamt = medfee_sumamt + item.MedfeeSumamt
- acct_pay = acct_pay + item.AcctPay
- fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt
-
- }
-
- //var medfee_sumamt_two float64
- //var acct_pay_two float64
- //var fund_pay_sumamt_two float64
-
- //for _, item := range orders_two {
- // medfee_sumamt_two = medfee_sumamt_two + item.MedfeeSumamt
- // acct_pay_two = acct_pay_two + item.AcctPay
- // fund_pay_sumamt_two = fund_pay_sumamt_two + item.FundPaySumamt
- //}
-
- //var user_name string
- role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id)
- //if role.ID == 0 {
- // user_name = "xxx"
- //} else {
- // user_name = role.UserName
- //}
- var res ResultSix
- if config.IsOpen == 1 {
- var bps []*models.BusinessParamsTwo
- var bp models.BusinessParamsTwo
- medfee_sumamt_str := fmt.Sprintf("%.2f", medfee_sumamt)
- acct_pay_str := fmt.Sprintf("%.2f", acct_pay)
- fund_pay_sumamt_str := fmt.Sprintf("%.2f", fund_pay_sumamt)
-
- bp.MedfeeSumamt = medfee_sumamt_str
- bp.AcctPay = acct_pay_str
- bp.FundPaySumamt = fund_pay_sumamt_str
- bp.Insutype = "390"
- bp.StmtBegndate = start_time
- bp.ClrType = clr_type
- bp.SetlOptins = clr_org
- bp.StmtEnddate = end_time
- bps = append(bps, &bp)
-
- data := make(map[string]interface{})
- data["bps"] = bps
- data["org_name"] = miConfig.OrgName
- data["doctor"] = role.UserName
- data["fixmedins_code"] = miConfig.Code
- data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs
- data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs
-
- if miConfig.MdtrtareaAdmvs == "421300" {
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/3202", bytes.NewReader(bytesData))
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{})
- userJSONBytes, _ := json.Marshal(respJSON)
- if err := json.Unmarshal(userJSONBytes, &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- }
-
- if res.Infcode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "发起成功",
- })
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "code": -10,
- "msg": res.ErrMsg,
- })
-
- }
- }
- }
-
- func (c *HisApiController) Post3501() {
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- data := make(map[string]interface{})
- var struct3501s []models.Struct3501
- var struct3501 models.Struct3501
- struct3501.OrgName = miConfig.OrgName
- struct3501.AccessKey = miConfig.AccessKey
- struct3501.RequestUrl = miConfig.Url
- struct3501.SecretKey = miConfig.SecretKey
- struct3501.ManuDate = "2022-08-17"
- struct3501.FixmedinsBchno = ""
- struct3501.ManuLotnum = ""
- struct3501.RxFlag = "0"
- struct3501.ExpyEnd = "2022-08-17"
- struct3501.Invdate = "2022-08-17"
- struct3501.InvCnt = "20.25"
- struct3501.Memo = ""
- struct3501.MedListCodg = "XB01ABD056B002020200517"
- struct3501.FixmedinsHilistId = miConfig.Code
- struct3501.FixmedinsHilistName = miConfig.OrgName
- struct3501s = append(struct3501s, struct3501)
- data["struct_3501s"] = struct3501s
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var res ResultSix
- var resSix10265 ResultSix10265 //1101结果
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSix10265.InfRefmsgid
- res.Output = resSix10265.Output
- res.ErrMsg = resSix10265.ErrMsg
- res.Cainfo = resSix10265.Cainfo
- res.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- if infocode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
- func (c *HisApiController) Post3502() {
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- data := make(map[string]interface{})
- var struct3502s []models.Struct3502
- var struct3502 models.Struct3502
- struct3502.OrgName = miConfig.OrgName
- struct3502.AccessKey = miConfig.AccessKey
- struct3502.RequestUrl = miConfig.Url
- struct3502.SecretKey = miConfig.SecretKey
- struct3502.ManuDate = "2022-08-15"
- struct3502.FixmedinsBchno = ""
- struct3502.ManuLotnum = ""
- struct3502.RxFlag = "0"
- struct3502.ExpyEnd = "2022-08-15"
- struct3502.Invdate = "2022-08-15"
- struct3502.InvCnt = "20.25"
- struct3502.Memo = ""
- struct3502.MedListCodg = "XB01ABD056B002020200517"
- struct3502.FixmedinsHilistId = miConfig.Code
- struct3502.FixmedinsHilistName = miConfig.OrgName
- struct3502s = append(struct3502s, struct3502)
- data["struct_3502s"] = struct3502s
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var res ResultSix
- var resSix10265 ResultSix10265 //1101结果
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSix10265.InfRefmsgid
- res.Output = resSix10265.Output
- res.ErrMsg = resSix10265.ErrMsg
- res.Cainfo = resSix10265.Cainfo
- res.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- if infocode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
- func (c *HisApiController) Post3503() {
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- data := make(map[string]interface{})
- var struct3501s []models.Struct3501
- var struct3501 models.Struct3501
- struct3501.OrgName = miConfig.OrgName
- struct3501.AccessKey = miConfig.AccessKey
- struct3501.RequestUrl = miConfig.Url
- struct3501.SecretKey = miConfig.SecretKey
- struct3501.ManuDate = "2022-08-15"
- struct3501.FixmedinsBchno = ""
- struct3501.ManuLotnum = ""
- struct3501.RxFlag = "0"
- struct3501.ExpyEnd = "2022-08-15"
- struct3501.Invdate = "2022-08-15"
- struct3501.InvCnt = "20.25"
- struct3501.Memo = ""
- struct3501.MedListCodg = "XB01ABD056B002020200517"
- struct3501.FixmedinsHilistId = miConfig.Code
- struct3501.FixmedinsHilistName = miConfig.OrgName
- struct3501s = append(struct3501s, struct3501)
- data["struct_3501s"] = struct3501s
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var res ResultSix
- var resSix10265 ResultSix10265 //1101结果
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSix10265.InfRefmsgid
- res.Output = resSix10265.Output
- res.ErrMsg = resSix10265.ErrMsg
- res.Cainfo = resSix10265.Cainfo
- res.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- if infocode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
- func (c *HisApiController) Post3504() {
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- data := make(map[string]interface{})
- var struct3501s []models.Struct3501
- var struct3501 models.Struct3501
- struct3501.OrgName = miConfig.OrgName
- struct3501.AccessKey = miConfig.AccessKey
- struct3501.RequestUrl = miConfig.Url
- struct3501.SecretKey = miConfig.SecretKey
- struct3501.ManuDate = "2022-08-15"
- struct3501.FixmedinsBchno = ""
- struct3501.ManuLotnum = ""
- struct3501.RxFlag = "0"
- struct3501.ExpyEnd = "2022-08-15"
- struct3501.Invdate = "2022-08-15"
- struct3501.InvCnt = "20.25"
- struct3501.Memo = ""
- struct3501.MedListCodg = "XB01ABD056B002020200517"
- struct3501.FixmedinsHilistId = miConfig.Code
- struct3501.FixmedinsHilistName = miConfig.OrgName
- struct3501s = append(struct3501s, struct3501)
- data["struct_3501s"] = struct3501s
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var res ResultSix
- var resSix10265 ResultSix10265 //1101结果
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSix10265.InfRefmsgid
- res.Output = resSix10265.Output
- res.ErrMsg = resSix10265.ErrMsg
- res.Cainfo = resSix10265.Cainfo
- res.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- if infocode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
- func (c *HisApiController) Post3505() {
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- data := make(map[string]interface{})
- var struct3501s []models.Struct3501
- var struct3501 models.Struct3501
- struct3501.OrgName = miConfig.OrgName
- struct3501.AccessKey = miConfig.AccessKey
- struct3501.RequestUrl = miConfig.Url
- struct3501.SecretKey = miConfig.SecretKey
- struct3501.ManuDate = "2022-08-15"
- struct3501.FixmedinsBchno = ""
- struct3501.ManuLotnum = ""
- struct3501.RxFlag = "0"
- struct3501.ExpyEnd = "2022-08-15"
- struct3501.Invdate = "2022-08-15"
- struct3501.InvCnt = "20.25"
- struct3501.Memo = ""
- struct3501.MedListCodg = "XB01ABD056B002020200517"
- struct3501.FixmedinsHilistId = miConfig.Code
- struct3501.FixmedinsHilistName = miConfig.OrgName
- struct3501s = append(struct3501s, struct3501)
- data["struct_3501s"] = struct3501s
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var res ResultSix
- var resSix10265 ResultSix10265 //1101结果
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSix10265.InfRefmsgid
- res.Output = resSix10265.Output
- res.ErrMsg = resSix10265.ErrMsg
- res.Cainfo = resSix10265.Cainfo
- res.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- if infocode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
- func (c *HisApiController) Post3506() {
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- data := make(map[string]interface{})
- var struct3501s []models.Struct3501
- var struct3501 models.Struct3501
- struct3501.OrgName = miConfig.OrgName
- struct3501.AccessKey = miConfig.AccessKey
- struct3501.RequestUrl = miConfig.Url
- struct3501.SecretKey = miConfig.SecretKey
- struct3501.ManuDate = "2022-08-15"
- struct3501.FixmedinsBchno = ""
- struct3501.ManuLotnum = ""
- struct3501.RxFlag = "0"
- struct3501.ExpyEnd = "2022-08-15"
- struct3501.Invdate = "2022-08-15"
- struct3501.InvCnt = "20.25"
- struct3501.Memo = ""
- struct3501.MedListCodg = "XB01ABD056B002020200517"
- struct3501.FixmedinsHilistId = miConfig.Code
- struct3501.FixmedinsHilistName = miConfig.OrgName
- struct3501s = append(struct3501s, struct3501)
- data["struct_3501s"] = struct3501s
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var res ResultSix
- var resSix10265 ResultSix10265 //1101结果
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSix10265.InfRefmsgid
- res.Output = resSix10265.Output
- res.ErrMsg = resSix10265.ErrMsg
- res.Cainfo = resSix10265.Cainfo
- res.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- if infocode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
- func (c *HisApiController) Post3507() {
- miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
- data := make(map[string]interface{})
- var struct3501s []models.Struct3501
- var struct3501 models.Struct3501
- struct3501.OrgName = miConfig.OrgName
- struct3501.AccessKey = miConfig.AccessKey
- struct3501.RequestUrl = miConfig.Url
- struct3501.SecretKey = miConfig.SecretKey
- struct3501.ManuDate = "2022-08-15"
- struct3501.FixmedinsBchno = ""
- struct3501.ManuLotnum = ""
- struct3501.RxFlag = "0"
- struct3501.ExpyEnd = "2022-08-15"
- struct3501.Invdate = "2022-08-15"
- struct3501.InvCnt = "20.25"
- struct3501.Memo = ""
- struct3501.MedListCodg = "XB01ABD056B002020200517"
- struct3501.FixmedinsHilistId = miConfig.Code
- struct3501.FixmedinsHilistName = miConfig.OrgName
- struct3501s = append(struct3501s, struct3501)
- data["struct_3501s"] = struct3501s
- client := &http.Client{}
- bytesData, _ := json.Marshal(data)
- var req *http.Request
-
- if miConfig.MdtrtareaAdmvs == "320921" {
- req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- } else {
- req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData))
- }
-
- resp, _ := client.Do(req)
- defer resp.Body.Close()
- body, ioErr := ioutil.ReadAll(resp.Body)
- if ioErr != nil {
- utils.ErrorLog("接口返回数据读取失败: %v", ioErr)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var respJSON map[string]interface{}
- if err := json.Unmarshal([]byte(body), &respJSON); err != nil {
- utils.ErrorLog("接口返回数据解析JSON失败: %v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- var res ResultSix
- var resSix10265 ResultSix10265 //1101结果
-
- respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{})
- result, _ := json.Marshal(respJSON)
- if err := json.Unmarshal([]byte(result), &resSix10265); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- res.InfRefmsgid = resSix10265.InfRefmsgid
- res.Output = resSix10265.Output
- res.ErrMsg = resSix10265.ErrMsg
- res.Cainfo = resSix10265.Cainfo
- res.WarnMsg = resSix10265.WarnMsg
- infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64)
- res.Infcode = infocode
-
- if infocode == 0 {
- c.ServeSuccessJSON(map[string]interface{}{
- "msg": "上传成功",
- })
- return
-
- } else {
- c.ServeSuccessJSON(map[string]interface{}{
- "failed_code": -10,
- "msg": res.ErrMsg,
- })
- return
- }
- }
|