123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135 |
- package service
-
- import (
- "bytes"
- "crypto/md5"
- "crypto/sha256"
- "encoding/hex"
- "encoding/json"
- "fmt"
- "gdyb/models"
- "math"
- "strings"
- //"gdyb/utils"
- "github.com/astaxie/beego"
- "io"
- "io/ioutil"
- "math/rand"
- "mime/multipart"
- "net"
- "net/http"
- "os"
- "os/exec"
- "path/filepath"
- "strconv"
- "syscall"
- "time"
- "unsafe"
- )
-
- const (
- SceretKey = "RhaDw4H0RUbWYyTxmRKM1eSeN0qyGLds" // secretKey 私钥
- )
-
- //机构信息
- func Gdyb1201(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1201" // 交易编码
- inputData["fixmedins_type"] = "1"
- inputData["fixmedins_name"] = org_name
- inputData["fixmedins_code"] = fixmedins_code
- input["medinsinfo"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- url := gdyb_url + "1201"
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- fmt.Println(string(respBytes))
- str2 := string(respBytes)
- return str2
- }
-
- // 人员基本信息
- func Gdyb1101(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates string, psn_name string) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
-
- if certificates == "3" {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "06" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- } else {
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["card_sn"] = card_sn // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- }
- }
-
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = "" // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- var inputLog string
- bytesData, err := json.Marshal(inputMessage)
- inputLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, inputLog
-
- }
-
- func Gdyb1101A(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, name string) string {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = name // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101A", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
- return hex.EncodeToString(out)
- } else {
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str
- }
- }
-
- // 门诊挂号
- func Gdyb2201(psnNo string, insutype string, certNo string, org_name string, opera string, ipt_otp_no string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, doctor_name string) (string, string) {
- fmt.Println(opera)
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- tempTime := time.Unix(timestamp, 0)
- timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, opera, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2201" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["insutype"] = insutype // 险种类型(来自1101接口返回)
- inputData["begntime"] = timeFormatOne // 开始时间
-
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- }
-
- inputData["ipt_otp_no"] = ipt_otp_no // 住院/门诊号
- inputData["atddr_no"] = doctor_id // 医师编码
- inputData["dr_name"] = doctor_name // 医师姓名
- inputData["dept_code"] = dept_code // 科室编码
- inputData["dept_name"] = dept // 科室名称
- inputData["caty"] = "A03.06" // 科别
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- var requestLog string
- bytesData, err := json.Marshal(inputMessage)
- requestLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2201"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2201"
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2201"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2201", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), requestLog
- } else {
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, requestLog
-
- }
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2201"
-
- }
-
- func Gdyb2201A(psnNo string, insutype string, certNo string, org_name string, opera string, ipt_otp_no string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, doctor_name string, record_time string, token string) (string, string) {
- fmt.Println(opera)
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //tempTime := time.Unix(timestamp, 0)
- //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, opera, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2201" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["insutype"] = insutype // 险种类型(来自1101接口返回)
- inputData["begntime"] = record_time // 开始时间
-
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else if id_card_type == 4 {
-
- inputData["mdtrt_cert_type"] = "01" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = token // 就诊凭证编号
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- }
-
- inputData["ipt_otp_no"] = ipt_otp_no // 住院/门诊号
- inputData["atddr_no"] = doctor_id // 医师编码
- inputData["dr_name"] = doctor_name // 医师姓名
- inputData["dept_code"] = dept_code // 科室编码
- inputData["dept_name"] = dept // 科室名称
- inputData["caty"] = "A03.06" // 科别
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- var requestLog string
- bytesData, err := json.Marshal(inputMessage)
- requestLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2201"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2201"
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2201"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2201", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), requestLog
- } else {
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, requestLog
-
- }
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2201"
-
- }
-
- // 门诊挂号撤销
- func Gdyb2202(psnNo string, mdtrtId string, ipt_otp_no string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2202" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- inputData["ipt_otp_no"] = ipt_otp_no // 住院/门诊号
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- var requestLog string
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- requestLog = string(bytesData)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2202"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2202"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2202"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2202"
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2202", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), requestLog
- } else {
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, requestLog
-
- }
-
- }
-
- // 门诊就诊信息上传
- func Gdyb2203(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig, begin_time string) (string, string) {
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //tempTime := time.Unix(timestamp, 0)
- //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, dept, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- diseinfo := make([]map[string]interface{}, 0)
-
- if med_type == "1111" || med_type == "1112" {
- med_type = "11"
- }
-
- inputMessage["infno"] = "2203" // 交易编码
- inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["med_type"] = med_type // 医疗类别 16门诊特殊病
- inputData["begntime"] = begin_time // 开始时间
- //inputData["begntime"] = // 开始时间
- inputData["main_cond_dscr"] = "" // 主要病情描述
- inputData["dise_codg"] = sick_code // 病种编码
- inputData["dise_name"] = sick_name // 病种名称
- inputData["birctrl_type"] = "" // 计划生育手术类别
- inputData["birctrl_matn_date"] = "" // 计划生育手术或生育日期
-
- for index, item := range config {
- diseinfo_sun := make(map[string]interface{})
- diseinfo_sun["diag_type"] = "1" // 诊断类别
- diseinfo_sun["diag_srt_no"] = index // 诊断排序号
- diseinfo_sun["diag_code"] = item.CountryCode // 诊断代码
- diseinfo_sun["diag_name"] = item.ClassName // 诊断名称
- diseinfo_sun["diag_dept"] = department // 诊断科室
- diseinfo_sun["dise_dor_no"] = doctor_id // 诊断医生编码
- diseinfo_sun["dise_dor_name"] = doctor // 诊断医生姓名
- diseinfo_sun["diag_time"] = begin_time // 诊断时间
- diseinfo_sun["vali_flag"] = "1" // 有效标志
- diseinfo = append(diseinfo, diseinfo_sun)
- }
-
- input["diseinfo"] = diseinfo
- input["mdtrtinfo"] = inputData
- inputMessage["input"] = input //交易输入
- var requestLog string
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- requestLog = string(bytesData)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2203"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2203", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), requestLog
- } else {
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, requestLog
-
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2203"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
-
- }
-
- // 门诊就诊信息上传
- func Gdyb2203A(psnNo string, mdtrtId string, doctor string, department string, org_name string, med_type string, doctor_id string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string, dept string, config []*models.HisXtDiagnoseConfig, begin_time string) (string, string) {
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- tempTime := time.Unix(timestamp, 0)
- timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, dept, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- diseinfo := make([]map[string]interface{}, 0)
-
- if med_type == "1111" || med_type == "1112" {
- med_type = "11"
- }
-
- inputMessage["infno"] = "2203A" // 交易编码
- inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["med_type"] = med_type // 医疗类别 16门诊特殊病
- inputData["begntime"] = begin_time // 开始时间
-
- inputData["main_cond_dscr"] = "" // 主要病情描述
- inputData["dise_codg"] = sick_code // 病种编码
- inputData["dise_name"] = sick_name // 病种名称
- inputData["birctrl_type"] = "" // 计划生育手术类别
- inputData["birctrl_matn_date"] = "" // 计划生育手术或生育日期
-
- inputData["matn_type"] = "" // 生育类别
- inputData["geso_val"] = "" // 孕周数
-
- for index, item := range config {
- diseinfo_sun := make(map[string]interface{})
- diseinfo_sun["diag_type"] = "1" // 诊断类别
- diseinfo_sun["diag_srt_no"] = index // 诊断排序号
- diseinfo_sun["diag_code"] = item.CountryCode // 诊断代码
- diseinfo_sun["diag_name"] = item.ClassName // 诊断名称
- diseinfo_sun["diag_dept"] = department // 诊断科室
- diseinfo_sun["dise_dor_no"] = doctor_id // 诊断医生编码
- diseinfo_sun["dise_dor_name"] = doctor // 诊断医生姓名
- diseinfo_sun["diag_time"] = timeFormatOne // 诊断时间
- diseinfo_sun["vali_flag"] = "1" // 有效标志
- diseinfo = append(diseinfo, diseinfo_sun)
- }
-
- input["diseinfo"] = diseinfo
- input["mdtrtinfo"] = inputData
- inputMessage["input"] = input //交易输入
- var requestLog string
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- requestLog = string(bytesData)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2203A"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2203A", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), requestLog
- } else {
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, requestLog
-
- }
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2203A"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
-
- }
-
- type Custom struct {
- DetItemFeeSumamt string
- Cut string
- FeedetlSn string
- Price string
- MedListCodg string
- LmtUsedFlag int64
- HospApprFlag int64
- DoctorNumber string
- DoctorName string
- ProvinceDrugMedListCodg string
- ProvinceGoodMedListCodg string
- IsUser int64
- FeeOcurTime string
- Unit string
- }
-
- type RequestResult struct {
- Output Output `json:"output" form:"output"`
- Infcode int64 `gorm:"column:infcode" json:"infcode" form:"infcode"`
- WarnMsg string `gorm:"column:warn_msg" json:"warn_msg" form:"warn_msg"`
- Cainfo string `gorm:"column:cainfo" json:"cainfo" form:"cainfo"`
- ErrMsg string `gorm:"column:err_msg" json:"err_msg" form:"err_msg"`
- RespondTime string `gorm:"column:respond_time" json:"respond_time" form:"respond_time"`
- InfRefmsgid string `gorm:"column:inf_refmsgid" json:"inf_refmsgid" form:"inf_refmsgid"`
- }
- type Output struct {
- Result Result `json:"result" form:"result"`
- }
-
- type Result struct {
- BasMednFlag string `json:"bas_medn_flag" form:"bas_medn_flag"`
- MedChrgitmType string `json:"med_chrgitm_type" form:"med_chrgitm_type"`
- DetItemFeeSumamt int64 `json:"det_item_fee_sumamt" form:"det_item_fee_sumamt"`
- HiNegoDrugFlag string `json:"hi_nego_drug_flag" form:"hi_nego_drug_flag"`
- FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt" form:"fulamt_ownpay_amt"`
-
- FeedtlSn int64 `json:"feedtl_sn" form:"feedtl_sn"`
- UploadDate int64 `json:"upload_date" form:"upload_date"`
- AdviceId int64 `json:"advice_id" form:"advice_id"`
- Cnt int64 `json:"cnt" form:"cnt"`
- Pric float64 `json:"pric" form:"pric"`
- PatientId int64 `json:"patient_id" form:"patient_id"`
- PricUplmtAmt float64 `json:"pric_uplmt_amt" form:"pric_uplmt_amt"`
- SelfpayProp float64 `json:"selfpay_prop" form:"selfpay_prop"`
- OverlmtAmt float64 `json:"overlmt_amt" form:"overlmt_amt"`
- PreselfpayAmt float64 `json:"preselfpay_amt" form:"preselfpay_amt"`
- Status int64 `json:"status" form:"status"`
- Memo string `json:"memo" form:"memo"`
- FeedetlSn string `json:"feedetl_sn" form:"feedetl_sn"`
- Mtime int64 `json:"mtime" form:"mtime"`
- InscpScpAmt float64 `json:"inscp_scp_amt" form:"inscp_scp_amt"`
- DrtReimFlag string `json:"drt_reim_flag" form:"drt_reim_flag"`
- Ctime int64 `json:"ctime" form:"ctime"`
- ListSpItemFlag string `json:"list_sp_item_flag" form:"list_sp_item_flag"`
- ChldMedcFlag string `json:"chld_medc_flag" form:"chld_medc_flag"`
- LmtUsedFlag string `json:"lmt_used_flag" form:"lmt_used_flag"`
- ChrgitmLv string `json:"chrgitm_lv" form:"chrgitm_lv"`
- UserOrgId int64 `json:"user_org_id" form:"user_org_id"`
- HisPatientId int64 `json:"his_patient_id" form:"his_patient_id"`
- OrderId int64 `json:"order_id" form:"order_id"`
- }
-
- // 门诊费用明细信息上传
- func Gdyb2204(psnNo string, mdtrtId string, hisPrescription []*models.HisPrescription, chrg_bchno string, org_name string, doctor string, dept string, fixmedins_code string, dept_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, balance_accounts_type string, new_doctor_id int64, diag_code string) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //tempTime := time.Unix(timestamp, 0)
- //timeFormat := tempTime.Format("20060102150405")
- //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- //chrgBchno := rand.Intn(100000) + 10000
- var customs []*Custom
-
- for _, item := range hisPrescription {
- role, _ := GetAdminUserInfoByID(item.UserOrgId, new_doctor_id)
- tm := time.Unix(item.PreTime, 0)
- if item.Type == 1 { //药品
- for _, subItem := range item.HisDoctorAdviceInfo {
- if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 && subItem.BaseDrugLib.IsUser != 1 {
- //var randNum int
- //randNum = rand.Intn(10000) + 1000
- role, _ := GetAdminUserInfoByID(item.UserOrgId, new_doctor_id)
- cus := &Custom{
- DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber),
- Cut: fmt.Sprintf("%.4f", subItem.PrescribingNumber),
- FeedetlSn: subItem.FeedetlSn,
- Price: fmt.Sprintf("%.4f", subItem.Price),
- MedListCodg: subItem.BaseDrugLib.MedicalInsuranceNumber,
- HospApprFlag: subItem.HospApprFlag,
- DoctorNumber: role.DoctorNumber,
- DoctorName: role.UserName,
- FeeOcurTime: tm.Format("2006-01-02 15:04:05"),
- }
-
- customs = append(customs, cus)
- }
- }
- }
-
- if item.Type == 2 { //项目
- for _, subItem := range item.HisPrescriptionProject {
- //var randNum int
- //randNum = rand.Intn(10000) + 1000
- if subItem.Type == 2 {
- if len(subItem.HisProject.MedicalCode) > 0 {
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
- cus := &Custom{
- DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt),
- Cut: fmt.Sprintf("%.4f", cnt),
- FeedetlSn: subItem.FeedetlSn,
- Price: fmt.Sprintf("%.4f", float64(subItem.Price)),
- MedListCodg: subItem.HisProject.MedicalCode,
- DoctorNumber: role.DoctorNumber,
- DoctorName: role.UserName,
- HospApprFlag: -1,
- FeeOcurTime: tm.Format("2006-01-02 15:04:05"),
- }
- customs = append(customs, cus)
- }
-
- } else if subItem.Type == 3 {
- if len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 {
- cnt, _ := strconv.ParseFloat(subItem.Count, 64)
-
- cus := &Custom{
- DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt),
- Cut: fmt.Sprintf("%.4f", cnt),
- FeedetlSn: subItem.FeedetlSn,
- Price: fmt.Sprintf("%.4f", float64(subItem.Price)),
- MedListCodg: subItem.GoodInfo.MedicalInsuranceNumber,
- HospApprFlag: -1,
- DoctorNumber: role.DoctorNumber,
- DoctorName: role.UserName,
- FeeOcurTime: tm.Format("2006-01-02 15:04:05"),
- }
- customs = append(customs, cus)
- }
-
- }
-
- }
- }
-
- for _, subItem := range item.HisAdditionalCharge {
- if len(subItem.XtHisAddtionConfig.Code) > 0 {
- cus := &Custom{
- DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*float64(subItem.Count)),
- Cut: fmt.Sprintf("%.4f", float64(subItem.Count)),
- FeedetlSn: subItem.FeedetlSn,
- Price: fmt.Sprintf("%.4f", float64(subItem.Price)),
- MedListCodg: subItem.XtHisAddtionConfig.Code,
- HospApprFlag: -1,
- DoctorNumber: role.DoctorNumber,
- DoctorName: role.UserName,
- }
- customs = append(customs, cus)
- }
- }
- }
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- feedetail := make([]map[string]interface{}, 0)
- inputMessage["infno"] = "2204" // 交易编码
-
- //chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10)
-
- for _, item := range customs {
- feedetailInfo := make(map[string]interface{})
- feedetailInfo["feedetl_sn"] = item.FeedetlSn
- feedetailInfo["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- feedetailInfo["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- feedetailInfo["chrg_bchno"] = chrg_bchno // 收费批次号
- feedetailInfo["dise_codg"] = diag_code // 病种编码
- feedetailInfo["rxno"] = "" // 处方号
- feedetailInfo["rx_circ_flag"] = "0" // 外购处方标志
- feedetailInfo["fee_ocur_time"] = item.FeeOcurTime // 费用发生时间
- feedetailInfo["med_list_codg"] = item.MedListCodg // 医疗目录编码
- feedetailInfo["medins_list_codg"] = fixmedins_code // 医药机构目录编码
- feedetailInfo["det_item_fee_sumamt"] = item.DetItemFeeSumamt // 明细项目费用总额
- feedetailInfo["cnt"] = item.Cut // 数量
- feedetailInfo["pric"] = item.Price // 单价
- feedetailInfo["sin_dos_dscr"] = "" // 单次剂量描述
- feedetailInfo["used_frqu_dscr"] = "" // 使用频次描述
- feedetailInfo["prd_days"] = "0" // 周期天数
- feedetailInfo["medc_way_dscr"] = "" // 用药途径描述
- feedetailInfo["bilg_dept_codg"] = dept_code // 开单科室编码
- feedetailInfo["bilg_dept_name"] = dept // 开单科室名称
- feedetailInfo["bilg_dr_codg"] = item.DoctorNumber // 开单医生编码
- feedetailInfo["bilg_dr_name"] = item.DoctorName // 开单医师姓名
- feedetailInfo["acord_dept_codg"] = "" // 受单科室编码
- feedetailInfo["acord_dept_name"] = "" // 受单科室名称
- feedetailInfo["orders_dr_code"] = item.DoctorNumber // 受单医生编码
- feedetailInfo["orders_dr_name"] = item.DoctorName // 受单医生姓名
- if balance_accounts_type == "8" {
- feedetailInfo["hosp_appr_flag"] = "2" // 医院审批标志
- } else {
- if item.HospApprFlag != -1 {
- if item.HospApprFlag == 1 {
- feedetailInfo["hosp_appr_flag"] = "1" // 医院审批标志
- } else if item.HospApprFlag == 2 {
- feedetailInfo["hosp_appr_flag"] = "2" // 医院审批标志
- } else if item.HospApprFlag == 3 {
- feedetailInfo["hosp_appr_flag"] = "0" // 医院审批标志
- } else {
- feedetailInfo["hosp_appr_flag"] = "1" // 医院审批标志
- }
- } else {
- feedetailInfo["hosp_appr_flag"] = "1" // 医院审批标志
- }
-
- }
-
- //feedetailInfo["tcmdrug_used_way"] = "" // 中药使用方式
- feedetailInfo["etip_flag"] = "" // 外检标志
- feedetailInfo["etip_hosp_code"] = "" // 外检医院编码
- feedetailInfo["dscg_tkdrug_flag"] = "" // 出院带药标志
- feedetailInfo["matn_fee_flag"] = "" // 生育费用标志
- feedetail = append(feedetail, feedetailInfo)
- }
- input["feedetail"] = feedetail
- inputMessage["input"] = input //交易输入
- var requestLog string
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println("----------")
- fmt.Println(string(bytesData))
- fmt.Println("----------")
- requestLog = string(bytesData)
- if err != nil {
- fmt.Println(err.Error())
- return "", ""
- }
- reader := bytes.NewReader(bytesData)
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2204"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2204"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2204"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2204"
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2204", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), requestLog
- } else {
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return "", ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return "", ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return "", ""
- }
- return string(respBytes), requestLog
-
- }
-
- //var result RequestResult
- //json.Unmarshal(respBytes, &result)
- //return &result
- }
-
- // 门诊费用明细信息撤销
- func Gdyb2205(psnNo string, mdtrtId string, chrgBchno string, org_name string, doctor string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, fixmedins_code string) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2205" // 交易编码
-
- inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- inputData["chrg_bchno"] = chrgBchno // 收费批次号(来自2204生成的)
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
-
- var requestLog string
- requestLog = string(bytesData)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "2205"
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2205"
- }
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2205"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2205"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2205"
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2205", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), requestLog
- } else {
- request, err := http.NewRequest("POST", url, reader)
- fmt.Println(err)
-
- fmt.Println(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, requestLog
-
- }
-
- }
-
- // 门诊预结算
- //func Gdyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, secret_key string) string {
- func Gdyb2206(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64) (string, string) {
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2206" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- if certificates == 3 {
- inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else {
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else if id_card_type == 4 {
- inputData["mdtrt_cert_type"] = "01" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- }
- }
- if insuplc_admdvs == "421300" {
- if med_type == "11" || med_type == "1112" || med_type == "1111" {
- inputData["med_type"] = "110104" // 医疗类别 11 普通门诊 12 门诊挂号
- } else if med_type == "14" {
- inputData["med_type"] = "140110" // 医疗类别 11 普通门诊 12 门诊挂号
- }
- } else {
- inputData["med_type"] = med_type // 医疗类别 11 普通门诊 12 门诊挂号
- }
-
- inputData["medfee_sumamt"] = total // 医疗费总额
- inputData["psn_setlway"] = "01" // 个人结算方式 01 按项目结 02 按定额结算
- inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- inputData["chrg_bchno"] = chrgBchno // 收费批次号(来自2204生成的)
- inputData["acct_used_flag"] = "0" // 个人账户使用标志 0否 1是
- inputData["insutype"] = insutype // 险种类型
- inputData["invono"] = "" // 发票号
- inputData["dise_codg"] = "M07803" // 发票号
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- var requestLog string
-
- bytesData, err := json.Marshal(inputMessage)
-
- requestLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "2206"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2206"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2206"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2206"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2206"
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2206", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), requestLog
- } else {
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, requestLog
-
- }
-
- }
-
- // 门诊结算
- func Gdyb2207(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string, token string) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2207" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- if certificates == 3 {
- inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else {
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else if id_card_type == 4 {
- inputData["mdtrt_cert_type"] = "01" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = token // 就诊凭证编号
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- }
- }
- if med_type == "1111" || med_type == "1112" {
- med_type = "11"
- }
- if insuplc_admdvs == "421300" {
- if med_type == "11" {
- inputData["med_type"] = "110104" // 医疗类别 11 普通门诊 12 门诊挂号
- } else if med_type == "14" {
- inputData["med_type"] = "140101" // 医疗类别 11 普通门诊 12 门诊挂号
- }
- } else {
- inputData["med_type"] = med_type // 医疗类别 11 普通门诊 12 门诊挂号
- }
- inputData["medfee_sumamt"] = total // 医疗费总额
- inputData["psn_setlway"] = "01" // 个人结算方式 01 按项目结 02 按定额结算
- inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- inputData["chrg_bchno"] = chrgBchno // 收费批次号(来自2204生成的)
- inputData["acct_used_flag"] = acct_used_flag // 个人账户使用标志 0否 1是
- inputData["insutype"] = insutype // 险种类型
- inputData["invono"] = "" // 发票号
-
- inputData["fulamt_ownpay_amt"] = fulamt_ownpay_amt //
- inputData["overlmt_selfpay"] = overlmt_selfpay //
- inputData["preselfpay_amt"] = preselfpay_amt //
- inputData["inscp_scp_amt"] = inscp_scp_amt //
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "2207"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2207"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2207"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2207"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2207"
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2207", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- mjson, _ := json.Marshal(inputMessage)
- str2 := string(mjson)
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), str2
- } else {
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- mjson, _ := json.Marshal(inputMessage)
- str2 := string(mjson)
-
- return str, str2
-
- }
-
- }
-
- func Gdyb2207A(psnNo string, mdtrtId string, chrgBchno string, certNo string, insutype string, total string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, med_type string, id_card_type int64, fulamt_ownpay_amt float64, overlmt_selfpay float64, preselfpay_amt float64, inscp_scp_amt float64, certificates int64, acct_used_flag string) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2207A" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- if certificates == 3 {
- inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else {
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- }
- }
- if med_type == "1111" || med_type == "1112" {
- med_type = "11"
- }
- if insuplc_admdvs == "421300" {
- if med_type == "11" {
- inputData["med_type"] = "110104" // 医疗类别 11 普通门诊 12 门诊挂号
- } else if med_type == "14" {
- inputData["med_type"] = "140101" // 医疗类别 11 普通门诊 12 门诊挂号
- }
- } else {
- inputData["med_type"] = med_type // 医疗类别 11 普通门诊 12 门诊挂号
- }
- inputData["medfee_sumamt"] = total // 医疗费总额
- inputData["psn_setlway"] = "01" // 个人结算方式 01 按项目结 02 按定额结算
- inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- inputData["chrg_bchno"] = chrgBchno // 收费批次号(来自2204生成的)
- inputData["acct_used_flag"] = acct_used_flag // 个人账户使用标志 0否 1是
- inputData["insutype"] = insutype // 险种类型
- inputData["invono"] = "" // 发票号
-
- inputData["fulamt_ownpay_amt"] = fulamt_ownpay_amt //
- inputData["overlmt_selfpay"] = overlmt_selfpay //
- inputData["preselfpay_amt"] = preselfpay_amt //
- inputData["inscp_scp_amt"] = inscp_scp_amt //
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "2207"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2207"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2207"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2207"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2207"
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2207", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- mjson, _ := json.Marshal(inputMessage)
- str2 := string(mjson)
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), str2
- } else {
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- mjson, _ := json.Marshal(inputMessage)
- str2 := string(mjson)
-
- return str, str2
-
- }
-
- }
-
- // 门诊结算撤销
- func Gdyb2208(psnNo string, mdtrtId string, setlId string, org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2208" // 交易编码
-
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- inputData["setl_id"] = setlId // 结算 ID
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "2208"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2208"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2208"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2208"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2208"
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "2208", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- mjson, _ := json.Marshal(inputMessage)
- str2 := string(mjson)
- fmt.Println(string(out))
-
- return hex.EncodeToString(out), str2
- } else {
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- mjson, _ := json.Marshal(inputMessage)
- str2 := string(mjson)
- return str, str2
-
- }
-
- }
-
- //确认订单
- func Gdyb6201(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, order models.HisOrder) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "6201" // 交易编码
-
- inputData["mdtrt_id"] = order.MdtrtId
- inputData["chrg_bchno"] = order.Number
- inputData["psn_no"] = order.PsnNo
- inputData["psn_name"] = order.PsnName
- inputData["psn_cert_type"] = order.PsnCertType
- inputData["certno"] = order.Certno
- inputData["insutype"] = order.Insutype
- inputData["med_type"] = order.MedType
- inputData["medfee_sumamt"] = order.MedfeeSumamt
- inputData["fulamt_ownpay_amt"] = order.FulamtOwnpayAmt
- inputData["overlmt_selfpay"] = order.OverlmtSelfPay
- inputData["preselfpay_amt"] = order.PreselfpayAmt
- inputData["inscp_scp_amt"] = order.InscpScpAmt
- inputData["act_pay_dedc"] = order.ActPayDedc
- inputData["hifp_pay"] = order.HifpPay
- inputData["pool_prop_selfpay"] = order.PoolPropSelfpay
- inputData["cvlserv_pay"] = order.CvlservPay
- inputData["hifes_pay"] = order.HifesPay
- inputData["hifmi_pay"] = order.HifmiPay
- inputData["hifob_pay"] = order.HifobPay
- inputData["maf_pay"] = order.MafPay
- inputData["oth_pay"] = order.OthPay
- inputData["fund_pay_sumamt"] = order.FundPaySumamt
- inputData["psn_part_amt"] = order.PsnPartAmt
- inputData["acct_pay"] = order.AcctPay
- inputData["psn_cash_pay"] = order.PsnCashPay
- inputData["hosp_part_amt"] = order.HospPartAmt
- inputData["acct_mulaid_pay"] = order.AcctMulaidPay
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "6201"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/6201"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/6201"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2207"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- // 医药机构费用结算对总账 func Gdyb3201( org_name string, doctor string, secret_key string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string) string {
- func Gdyb3201(baseParams models.BaseParams, businessParams models.BusinessParams) string {
- fmt.Println("11222333-----")
-
- fmt.Println(baseParams)
- fmt.Println(businessParams)
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3201" // 交易编码
- inputData["insutype"] = businessParams.Insutype // 险种
- inputData["clr_type"] = businessParams.ClrType // 就诊 ID(来自2201接口返回)
- inputData["setl_optins"] = businessParams.SetlOptins // 结算经办机构
- inputData["stmt_begndate"] = businessParams.StmtBegndate // 对帐开始时间
- inputData["stmt_enddate"] = businessParams.StmtEnddate //对帐结束时间
- inputData["medfee_sumamt"] = businessParams.MedfeeSumamt //医疗费总额
- inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt //基金支付总额
- inputData["acct_pay"] = businessParams.AcctPay //个人账户支付金额
- inputData["fixmedins_setl_cnt"] = businessParams.FixmedinsSetlCnt //定点医药机构结算笔数
- inputData["refd_setl_flag"] = 0 // 就诊 ID(来自2201接口返回)
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- var url string
- if baseParams.MdtrtareaAdmvs == "150499" {
- url = gdyb_url
- } else {
- url = gdyb_url + "3201"
- }
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/3201"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/3201"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/3201"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- type Params struct {
- FileName string `json:"file_name"` //产品ID
- In []byte `json:"in"` //
- FixmedinsCode string `json:"fixmedins_code"` //调用环境生产为1 沙盒2
- }
-
- //文件上传
- func Gdyb9101(baseParams models.BaseParams, file_name string, file_byte []byte) string {
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
-
- //buf := new(bytes.Buffer)
- //buf.ReadFrom(strings.NewReader(string(file_byte)))
-
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
-
- inputMessage["infno"] = "9101" // 交易编码
- inputData["file_name"] = file_name //文件名
- inputData["in"] = file_byte //文件数据
- inputData["fixmedins_code"] = baseParams.FixmedinsCode //编码
-
- input["fsUploadIn"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/9101"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/9101"
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "9101"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/9101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- func Gdyb9102(baseParams models.BaseParams, file_name string, file_qury_no string) string {
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "9102" // 交易编码
- inputData["file_name"] = file_name //文件名
- inputData["file_qury_no"] = file_qury_no //文件数据
-
- inputData["fixmedins_code"] = baseParams.FixmedinsCode //编码
- input["fsDownloadIn"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "9102"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/9102"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/9102"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/9102"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- func Gdyb3202(baseParams models.BaseParams, businessParams models.BusinessParams) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3202" // 交易编码
- inputData["file_qury_no"] = businessParams.FileQuryNo // 险种
- inputData["setl_optins"] = baseParams.InsuplcAdmdvs // 结算经办机构
- inputData["stmt_begndate"] = businessParams.StmtBegndate // 对帐开始时间
- inputData["stmt_enddate"] = businessParams.StmtEnddate //对帐结束时间
- inputData["medfee_sumamt"] = businessParams.MedfeeSumamt //医疗费总额
- inputData["fund_pay_sumamt"] = businessParams.FundPaySumamt //基金支付总额
- inputData["cash_payamt"] = businessParams.CashPayamt //现金支付金额
- inputData["fixmedins_setl_cnt"] = businessParams.FixmedinsSetlCnt //定点医药机构结算笔数
- inputData["clr_type"] = "11" // 就诊 ID(来自2201接口返回)
- inputData["refd_setl_flag"] = 1 // 就诊 ID(来自2201接口返回)
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3202"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/3202"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/3202"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/3202"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- func Gdyb5203(baseParams models.BaseParams, businessParams models.BusinessParams) string {
- fmt.Println("~~~~~~1")
- fmt.Println(baseParams)
- fmt.Println(businessParams)
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
- fmt.Println("~~~~~~2")
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "5203" // 交易编码
- inputData["psn_no"] = businessParams.PsnNo
- inputData["setl_id"] = businessParams.SetlId
- inputData["mdtrt_id"] = businessParams.MdtrtId
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- fmt.Println("~~~~~~")
- fmt.Println("~~~~~~")
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "5203"
- var url string
- if baseParams.FixmedinsCode == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "5203"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5203"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/5203"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/5203"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- func Gdyb5204(baseParams models.BaseParams, businessParams models.BusinessParams) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "5204" // 交易编码
- inputData["psn_no"] = businessParams.PsnNo
- inputData["setl_id"] = businessParams.SetlId
- inputData["mdtrt_id"] = businessParams.MdtrtId
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "5203"
- var url string
- if baseParams.FixmedinsCode == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "5204"
- }
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5203"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/5203"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/5203"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- func Gdyb2001(baseParams models.BaseParams, psn_no string, insutype string, med_type string) string {
- if med_type == "1111" || med_type == "1112" {
- med_type = "11"
- }
-
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2001" // 交易编码
- inputData["psn_no"] = psn_no
- inputData["insutype"] = insutype
- inputData["fixmedins_code"] = baseParams.FixmedinsCode
- inputData["med_type"] = med_type
- inputData["begntime"] = "2021-01-01 00:00:00"
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/3301"
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/3301"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- func Gdyb3301(baseParams *models.BaseParams, name string, codg string, list_type_code string, start_time string, ent_time string, list_type string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3301" // 交易编码
- inputData["fixmedins_hilist_id"] = codg
- inputData["fixmedins_hilist_name"] = name
- inputData["list_type"] = list_type
- inputData["med_list_codg"] = codg
- inputData["begndate"] = start_time
- inputData["enddate"] = ent_time
-
- inputData["aprvno"] = ""
- inputData["dosform"] = ""
- inputData["exct_cont"] = ""
- inputData["item_cont"] = ""
- inputData["prcunt"] = ""
- inputData["spec"] = ""
- inputData["pacspec"] = ""
- inputData["memo"] = ""
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/3301"
- //
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/3301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3301"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb3302(baseParams *models.BaseParams, name string, codg string, list_type_code string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, baseParams.SecretKey)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3302" // 交易编码
- inputData["fixmedins_code"] = baseParams.FixmedinsCode
- inputData["fixmedins_hilist_id"] = codg
- inputData["list_type"] = list_type_code
- inputData["med_list_codg"] = codg
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/3302"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/3302"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3302"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb2505(psnNo string, doctor string, org_name string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, start_time string, end_time string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2505"
- inputData["psn_no"] = psnNo
- inputData["biz_appy_type"] = "01"
- inputData["begndate"] = start_time
- inputData["enddate"] = end_time
- inputData["fixmedins_code"] = fixmedins_code
- inputData["fixmedins_name"] = org_name
- inputData["tel"] = ""
- inputData["addr"] = ""
- inputData["agnter_name"] = ""
- inputData["agnter_cert_type"] = ""
- inputData["agnter_certno"] = ""
- inputData["agnter_tel"] = ""
- inputData["agnter_addr"] = ""
- inputData["agnter_rlts"] = ""
- inputData["fix_srt_no"] = "1"
- inputData["memo"] = ""
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //fmt.Println(String(bytesData))
- fmt.Println(string(bytesData))
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2505"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2505"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "2505"
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb2506(psnNo string, doctor string, org_name string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, trt_dcla_detl_sn string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2506"
- inputData["psn_no"] = psnNo
- inputData["trt_dcla_detl_sn"] = trt_dcla_detl_sn
- inputData["memo"] = ""
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2506"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2506"
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "2506"
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb2503(psnNo string, insutype string, org_name string, doctor string, fixmedins_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_name string, sick_code string, start_time string, end_time string, check_time string, hospital_code string, hospital_name string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //tempTime := time.Unix(timestamp, 0)
- //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
-
- //timeFormatTwo := tempTime.Format("2006-01-02")
-
- //t := time.Now()
- //last := time.Date(t.Year(), time.December, 31, 0, 0, 0, 0, time.UTC)
- //tm := time.Unix(last.Unix(), 0)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2503" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["insutype"] = insutype // 险种类型(来自1101接口返回)
- inputData["opsp_dise_code"] = sick_code // 险种类型(来自1101接口返回)
- inputData["opsp_dise_name"] = sick_name // 险种类型(来自1101接口返回)
- inputData["insu_optins"] = insuplc_admdvs // 险种类型(来自1101接口返回)
- inputData["ide_fixmedins_no"] = hospital_code // 险种类型(来自1101接口返回)
- inputData["ide_fixmedins_name"] = hospital_name // 险种类型(来自1101接口返回)
- inputData["hosp_ide_date"] = check_time // 险种类型(来自1101接口返回)
- inputData["diag_dr_codg"] = doctor_id // 开始时间
- inputData["diag_dr_name"] = doctor // 开始时间
- inputData["begndate"] = start_time // 医师编码
- inputData["tel"] = "" // 医师编码
- inputData["addr"] = "" // 医师编码
- inputData["enddate"] = end_time // 医师编码
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2503"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2503"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "2503"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "2503"
- }
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb2504(psnNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, trt_dcla_detl_sn string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2504" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["trt_dcla_detl_sn"] = trt_dcla_detl_sn // 人员编号 (来自1101接口返回)
- inputData["memo"] = "撤销备案" // 人员编号 (来自1101接口返回)
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2504"
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2504"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "2504"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- //func Gdyb2503(psnNo string, doctor string, department string, diag string, org_name string, med_type string, doctor_id int64, fixmedins_code string, diag_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_code string, sick_name string) string {
- // // 生成签名
- // nonce := GetRandomString(32)
- // timestamp := time.Now().Unix()
- // signature := setSignature(timestamp, nonce, secret_key)
- // tempTime := time.Unix(timestamp, 0)
- // timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- //
- // // 生成输入报文
- // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- // input := make(map[string]interface{})
- // inputData := make(map[string]interface{})
- // diseinfo := make([]map[string]interface{}, 0)
- //
- // inputMessage["infno"] = "2203" // 交易编码
- // inputData["mdtrt_id"] = mdtrtId // 就诊 ID(来自2201接口返回)
- // inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- // inputData["med_type"] = med_type // 医疗类别 16门诊特殊病
- // inputData["begntime"] = timeFormatOne // 开始时间
- // inputData["main_cond_dscr"] = "" // 主要病情描述
- // inputData["dise_codg"] = sick_code // 病种编码
- // inputData["dise_name"] = sick_name // 病种名称
- // inputData["birctrl_type"] = "" // 计划生育手术类别
- // inputData["birctrl_matn_date"] = "" // 计划生育手术或生育日期
- //
- // diseinfo_sun := make(map[string]interface{})
- // diseinfo_sun["diag_type"] = "1" // 诊断类别
- // diseinfo_sun["diag_srt_no"] = "1" // 诊断排序号
- // diseinfo_sun["diag_code"] = diag_code // 诊断代码
- // diseinfo_sun["diag_name"] = diag // 诊断名称
- // diseinfo_sun["diag_dept"] = department // 诊断科室
- // diseinfo_sun["dise_dor_no"] = doctor_id // 诊断医生编码
- // diseinfo_sun["dise_dor_name"] = doctor // 诊断医生姓名
- // diseinfo_sun["diag_time"] = timeFormatOne // 诊断时间
- // diseinfo_sun["vali_flag"] = "1" // 有效标志
- //
- // diseinfo = append(diseinfo, diseinfo_sun)
- // input["diseinfo"] = diseinfo
- // input["mdtrtinfo"] = inputData
- // inputMessage["input"] = input //交易输入
- //
- // bytesData, err := json.Marshal(inputMessage)
- // fmt.Println(string(bytesData))
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // reader := bytes.NewReader(bytesData)
- //
- // url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2203"
- //
- // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2203"
- // request, err := http.NewRequest("POST", url, reader)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- //
- // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- // request.Header.Set("x-tif-paasid", "sg03_prd")
- // request.Header.Set("x-tif-signature", signature)
- // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- // request.Header.Set("x-tif-nonce", nonce)
- //
- // client := http.Client{}
- // resp, err := client.Do(request)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // respBytes, err := ioutil.ReadAll(resp.Body)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // str := string(respBytes)
- // fmt.Println(str)
- // return str
- //}
-
- func Gdyb5301(psnNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //tempTime := time.Unix(timestamp, 0)
- //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
-
- //timeFormatTwo := tempTime.Format("2006-01-02")
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "5301" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "5301"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- func Gdyb5301Two(psnNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //tempTime := time.Unix(timestamp, 0)
- //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
-
- //timeFormatTwo := tempTime.Format("2006-01-02")
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "5301" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- type CustomStruct struct {
- FundPayType string
- FundPayamt float64
- }
-
- type OpspdiseinfoStruct struct {
- DiagName string
- DiagCode string
- OprnOprtName string
- OprnOprtCode string
- }
-
- type DiaginfoStructTwo struct {
- DiagType string
- DiagCode string
- DiagName string
- MaindiagFlag string
- }
-
- type IteminfoStruct struct {
- MedChrgitm string
- Amt float64
- ClaaSumfee float64
- ClabAmt float64
- FulamtOwnpayAmt float64
- OthAmt float64
- }
-
- type Struct4101 struct {
- PsnNo string
- MdtrtId string
- SetlId string
- HiSetlLv string
- PsnName string
- Gend string
- Brdy string
- Ntly string
- Naty string
- PatnCertType string
- Certno string
- Prfs string
- ConerName string
- PatnRlts string
- ConerAddr string
- ConerTel string
- HiType string
- Insuplc string
- AdmCaty string
- DscgCaty string
- MaindiagFlag string
- BillCode string
- BillNo string
- BizSn string
- SetlBegnDate string
- SetlEndDate string
- PsnSelfPay float64
- PsnOwnPay float64
- AcctPay float64
- PsnCashpay float64
- HiPaymtd string
- Hsorg string
- HsorgOpter string
- MedinsFillDept string
- MedinsFillPsn string
- IptMedType string
- Age int64
- CustomStruct []CustomStruct
- OpspdiseinfoStruct []OpspdiseinfoStruct
- Diseinfo []DiaginfoStructTwo
-
- IteminfoStruct []IteminfoStruct
- AdmTime string
- AdmEndTime string
- HisNo string
- DoctorName string
- DoctorCode string
- }
-
- //
- func Gdyb4101(struct4101 Struct4101, secret_key string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, org_id int64) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- if org_id == 10106 || org_id == 10215 || org_id == 10138 || org_id == 9504 {
- inputMessage["infno"] = "4101A" // 交易编码
-
- } else {
- inputMessage["infno"] = "4101A" // 交易编码
-
- }
- year := time.Now().Format("2006")
- month := time.Now().Format("01")
- day := time.Now().Format("02")
-
- inputData["mdtrt_id"] = struct4101.MdtrtId // 就诊 ID 必填(来自2201接口返回)
- inputData["setl_id"] = struct4101.SetlId // 结算 ID 必填
- inputData["psn_no"] = struct4101.PsnNo // 结算 ID 必填
-
- inputData["fixmedins_name"] = org_name // 定点医药机构名称 必填
- inputData["fixmedins_code"] = fixmedins_code // 定点医药机构编码 必填
- inputData["hi_setl_lv"] = "" // 医保结算等级
- inputData["hi_no"] = struct4101.PsnNo // 医保编号
- inputData["medcasno"] = struct4101.PsnNo // 病案号 必填
- inputData["dcla_time"] = year + "-" + month + "-" + day // 申报时间 必填
- inputData["psn_name"] = struct4101.PsnName // 人员姓名 必填
- inputData["gend"] = struct4101.Gend // 性别 必填
- inputData["brdy"] = struct4101.Brdy // 出生日期 必填
- inputData["age"] = struct4101.Age // 年龄 必填
- inputData["ntly"] = struct4101.Ntly // 国籍 必填
- inputData["nwb_age"] = "" // 年龄 必填
- inputData["naty"] = struct4101.Naty // 民族 必填
- if org_id == 10138 {
- inputData["dscg_way"] = "9" // 民族 必填
-
- inputData["resp_nurs_code"] = "N441623001432" // 民族 必填
-
- }
-
- inputData["patn_cert_type"] = struct4101.PatnCertType // 患者证件类别 必填
- inputData["certno"] = struct4101.Certno // 证件号码 必填
- inputData["prfs"] = struct4101.Prfs // 职业 必填
- inputData["curr_addr"] = "" // 现住址 必填
- inputData["emp_name"] = "" // 单位名称 必填
- inputData["emp_addr"] = "" // 单位地址 必填
- inputData["emp_tel"] = "" // 单位电话 必填
- inputData["poscode"] = "" // 邮编 必填
- inputData["coner_name"] = struct4101.ConerName // 联系人姓名 必填
- inputData["patn_rlts"] = struct4101.PatnRlts // 与患者关系 必填
- inputData["coner_addr"] = struct4101.ConerAddr // 联系人地址 必填
- inputData["coner_tel"] = struct4101.ConerTel // 联系人电话 必填
- inputData["hi_type"] = struct4101.HiType // 医保类型 必填
- inputData["insuplc"] = struct4101.Insuplc // 参保地 必填
- inputData["sp_psn_type"] = "" // 特殊人员类型 必填
- inputData["nwb_adm_type"] = "" // 新生儿入院类型 必填
- inputData["nwb_bir_wt"] = "" // 新生儿出生体重 必填
- inputData["nwb_adm_wt"] = "" // 新生儿入院体重 必填
- inputData["opsp_diag_caty"] = "" // 门诊慢特病诊断 必填
- inputData["opsp_mdtrt_date"] = "" // 门诊慢特病就诊日期 必填
- inputData["ipt_med_type"] = "" // 住院医疗类型 必填
- inputData["adm_way"] = "" // 入院途径 必填
- inputData["trt_type"] = "10" // 治疗类别 必填
- inputData["adm_time"] = "" // 入院时间 必填
- inputData["adm_caty"] = "A03.06" // 入院科别 必填
- inputData["refldept_dept"] = "" // 转科科别 必填
- inputData["dscg_time"] = "" // 出院时间 必填
- inputData["dscg_caty"] = "A03.06" // 出院科别 必填
- inputData["caty"] = "A03.06" // 出院科别 必填
- inputData["act_ipt_days"] = "" // 实际住院天数 必填
- inputData["otp_wm_dise"] = "" // 门(急) 诊西医诊断 必填
- inputData["wm_dise_code"] = "" // 门(急) 诊中医诊断 必填
- inputData["otp_tcm_dise"] = "" // 西医诊断疾病代码 必填
- inputData["tcm_dise_code"] = "" // 中医诊断代码 必填
- inputData["oprn_oprt_code_cnt"] = "" // 手术操作代码计数 必填
- inputData["vent_used_dura"] = "" // 呼吸机使用时长 必填
- inputData["pwcry_bfadm_coma_dura"] = "" // 颅脑损伤患者入院前昏迷时长 必填
- inputData["pwcry_afadm_coma_dura"] = "" // 颅脑损伤患者入院后昏迷时长 必填
- inputData["bld_cat"] = "" // 输血品种 必填
- inputData["bld_amt"] = "" // 输血量 必填
- inputData["bld_unt"] = "" // 输血计量单位 必填
- inputData["spga_nurscare_days"] = "" // 特级护理天数 必填
- inputData["lv1_nurscare_days"] = "" // 一级护理天数 必填
- inputData["scd_nurscare_days"] = "" // 二级护理天数 必填
- inputData["lv3_nurscare_days"] = "" // 三级护理天数 必填
- inputData["acp_medins_name"] = "" // 拟接收机构名称 必填
- inputData["acp_optins_code"] = "" // 拟接收机构代码 必填
- inputData["bill_code"] = struct4101.BillCode // 票据代码 必填
- inputData["bill_no"] = struct4101.BillNo // 票据号码 必填
- inputData["biz_sn"] = struct4101.BizSn // 业务流水号 必填
- inputData["days_rinp_flag_31"] = "" // 出院 31 天内再住院计划标志 必填
- inputData["days_rinp_pup_31"] = "" // 出院 31 天内再住院目的 必填
- inputData["chfpdr_name"] = struct4101.DoctorName // 主诊医师姓名 必填
- inputData["chfpdr_code"] = struct4101.DoctorCode // 主诊医师代码 必填
- inputData["setl_begn_date"] = struct4101.SetlBegnDate // 结算开始日期 必填
- inputData["setl_end_date"] = struct4101.SetlEndDate // 结算结束日期 必填
- inputData["psn_selfpay"] = struct4101.PsnSelfPay // 个人自付 必填
- inputData["psn_ownpay"] = struct4101.PsnOwnPay // 个人自费 必填
- inputData["acct_pay"] = struct4101.AcctPay // 个人账户支出 必填
- inputData["hi_paymtd"] = struct4101.HiPaymtd // 医保支付方式 必填
- inputData["hsorg"] = struct4101.Hsorg // 医保机构 必填
- inputData["hsorg_opter"] = struct4101.HsorgOpter // 医保机构经办人 必填
- inputData["medins_fill_dept"] = struct4101.MedinsFillDept // 医疗机构填报部门 必填
- inputData["medins_fill_psn"] = struct4101.MedinsFillPsn // 医疗机构填报人 必填
- inputData["psn_cashpay"] = struct4101.PsnCashpay // 医疗机构填报人 必填
-
- payinfo := make([]map[string]interface{}, 0) // 基金支付信息
- for _, item := range struct4101.CustomStruct {
- payinfotemp := make(map[string]interface{})
- if item.FundPayType == "310100" || item.FundPayType == "310200" || item.FundPayType == "320100" || item.FundPayType == "330100" || item.FundPayType == "340100" || item.FundPayType == "350100" || item.FundPayType == "370100" || item.FundPayType == "390100" || item.FundPayType == "610100" || item.FundPayType == "640100" || item.FundPayType == "620100" {
- payinfotemp["fund_pay_type"] = item.FundPayType // 基金支付类型 必填
- payinfotemp["fund_payamt"] = item.FundPayamt // 基金支付金额
- payinfo = append(payinfo, payinfotemp)
- }
- }
- opspdiseinfo := make([]map[string]interface{}, 0) // 门诊慢特病诊断信息
-
- opspdiseinfotemp := make(map[string]interface{})
- opspdiseinfotemp["diag_name"] = struct4101.Diseinfo[len(struct4101.Diseinfo)-1].DiagName // 诊断名称 必填
- opspdiseinfotemp["diag_code"] = struct4101.Diseinfo[len(struct4101.Diseinfo)-1].DiagCode // 诊断代码 必填
- opspdiseinfotemp["oprn_oprt_name"] = "血液透析" // 手术操作名称 必填
- opspdiseinfotemp["oprn_oprt_code"] = "39.9500" // 手术操作代码 必填
- opspdiseinfo = append(opspdiseinfo, opspdiseinfotemp)
-
- diseinfo := make([]map[string]interface{}, 0) // 住院诊断信息
- //for _, item := range struct4101.Diseinfo {
- // diseinfotemp := make(map[string]interface{})
- // diseinfotemp["maindiag_flag"] = item.MaindiagFlag // 手术操作代码 必填
- // diseinfotemp["diag_type"] = item.DiagType // 诊断类别 必填
- // diseinfotemp["diag_code"] = item.DiagCode // 诊断代码 必填
- // diseinfotemp["diag_name"] = item.DiagName // 诊断名称 必填
- // diseinfotemp["adm_cond_type"] = "3" // 入院病情类型 必填
- // diseinfo = append(diseinfo, diseinfotemp)
- //}
-
- iteminfo := make([]map[string]interface{}, 0)
- for _, item := range struct4101.IteminfoStruct {
- iteminfotemp := make(map[string]interface{})
- iteminfotemp["med_chrgitm"] = item.MedChrgitm // 医疗收费项目 必填
- iteminfotemp["amt"] = item.Amt // 金额 必填
- iteminfotemp["claa_sumfee"] = item.ClaaSumfee // 甲类费用合计 必填
- iteminfotemp["clab_amt"] = item.ClabAmt // 乙类金额 必填
- iteminfotemp["fulamt_ownpay_amt"] = item.FulamtOwnpayAmt // 全自费金额 必填
- iteminfotemp["oth_amt"] = item.OthAmt // 其他金额 必填
- iteminfo = append(iteminfo, iteminfotemp)
- }
-
- oprninfo := make([]map[string]interface{}, 0) // 手术操作信息
- oprninfotemp := make(map[string]interface{})
- oprninfotemp["oprn_oprt_type"] = "" // 手术操作类别 必填
- oprninfotemp["oprn_oprt_name"] = "" // 手术操作名称 必填
- oprninfotemp["oprn_oprt_code"] = "" // 手术操作代码 必填
- oprninfotemp["oprn_oprt_date"] = "" // 手术操作日期 必填
- oprninfotemp["anst_way"] = "" // 麻醉方式 必填
- oprninfotemp["oper_dr_name"] = "" // 术者医师姓名 必填
- oprninfotemp["oper_dr_code"] = "" // 术者医师代码 必填
- oprninfotemp["anst_dr_name"] = "" // 麻醉医师姓名 必填
- oprninfotemp["anst_dr_code"] = "" // 麻醉医师代码 必填
- oprninfo = append(oprninfo, oprninfotemp)
-
- icuinfo := make([]map[string]interface{}, 0) // 重症监护信息
- icuinfotemp := make(map[string]interface{})
- icuinfotemp["scs_cutd_ward_type"] = "" // 重症监护病房类型 必填
- icuinfotemp["scs_cutd_inpool_time"] = "" // 重症监护进入时间 必填
- icuinfotemp["scs_cutd_exit_time"] = "" // 重症监护退出时间 必填
- icuinfotemp["scs_cutd_sum_dura"] = "" // 重症监护合计时长 必填
- icuinfo = append(icuinfo, icuinfotemp)
-
- input["setlinfo"] = inputData
- input["payinfo"] = payinfo
- input["opspdiseinfo"] = opspdiseinfo
- input["diseinfo"] = diseinfo
- input["iteminfo"] = iteminfo
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := gdyb_url + "4101"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
-
- url = gdyb_url + "4101A"
-
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/4101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, string(bytesData)
- }
-
- func Gdyb4101For10106(struct4101 Struct4101, secret_key string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, org_id int64) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "4101A" // 交易编码
-
- year := time.Now().Format("2006")
- month := time.Now().Format("01")
- day := time.Now().Format("02")
-
- inputData["mdtrt_id"] = struct4101.MdtrtId // 就诊 ID 必填(来自2201接口返回)
- inputData["setl_id"] = struct4101.SetlId // 结算 ID 必填
- inputData["psn_no"] = struct4101.PsnNo // 结算 ID 必填
-
- inputData["fixmedins_name"] = org_name // 定点医药机构名称 必填
- inputData["fixmedins_code"] = fixmedins_code // 定点医药机构编码 必填
- inputData["hi_setl_lv"] = "" // 医保结算等级
- inputData["hi_no"] = struct4101.PsnNo // 医保编号
- inputData["medcasno"] = struct4101.PsnNo // 病案号 必填
- inputData["dcla_time"] = year + "-" + month + "-" + day // 申报时间 必填
- inputData["psn_name"] = struct4101.PsnName // 人员姓名 必填
- inputData["gend"] = struct4101.Gend // 性别 必填
- inputData["brdy"] = struct4101.Brdy // 出生日期 必填
- inputData["age"] = struct4101.Age // 年龄 必填
- inputData["ntly"] = struct4101.Ntly // 国籍 必填
- inputData["nwb_age"] = "" // 年龄 必填
- inputData["naty"] = struct4101.Naty // 民族 必填
- inputData["patn_cert_type"] = struct4101.PatnCertType // 患者证件类别 必填
- inputData["certno"] = struct4101.Certno // 证件号码 必填
- inputData["prfs"] = struct4101.Prfs // 职业 必填
- inputData["curr_addr"] = "" // 现住址 必填
- inputData["emp_name"] = "" // 单位名称 必填
- inputData["emp_addr"] = "" // 单位地址 必填
- inputData["emp_tel"] = "" // 单位电话 必填
- inputData["poscode"] = "" // 邮编 必填
- inputData["coner_name"] = struct4101.ConerName // 联系人姓名 必填
- inputData["patn_rlts"] = struct4101.PatnRlts // 与患者关系 必填
- inputData["coner_addr"] = struct4101.ConerAddr // 联系人地址 必填
- inputData["coner_tel"] = struct4101.ConerTel // 联系人电话 必填
- inputData["hi_type"] = struct4101.HiType // 医保类型 必填
- inputData["insuplc"] = struct4101.Insuplc // 参保地 必填
- inputData["sp_psn_type"] = "" // 特殊人员类型 必填
- inputData["nwb_adm_type"] = "" // 新生儿入院类型 必填
- inputData["nwb_bir_wt"] = "" // 新生儿出生体重 必填
- inputData["nwb_adm_wt"] = "" // 新生儿入院体重 必填
- inputData["opsp_diag_caty"] = "" // 门诊慢特病诊断 必填
- inputData["opsp_mdtrt_date"] = "" // 门诊慢特病就诊日期 必填
- inputData["ipt_med_type"] = "" // 住院医疗类型 必填
- inputData["adm_way"] = "" // 入院途径 必填
- inputData["trt_type"] = "10" // 治疗类别 必填
- inputData["adm_time"] = struct4101.AdmTime // 入院时间 必填
- inputData["adm_caty"] = struct4101.AdmCaty // 入院科别 必填
- inputData["refldept_dept"] = "" // 转科科别 必填
- inputData["dscg_time"] = struct4101.AdmEndTime // 出院时间 必填
- inputData["dscg_caty"] = struct4101.DscgCaty // 出院科别 必填
- inputData["act_ipt_days"] = "" // 实际住院天数 必填
- inputData["otp_wm_dise"] = "" // 门(急) 诊西医诊断 必填
- inputData["wm_dise_code"] = "" // 门(急) 诊中医诊断 必填
- inputData["otp_tcm_dise"] = "" // 西医诊断疾病代码 必填
- inputData["tcm_dise_code"] = "" // 中医诊断代码 必填
- inputData["oprn_oprt_code_cnt"] = "" // 手术操作代码计数 必填
- inputData["vent_used_dura"] = "" // 呼吸机使用时长 必填
- inputData["pwcry_bfadm_coma_dura"] = "" // 颅脑损伤患者入院前昏迷时长 必填
- inputData["pwcry_afadm_coma_dura"] = "" // 颅脑损伤患者入院后昏迷时长 必填
- inputData["bld_cat"] = "" // 输血品种 必填
- inputData["bld_amt"] = "" // 输血量 必填
- inputData["bld_unt"] = "" // 输血计量单位 必填
- inputData["spga_nurscare_days"] = "" // 特级护理天数 必填
- inputData["lv1_nurscare_days"] = "" // 一级护理天数 必填
- inputData["scd_nurscare_days"] = "" // 二级护理天数 必填
- inputData["lv3_nurscare_days"] = "" // 三级护理天数 必填
- inputData["acp_medins_name"] = "" // 拟接收机构名称 必填
- inputData["acp_optins_code"] = "" // 拟接收机构代码 必填
- inputData["bill_code"] = struct4101.BillCode // 票据代码 必填
- inputData["bill_no"] = struct4101.BillNo // 票据号码 必填
- inputData["biz_sn"] = struct4101.BizSn // 业务流水号 必填
- inputData["days_rinp_flag_31"] = "" // 出院 31 天内再住院计划标志 必填
- inputData["days_rinp_pup_31"] = "" // 出院 31 天内再住院目的 必填
- inputData["chfpdr_name"] = struct4101.DoctorName // 主诊医师姓名 必填
- inputData["chfpdr_code"] = struct4101.DoctorCode // 主诊医师代码 必填
- inputData["setl_begn_date"] = struct4101.SetlBegnDate // 结算开始日期 必填
- inputData["setl_end_date"] = struct4101.SetlEndDate // 结算结束日期 必填
- inputData["psn_selfpay"] = struct4101.PsnSelfPay // 个人自付 必填
- inputData["psn_ownpay"] = struct4101.PsnOwnPay // 个人自费 必填
- inputData["acct_pay"] = struct4101.AcctPay // 个人账户支出 必填
- inputData["hi_paymtd"] = struct4101.HiPaymtd // 医保支付方式 必填
- inputData["hsorg"] = struct4101.Hsorg // 医保机构 必填
- inputData["hsorg_opter"] = struct4101.HsorgOpter // 医保机构经办人 必填
- inputData["medins_fill_dept"] = struct4101.MedinsFillDept // 医疗机构填报部门 必填
- inputData["medins_fill_psn"] = struct4101.MedinsFillPsn // 医疗机构填报人 必填
- inputData["psn_cashpay"] = struct4101.PsnCashpay // 医疗机构填报人 必填
-
- payinfo := make([]map[string]interface{}, 0) // 基金支付信息
- for _, item := range struct4101.CustomStruct {
- payinfotemp := make(map[string]interface{})
- if item.FundPayType == "310100" || item.FundPayType == "310200" || item.FundPayType == "320100" || item.FundPayType == "330100" || item.FundPayType == "340100" || item.FundPayType == "350100" || item.FundPayType == "370100" || item.FundPayType == "390100" || item.FundPayType == "610100" || item.FundPayType == "640100" || item.FundPayType == "620100" {
- payinfotemp["fund_pay_type"] = item.FundPayType // 基金支付类型 必填
- payinfotemp["fund_payamt"] = item.FundPayamt // 基金支付金额
- payinfo = append(payinfo, payinfotemp)
- }
- }
- opspdiseinfo := make([]map[string]interface{}, 0) // 门诊慢特病诊断信息
-
- opspdiseinfotemp := make(map[string]interface{})
- opspdiseinfotemp["diag_name"] = struct4101.Diseinfo[len(struct4101.Diseinfo)-1].DiagName // 诊断名称 必填
- opspdiseinfotemp["diag_code"] = struct4101.Diseinfo[len(struct4101.Diseinfo)-1].DiagCode // 诊断代码 必填
- opspdiseinfotemp["oprn_oprt_name"] = "血液透析" // 手术操作名称 必填
- opspdiseinfotemp["oprn_oprt_code"] = "39.9500" // 手术操作代码 必填
- opspdiseinfo = append(opspdiseinfo, opspdiseinfotemp)
-
- diseinfo := make([]map[string]interface{}, 0) // 住院诊断信息
- for _, item := range struct4101.Diseinfo {
- diseinfotemp := make(map[string]interface{})
- diseinfotemp["maindiag_flag"] = item.MaindiagFlag // 手术操作代码 必填
- diseinfotemp["diag_type"] = item.DiagType // 诊断类别 必填
- diseinfotemp["diag_code"] = item.DiagCode // 诊断代码 必填
- diseinfotemp["diag_name"] = item.DiagName // 诊断名称 必填
- diseinfotemp["adm_cond_type"] = "3" // 入院病情类型 必填
- diseinfo = append(diseinfo, diseinfotemp)
- }
-
- iteminfo := make([]map[string]interface{}, 0)
- for _, item := range struct4101.IteminfoStruct {
- iteminfotemp := make(map[string]interface{})
- iteminfotemp["med_chrgitm"] = item.MedChrgitm // 医疗收费项目 必填
- iteminfotemp["amt"] = item.Amt // 金额 必填
- iteminfotemp["claa_sumfee"] = item.ClaaSumfee // 甲类费用合计 必填
- iteminfotemp["clab_amt"] = item.ClabAmt // 乙类金额 必填
- iteminfotemp["fulamt_ownpay_amt"] = item.FulamtOwnpayAmt // 全自费金额 必填
- iteminfotemp["oth_amt"] = item.OthAmt // 其他金额 必填
- iteminfo = append(iteminfo, iteminfotemp)
- }
-
- oprninfo := make([]map[string]interface{}, 0) // 手术操作信息
- oprninfotemp := make(map[string]interface{})
- oprninfotemp["oprn_oprt_type"] = "" // 手术操作类别 必填
- oprninfotemp["oprn_oprt_name"] = "" // 手术操作名称 必填
- oprninfotemp["oprn_oprt_code"] = "" // 手术操作代码 必填
- oprninfotemp["oprn_oprt_date"] = "" // 手术操作日期 必填
- oprninfotemp["anst_way"] = "" // 麻醉方式 必填
- oprninfotemp["oper_dr_name"] = "" // 术者医师姓名 必填
- oprninfotemp["oper_dr_code"] = "" // 术者医师代码 必填
- oprninfotemp["anst_dr_name"] = "" // 麻醉医师姓名 必填
- oprninfotemp["anst_dr_code"] = "" // 麻醉医师代码 必填
- oprninfo = append(oprninfo, oprninfotemp)
-
- icuinfo := make([]map[string]interface{}, 0) // 重症监护信息
- icuinfotemp := make(map[string]interface{})
- icuinfotemp["scs_cutd_ward_type"] = "" // 重症监护病房类型 必填
- icuinfotemp["scs_cutd_inpool_time"] = "" // 重症监护进入时间 必填
- icuinfotemp["scs_cutd_exit_time"] = "" // 重症监护退出时间 必填
- icuinfotemp["scs_cutd_sum_dura"] = "" // 重症监护合计时长 必填
- icuinfo = append(icuinfo, icuinfotemp)
-
- input["setlinfo"] = inputData
- input["payinfo"] = payinfo
- input["opspdiseinfo"] = opspdiseinfo
- input["diseinfo"] = diseinfo
- input["iteminfo"] = iteminfo
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := gdyb_url + "4101"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
-
- url = gdyb_url + "4101A"
-
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/4101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, string(bytesData)
- }
-
- func Gdyb4101For10138(struct4101 Struct4101, secret_key string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, org_id int64) (string, string) {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "4101A" // 交易编码
-
- year := time.Now().Format("2006")
- month := time.Now().Format("01")
- day := time.Now().Format("02")
- inputData["psn_no"] = struct4101.PsnNo // 结算 ID 必填
- inputData["mdtrt_id"] = struct4101.MdtrtId // 就诊 ID 必填(来自2201接口返回)
- inputData["setl_id"] = struct4101.SetlId // 结算 ID 必填
- inputData["hi_no"] = struct4101.PsnNo // 医保编号
- inputData["medcasno"] = struct4101.PsnNo // 病案号 必填
- inputData["dcla_time"] = year + "-" + month + "-" + day // 申报时间 必填
- inputData["ntly"] = struct4101.Ntly // 国籍 必填
- inputData["prfs"] = struct4101.Prfs // 职业 必填
- inputData["curr_addr"] = "" // 现住址 必填
- inputData["emp_name"] = "" // 单位名称 必填
- inputData["emp_addr"] = "" // 单位地址 必填
- inputData["emp_tel"] = ""
- inputData["poscode"] = "" // 邮编 必填
- inputData["coner_name"] = "" // 联系人姓名 必填
- inputData["patn_rlts"] = "" // 与患者关系 必填
- inputData["coner_addr"] = "" // 联系人地址 必填
- inputData["coner_tel"] = ""
-
- inputData["nwb_adm_type"] = "" // 新生儿入院类型 必填
- inputData["nwb_bir_wt"] = "" // 新生儿出生体重 必填
- inputData["nwb_adm_wt"] = "" // 新生儿入院体重 必填
-
- inputData["mul_nwb_bir_wt"] = "" // 新生儿入院体重 必填
- inputData["mul_nwb_adm_wt"] = "" // 新生儿入院体重 必填
-
- inputData["opsp_diag_caty"] = "" // 门诊慢特病诊断 必填
- inputData["opsp_mdtrt_date"] = "" // 门诊慢特病就诊日期 必填
-
- inputData["adm_way"] = "" // 入院途径 必填
- inputData["trt_type"] = "" // 治疗类别 必填
- inputData["adm_time"] = "" // 入院时间 必填
-
- inputData["refldept_dept"] = "" // 转科科别 必填
- inputData["dscg_time"] = "" // 出院时间 必填
- inputData["dscg_caty"] = "" // 出院科别 必填
-
- inputData["otp_wm_dise"] = "" // 门(急) 诊西医诊断 必填
- inputData["wm_dise_code"] = "" // 门(急) 诊中医诊断 必填
- inputData["otp_tcm_dise"] = "" // 西医诊断疾病代码 必填
- inputData["tcm_dise_code"] = "" // 中医诊断代码 必填
-
- inputData["vent_used_dura"] = "" // 呼吸机使用时长 必填
- inputData["pwcry_bfadm_coma_dura"] = "" // 颅脑损伤患者入院前昏迷时长 必填
- inputData["pwcry_afadm_coma_dura"] = "" // 颅脑损伤患者入院后昏迷时长 必填
-
- inputData["spga_nurscare_days"] = "" // 特级护理天数 必填
-
- inputData["lv1_nurscare_days"] = "" // 一级护理天数 必填
- inputData["scd_nurscare_days"] = "" // 二级护理天数 必填
- inputData["lv3_nurscare_days"] = "" // 三级护理天数 必填
- inputData["acp_medins_name"] = "" // 拟接收机构名称 必填
- inputData["acp_optins_code"] = "" // 拟接收机构代码 必填
- inputData["bill_code"] = struct4101.BillCode // 票据代码 必填
- inputData["bill_no"] = struct4101.BillNo // 票据号码 必填
- inputData["biz_sn"] = struct4101.BizSn // 业务流水号 必填
- inputData["hi_paymtd"] = "1" // 业务流水号 必填
-
- inputData["days_rinp_flag_31"] = "" // 出院 31 天内再住院计划标志 必填
- inputData["days_rinp_pup_31"] = "" // 出院 31 天内再住院目的 必填
- //inputData["chfpdr_name"] = struct4101.DoctorName // 主诊医师姓名 必填
- //inputData["chfpdr_code"] = struct4101.DoctorCode // 主诊医师代码 必填
- inputData["setl_begn_date"] = struct4101.SetlBegnDate // 结算开始日期 必填
- inputData["setl_end_date"] = struct4101.SetlEndDate // 结算结束日期 必填
- inputData["medins_fill_dept"] = struct4101.MedinsFillDept // 医疗机构填报部门 必填
- inputData["medins_fill_psn"] = struct4101.MedinsFillPsn // 医疗机构填报人 必填
-
- //payinfo := make([]map[string]interface{}, 0) // 基金支付信息
- //for _, item := range struct4101.CustomStruct {
- // payinfotemp := make(map[string]interface{})
- // if item.FundPayType == "310100" || item.FundPayType == "310200" || item.FundPayType == "320100" || item.FundPayType == "330100" || item.FundPayType == "340100" || item.FundPayType == "350100" || item.FundPayType == "370100" || item.FundPayType == "390100" || item.FundPayType == "610100" || item.FundPayType == "640100" || item.FundPayType == "620100" {
- // payinfotemp["fund_pay_type"] = item.FundPayType // 基金支付类型 必填
- // payinfotemp["fund_payamt"] = item.FundPayamt // 基金支付金额
- // payinfo = append(payinfo, payinfotemp)
- // }
- //}
- opspdiseinfo := make([]map[string]interface{}, 0) // 门诊慢特病诊断信息
-
- opspdiseinfotemp := make(map[string]interface{})
- opspdiseinfotemp["diag_name"] = struct4101.Diseinfo[len(struct4101.Diseinfo)-1].DiagName // 诊断名称 必填
- opspdiseinfotemp["diag_code"] = struct4101.Diseinfo[len(struct4101.Diseinfo)-1].DiagCode // 诊断代码 必填
- opspdiseinfotemp["oprn_oprt_name"] = "血液透析" // 手术操作名称 必填
- opspdiseinfotemp["oprn_oprt_code"] = "39.9500" // 手术操作代码 必填
- opspdiseinfo = append(opspdiseinfo, opspdiseinfotemp)
-
- //diseinfo := make([]map[string]interface{}, 0) // 住院诊断信息
- //for _, item := range struct4101.Diseinfo {
- // diseinfotemp := make(map[string]interface{})
- // diseinfotemp["maindiag_flag"] = item.MaindiagFlag // 手术操作代码 必填
- // diseinfotemp["diag_type"] = item.DiagType // 诊断类别 必填
- // diseinfotemp["diag_code"] = item.DiagCode // 诊断代码 必填
- // diseinfotemp["diag_name"] = item.DiagName // 诊断名称 必填
- // diseinfotemp["adm_cond_type"] = "3" // 入院病情类型 必填
- // diseinfo = append(diseinfo, diseinfotemp)
- //}
-
- //iteminfo := make([]map[string]interface{}, 0)
- //for _, item := range struct4101.IteminfoStruct {
- // iteminfotemp := make(map[string]interface{})
- // iteminfotemp["med_chrgitm"] = item.MedChrgitm // 医疗收费项目 必填
- // iteminfotemp["amt"] = item.Amt // 金额 必填
- // iteminfotemp["claa_sumfee"] = item.ClaaSumfee // 甲类费用合计 必填
- // iteminfotemp["clab_amt"] = item.ClabAmt // 乙类金额 必填
- // iteminfotemp["fulamt_ownpay_amt"] = item.FulamtOwnpayAmt // 全自费金额 必填
- // iteminfotemp["oth_amt"] = item.OthAmt // 其他金额 必填
- // iteminfo = append(iteminfo, iteminfotemp)
- //}
-
- oprninfo := make([]map[string]interface{}, 0) // 手术操作信息
- oprninfotemp := make(map[string]interface{})
- oprninfotemp["oprn_oprt_type"] = "" // 手术操作类别 必填
- oprninfotemp["oprn_oprt_name"] = "" // 手术操作名称 必填
- oprninfotemp["oprn_oprt_code"] = "" // 手术操作代码 必填
- oprninfotemp["oprn_oprt_date"] = "" // 手术操作日期 必填
- oprninfotemp["anst_way"] = "" // 麻醉方式 必填
- oprninfotemp["oper_dr_name"] = "" // 术者医师姓名 必填
- oprninfotemp["oper_dr_code"] = "" // 术者医师代码 必填
- oprninfotemp["anst_dr_name"] = "" // 麻醉医师姓名 必填
- oprninfotemp["anst_dr_code"] = "" // 麻醉医师代码 必填
- oprninfo = append(oprninfo, oprninfotemp)
-
- icuinfo := make([]map[string]interface{}, 0) // 重症监护信息
- icuinfotemp := make(map[string]interface{})
- icuinfotemp["scs_cutd_ward_type"] = "" // 重症监护病房类型 必填
- icuinfotemp["scs_cutd_inpool_time"] = "" // 重症监护进入时间 必填
- icuinfotemp["scs_cutd_exit_time"] = "" // 重症监护退出时间 必填
- icuinfotemp["scs_cutd_sum_dura"] = "" // 重症监护合计时长 必填
- icuinfo = append(icuinfo, icuinfotemp)
-
- input["setlinfo"] = inputData
- input["opspdiseinfo"] = opspdiseinfo
- //input["diseinfo"] = payinfo
- //input["oprninfo"] = payinfo
- //input["icuinfo"] = payinfo
- //input["bldinfo"] = payinfo
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
-
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := gdyb_url + "4101"
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
-
- url = gdyb_url + "4101A"
-
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/4101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- str := string(respBytes)
- fmt.Println(str)
- return str, string(bytesData)
- }
-
- //func Gdyb7101(psnNo string, insutype string, org_name string, doctor string, fixmedins_code string, doctor_id string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, sick_name string, sick_code string) string {
- // // 生成签名
- // nonce := GetRandomString(32)
- // timestamp := time.Now().Unix()
- // signature := setSignature(timestamp, nonce, secret_key)
- // tempTime := time.Unix(timestamp, 0)
- // //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- //
- // timeFormatTwo := tempTime.Format("2006-01-02")
- //
- // t := time.Now()
- // last := time.Date(t.Year(), time.December, 31, 0, 0, 0, 0, time.UTC)
- // tm := time.Unix(last.Unix(), 0)
- //
- // // 生成输入报文
- // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- // input := make(map[string]interface{})
- // inputData := make(map[string]interface{})
- //
- // inputData2 := make(map[string]interface{})
- //
- // inputMessage["infno"] = "7101" // 交易编码
- // inputData["hosp_rxno"] = psnNo // 人员编号 (来自1101接口返回)
- // inputData["init_rxno"] = insutype // 险种类型(来自1101接口返回)
- // inputData["rx_type_code"] = sick_code // 险种类型(来自1101接口返回)
- // inputData["prsc_time"] = sick_name // 险种类型(来自1101接口返回)
- // inputData["rx_drug_nums"] = insuplc_admdvs // 险种类型(来自1101接口返回)
- // inputData["rx_way_codg"] = fixmedins_code // 险种类型(来自1101接口返回)
- // inputData["rx_way_name"] = org_name // 险种类型(来自1101接口返回)
- // inputData["rx_freq_codg"] = timeFormatTwo // 险种类型(来自1101接口返回)
- // inputData["rx_freq_name"] = doctor_id // 开始时间
- // inputData["rx_dosunt"] = doctor // 开始时间
- // inputData["rx_doscnt"] = timeFormatTwo // 医师编码
- // inputData["rx_drord_dscr"] = "" // 医师编码
- // inputData["valid_days"] = "" // 医师编码
- // inputData["valid_end_time"] = tm.Format("2006-01-02") // 医师编码
- // inputData["rept_flag"] = tm.Format("2006-01-02") // 医师编码
- // inputData["max_rept_cnt"] = tm.Format("2006-01-02") // 医师编码
- // inputData["reptd_cnt"] = tm.Format("2006-01-02") // 医师编码
- // inputData["min_inrv_days"] = tm.Format("2006-01-02") // 医师编码
- // inputData["dr_sign_info"] = tm.Format("2006-01-02") // 医师编码
- // inputData["phar_sign_info"] = tm.Format("2006-01-02") // 医师编码
- // inputData["fixmedins_sign_info"] = tm.Format("2006-01-02") // 医师编码
- // inputData["rx_cotn_flag"] = tm.Format("2006-01-02") // 医师编码
- // inputData["rx_file"] = tm.Format("2006-01-02") // 医师编码
- // input["data"] = inputData
- //
- //
- // inputData2["med_list_codg"] = psnNo // 人员编号 (来自1101接口返回)
- // inputData2["fixmedins_hilist_id"] = insutype // 险种类型(来自1101接口返回)
- // inputData["hosp_prep_flag"] = sick_code // 险种类型(来自1101接口返回)
- // inputData["rx_item_type_code"] = sick_name // 险种类型(来自1101接口返回)
- // inputData["rx_item_type_name"] = insuplc_admdvs // 险种类型(来自1101接口返回)
- // inputData["tcmdrug_type_name"] = fixmedins_code // 险种类型(来自1101接口返回)
- // inputData["tcmdrug_type_code"] = org_name // 险种类型(来自1101接口返回)
- // inputData["tcmherb_foote"] = timeFormatTwo // 险种类型(来自1101接口返回)
- // inputData["medn_type_code"] = doctor_id // 开始时间
- // inputData["medn_type_name"] = doctor // 开始时间
- // inputData["main_medc_flag"] = timeFormatTwo // 医师编码
- // inputData["urgt_flag"] = "" // 医师编码
- // inputData["bas_medn_flag"] = "" // 医师编码
- // inputData["imp_drug_flag"] = tm.Format("2006-01-02") // 医师编码
- // inputData["prod_barc"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_prodname"] = tm.Format("2006-01-02") // 医师编码
- //
- // inputData["genname_codg"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_genname"] = tm.Format("2006-01-02") // 医师编码
- // inputData["chemname"] = tm.Format("2006-01-02") // 医师编码
- //
- // inputData["drugstdcode"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_dosform"] = tm.Format("2006-01-02") // 医师编码
- //
- //
- // inputData["drug_spec"] = tm.Format("2006-01-02") // 医师编码
- // inputData["prdr_name"] = tm.Format("2006-01-02") // 医师编码
- //
- //
- // inputData["drug_pric"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_cnt"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_cnt_unit"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_sumamt"] = tm.Format("2006-01-02") // 医师编码
- // inputData["medc_way_codg"] = tm.Format("2006-01-02") // 医师编码
- // inputData["medc_way_dscr"] = tm.Format("2006-01-02") // 医师编码
- // inputData["medc_starttime"] = tm.Format("2006-01-02") // 医师编码
- //
- // inputData["medc_endtime"] = tm.Format("2006-01-02") // 医师编码
- //
- //
- // inputData["medc_days"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_dosunt"] = tm.Format("2006-01-02") // 医师编码
- // inputData["sin_doscnt"] = tm.Format("2006-01-02") // 医师编码
- // inputData["sin_dosunt"] = tm.Format("2006-01-02") // 医师编码
- // inputData["used_frqu_codg"] = tm.Format("2006-01-02") // 医师编码
- //
- //
- // inputData["used_frqu_name"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_totlnt"] = tm.Format("2006-01-02") // 医师编码
- //
- // inputData["drug_totlnt_emp"] = tm.Format("2006-01-02") // 医师编码
- // inputData["dise_codg"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_res"] = tm.Format("2006-01-02") // 医师编码
- // inputData["drug_limit"] = tm.Format("2006-01-02") // 医师编码
- //
- //
- //
- //
- //
- //
- //
- //
- //
- // input["rxdrugdetail"] = inputData2
- //
- //
- //
- //
- // inputMessage["input"] = input //交易输入
- // bytesData, err := json.Marshal(inputMessage)
- // fmt.Println(string(bytesData))
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // reader := bytes.NewReader(bytesData)
- // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/2503"
- // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/2503"
- // gdyb_url := beego.AppConfig.String("gdyb_url")
- // gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- // url := gdyb_url + "2503"
- //
- // request, err := http.NewRequest("POST", url, reader)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- //
- // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- // request.Header.Set("x-tif-paasid", gdyb_paasid)
- // request.Header.Set("x-tif-signature", signature)
- // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- // request.Header.Set("x-tif-nonce", nonce)
- //
- // client := http.Client{}
- // resp, err := client.Do(request)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // respBytes, err := ioutil.ReadAll(resp.Body)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // str := string(respBytes)
- // fmt.Println(str)
- // return str
- //}
-
- // 生成签名
- func setSignature(timestamp int64, nonce string, secret_key string) string {
- fmt.Println(timestamp)
- fmt.Println(nonce)
- fmt.Println(secret_key)
- fmt.Println(strconv.FormatInt(timestamp, 10))
-
- str := strconv.FormatInt(timestamp, 10) + secret_key + nonce + strconv.FormatInt(timestamp, 10)
- hash := sha256.New()
- //输入数据
- hash.Write([]byte(str))
- //计算哈希值
- bytes := hash.Sum(nil)
- //将字符串编码为16进制格式,返回字符串
- hashCode := hex.EncodeToString(bytes)
- //返回哈希值
- return hashCode
- }
-
- const charset = "abcdefghijklmnopqrstuvwxyz" +
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-
- var seededRand *rand.Rand = rand.New(
- rand.NewSource(time.Now().UnixNano()))
-
- // 生成随机字符串
- func GetRandomString(l int) string {
-
- //str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- //bytes := []byte(str)
- //result := []byte{}
- //r := rand.New(rand.NewSource(time.Now().UnixNano()))
- //for i := 0; i < l; i++ {
- // result = append(result, bytes[r.Intn(len(bytes))])
- //}
- return String(32)
- }
- func StringWithCharset(length int, charset string) string {
- b := make([]byte, length)
- for i := range b {
- b[i] = charset[seededRand.Intn(len(charset))]
- }
- return string(b)
- }
-
- func String(length int) string {
- return StringWithCharset(length, charset)
- }
-
- // 生成基础报文
- func SetInputMessage(nonce string, timestamp int64, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string) map[string]interface{} {
- // 生成签名
- tempTime := time.Unix(timestamp, 0)
- //timeFormat := tempTime.Format("20060102150405")
- timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- //randNum := rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000)
-
- 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")
-
- msec := time.Now().Format("000")
-
- // 生成输入报文
-
- inputMessage := make(map[string]interface{})
- inputMessage["msgid"] = fixmedins_code + year + month + day + hour + min + sec + msec + "0" // 发送方报文 ID
- inputMessage["mdtrtarea_admvs"] = mdtrtarea_admvs // 就医地医保区划
- inputMessage["insuplc_admdvs"] = insuplc_admdvs // 参保地医保区划
- inputMessage["recer_sys_code"] = "1" // 接收方系统代码
- inputMessage["dev_no"] = "" // 设备编号
- inputMessage["dev_safe_info"] = "" // 设备安全信息
- inputMessage["cainfo"] = "" // 数字签名信息
- inputMessage["signtype"] = "MOCK" // 签名类型
- inputMessage["infver"] = "V1.0" // 接收方系统代码
- inputMessage["opter_type"] = "1" // 经办人类别
- inputMessage["opter"] = doctor // 经办人
- inputMessage["opter_name"] = doctor // 经办人姓名
- inputMessage["inf_time"] = timeFormatOne // 交易时间
- inputMessage["fixmedins_code"] = fixmedins_code // 定点医药机构编号
- inputMessage["fixmedins_name"] = org_name //定点医药机构名称
- if mdtrtarea_admvs == "440100" {
- inputMessage["sign_no"] = GetSignInInfo(fixmedins_code) //交易签到流水号
- } else {
- inputMessage["sign_no"] = "" //交易签到流水号
- }
- return inputMessage
- }
-
- func SetInputMessageThree(nonce string, timestamp int64, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, msg_id string) map[string]interface{} {
- // 生成签名
- tempTime := time.Unix(timestamp, 0)
- //timeFormat := tempTime.Format("20060102150405")
- timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- //randNum := rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000)
-
- // 生成输入报文
- inputMessage := make(map[string]interface{})
- inputMessage["msgid"] = msg_id // 发送方报文 ID
- inputMessage["mdtrtarea_admvs"] = mdtrtarea_admvs // 就医地医保区划
- inputMessage["insuplc_admdvs"] = insuplc_admdvs // 参保地医保区划
- inputMessage["recer_sys_code"] = "1" // 接收方系统代码
- inputMessage["dev_no"] = "" // 设备编号
- inputMessage["dev_safe_info"] = "" // 设备安全信息
- inputMessage["cainfo"] = "" // 数字签名信息
- inputMessage["signtype"] = "SM3" // 签名类型
- inputMessage["infver"] = "V1.0" // 接收方系统代码
- inputMessage["opter_type"] = "1" // 经办人类别
- inputMessage["opter"] = doctor // 经办人
- inputMessage["opter_name"] = doctor // 经办人姓名
- inputMessage["inf_time"] = timeFormatOne // 交易时间
- inputMessage["fixmedins_code"] = fixmedins_code // 定点医药机构编号
- inputMessage["fixmedins_name"] = org_name //定点医药机构名称
- if mdtrtarea_admvs == "440100" {
- inputMessage["sign_no"] = GetSignInInfo(fixmedins_code) //交易签到流水号
- } else {
- inputMessage["sign_no"] = "" //交易签到流水号
- }
- return inputMessage
- }
-
- func SetInputMessageTwo(nonce string, timestamp int64, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, sign_no string) map[string]interface{} {
- // 生成签名
- tempTime := time.Unix(timestamp, 0)
- //timeFormat := tempTime.Format("20060102150405")
- timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- //randNum := rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000)
-
- 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")
-
- msec := time.Now().Format("000")
-
- // 生成输入报文
- inputMessage := make(map[string]interface{})
- inputMessage["msgid"] = fixmedins_code + year + month + day + hour + min + sec + msec + "0" // 发送方报文 ID
- inputMessage["mdtrtarea_admvs"] = mdtrtarea_admvs // 就医地医保区划
- inputMessage["insuplc_admdvs"] = insuplc_admdvs // 参保地医保区划
- inputMessage["recer_sys_code"] = "1" // 接收方系统代码
- inputMessage["dev_no"] = "" // 设备编号
- inputMessage["dev_safe_info"] = "" // 设备安全信息
- inputMessage["cainfo"] = "" // 数字签名信息
- inputMessage["signtype"] = "SM3" // 签名类型
- inputMessage["infver"] = "V1.0" // 接收方系统代码
- inputMessage["opter_type"] = "1" // 经办人类别
- inputMessage["opter"] = doctor // 经办人
- inputMessage["opter_name"] = doctor // 经办人姓名
- inputMessage["inf_time"] = timeFormatOne // 交易时间
- inputMessage["fixmedins_code"] = fixmedins_code // 定点医药机构编号
- inputMessage["fixmedins_name"] = org_name //定点医药机构名称
- if mdtrtarea_admvs == "440100" {
- inputMessage["sign_no"] = GetSignInInfo(fixmedins_code) //交易签到流水号
- } else {
- inputMessage["sign_no"] = sign_no //交易签到流水号
- }
- return inputMessage
- }
-
- func postFile(filename string, target_url string) (*http.Response, error) {
- body_buf := bytes.NewBufferString("")
- body_writer := multipart.NewWriter(body_buf)
-
- // use the body_writer to write the Part headers to the buffer
- _, err := body_writer.CreateFormFile("userfile", filename)
- if err != nil {
- fmt.Println("error writing to buffer")
- return nil, err
- }
-
- // the file data will be the second part of the body
- fh, err := os.Open(filename)
- if err != nil {
- fmt.Println("error opening file")
- return nil, err
- }
- // need to know the boundary to properly close the part myself.
- boundary := body_writer.Boundary()
- //close_string := fmt.Sprintf("\r\n--%s--\r\n", boundary)
- close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary))
-
- // use multi-reader to defer the reading of the file data until
- // writing to the socket buffer.
- request_reader := io.MultiReader(body_buf, fh, close_buf)
- fi, err := fh.Stat()
- if err != nil {
- fmt.Printf("Error Stating file: %s", filename)
- return nil, err
- }
- req, err := http.NewRequest("POST", target_url, request_reader)
- if err != nil {
- return nil, err
- }
-
- // Set headers for multipart, and Content Length
- req.Header.Add("Content-Type", "multipart/form-data; boundary="+boundary)
- req.ContentLength = fi.Size() + int64(body_buf.Len()) + int64(close_buf.Len())
-
- return http.DefaultClient.Do(req)
- }
-
- //func Gdyb1201(psnNo string, org_name string, doctor string) string {
- // // 生成签名
- // nonce := GetRandomString(32)
- // timestamp := time.Now().Unix()
- // signature := setSignature(timestamp, nonce)
- //
- // // 生成输入报文
- // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, "")
- // input := make(map[string]interface{})
- // inputData := make(map[string]interface{})
- // inputMessage["infno"] = "1201" // 交易编码
- // inputData["fixmedins_type"] = psnNo // 人员编号 (来自1101接口返回)
- // inputData["fixmedins_name"] = org_name // 人员编号 (来自1101接口返回)
- // inputData["fixmedins_code"] = "" // 人员编号 (来自1101接口返回)
- //
- // input["medinsinfo"] = inputData
- // inputMessage["input"] = input //交易输入
- //
- // bytesData, err := json.Marshal(inputMessage)
- // fmt.Println(string(bytesData))
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // reader := bytes.NewReader(bytesData)
- //
- // url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1201"
- // request, err := http.NewRequest("POST", url, reader)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- //
- // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- // request.Header.Set("x-tif-paasid", "test_hosp")
- // request.Header.Set("x-tif-signature", signature)
- // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- // request.Header.Set("x-tif-nonce", nonce)
- //
- // client := http.Client{}
- // resp, err := client.Do(request)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // respBytes, err := ioutil.ReadAll(resp.Body)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // str := string(respBytes)
- // fmt.Println(str)
- // return str
- //}
-
- func newfileUploadRequest(uri string, params map[string]string, paramName, path string) (*http.Request, error) {
- file, err := os.Open(path)
- if err != nil {
- return nil, err
- }
- defer file.Close()
-
- body := &bytes.Buffer{}
- writer := multipart.NewWriter(body)
- part, err := writer.CreateFormFile(paramName, filepath.Base(path))
- if err != nil {
- return nil, err
- }
- _, err = io.Copy(part, file)
-
- for key, val := range params {
- _ = writer.WriteField(key, val)
- }
- err = writer.Close()
- if err != nil {
- return nil, err
- }
-
- req, err := http.NewRequest("POST", uri, body)
- req.Header.Set("Content-Type", writer.FormDataContentType())
- return req, err
- }
-
- func CreateMedicalInsuranceCostCompareRecord(record *models.MedicalInsuranceCostCompare) error {
- err := writeDb.Save(&record).Error
- return err
- }
-
- //func Gdyb5203(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) string {
- // // 生成签名
- // nonce := GetRandomString(32)
- // timestamp := time.Now().Unix()
- // signature := setSignature(timestamp, nonce, secret_key)
- //
- // // 生成输入报文
- // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- // input := make(map[string]interface{})
- // inputData := make(map[string]interface{})
- // inputMessage["infno"] = "5203" // 交易编码
- //
- // inputData["fixmedins_type"] = "1"
- // inputData["fixmedins_name"] = org_name
- // inputData["fixmedins_code"] = fixmedins_code
- // input["medinsinfo"] = inputData
- // inputMessage["input"] = input //交易输入
- //
- // bytesData, err := json.Marshal(inputMessage)
- // fmt.Println(string(bytesData))
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // reader := bytes.NewReader(bytesData)
- // url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1201"
- // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1201"
- // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- // request, err := http.NewRequest("POST", url, reader)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- //
- // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- // request.Header.Set("x-tif-paasid", "sg03_prd")
- // request.Header.Set("x-tif-signature", signature)
- // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- // request.Header.Set("x-tif-nonce", nonce)
- //
- // client := http.Client{}
- // resp, err := client.Do(request)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // respBytes, err := ioutil.ReadAll(resp.Body)
- // if err != nil {
- // fmt.Println(err.Error())
- // return err.Error()
- // }
- // fmt.Println(string(respBytes))
- // str := string(respBytes)
- // return str
- //}
-
- func CreatePsnRecord(record *models.GdybPsnRecord) {
- writeDb.Save(&record)
- return
- }
-
- func GetPsnRecordById(id int64) (record models.GdybPsnRecord, err error) {
- err = readDb.Model(&models.GdybPsnRecord{}).Where("id = ?").First(&record).Error
- return
- }
-
- func CreatePsnNCDSRecord(record *models.GdybPsnNcdsRecord) {
- writeDb.Save(&record)
- return
- }
-
- func GetPsnNCDSRecordById(id int64) (record models.GdybPsnNcdsRecord, err error) {
- err = readDb.Model(&models.GdybPsnNcdsRecord{}).Where("id = ?", id).First(&record).Error
- return
- }
-
- func GetPatientsByIds(ids []string, current_org_id int64) (patients []*models.Patients, err error) {
- err = readDb.Model(&models.Patients{}).Where("id IN (?) AND user_org_id = ?", ids, current_org_id).Find(&patients).Error
- return
- }
-
- func Gdyb2601(psnNo string, omsgid string, oinfno string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "2601" // 交易编码
- inputData["psn_no"] = psnNo
- inputData["omsgid"] = omsgid
- inputData["oinfno"] = oinfno
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- url := gdyb_url + "2601"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- //人员信息版本3
- func Gdyb1101B(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates int64, name string, cardNumber string) string {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
-
- if certificates == 3 {
- inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
- inputData["certno"] = "01836483" // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
- inputData["mdtrt_cert_no"] = "01836483" // 就诊凭证编号
-
- } else {
- if certificates == 1 {
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["card_sn"] = card_sn // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
- inputData["mdtrt_cert_no"] = cardNumber // 就诊凭证编号
-
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- }
-
- } else if certificates == 6 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "17" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- }
-
- }
-
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = name // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "1101"
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
-
- fmt.Println(url)
- fmt.Println(gdyb_paasid)
- fmt.Println(secret_key)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str
- }
-
- func Gdyb1101f(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates int64, name string, cardNumber string) string {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
-
- if certificates == 3 {
- inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
- inputData["certno"] = "01836483" // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
- inputData["mdtrt_cert_no"] = "01836483" // 就诊凭证编号
-
- } else {
- if certificates == 1 {
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- }
-
- } else if certificates == 6 {
- inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "" // 人员证件类型
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
-
- }
-
- }
-
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = "" // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "1101"
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
-
- fmt.Println(url)
- fmt.Println(gdyb_paasid)
- fmt.Println(secret_key)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str
- }
-
- func Gdyb1101G(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates int64, name string, cardNumber string) string {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
-
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["card_sn"] = card_sn // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
- inputData["mdtrt_cert_no"] = cardNumber // 就诊凭证编号
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = name // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "1101"
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
-
- fmt.Println(url)
- fmt.Println(gdyb_paasid)
- fmt.Println(secret_key)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str
- }
-
- func Gdyb1101ForEleCert(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, token string, user_name string, idNo string) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
-
- inputData["mdtrt_cert_type"] = "01" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = idNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
-
- inputData["mdtrt_cert_no"] = token // 就诊凭证编号
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = user_name // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "1101"
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
-
- fmt.Println(url)
- fmt.Println(gdyb_paasid)
- fmt.Println(secret_key)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, string(bytesData)
-
- }
-
- func Gdyb1101ForEleCerttwo(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, token string, user_name string, idNo string) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
-
- inputData["mdtrt_cert_type"] = "01" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = idNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
-
- inputData["mdtrt_cert_no"] = token // 就诊凭证编号
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = user_name // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "1101"
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
-
- fmt.Println(url)
- fmt.Println(gdyb_paasid)
- fmt.Println(secret_key)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, string(bytesData)
-
- }
-
- func Gdyb6101(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "6101" // 交易编码
-
- inputData["orgId"] = fixmedins_code // 就诊凭证类型
- inputData["businessType"] = "01101" // 卡识别码
- inputData["businessInfo"] = "" // 证件号码
- inputData["operateorId"] = "01" // 人员证件类型
- inputData["operateornName"] = doctor // 就诊凭证编号
- inputData["officeId"] = "01" // 开始时间
- inputData["officeName"] = "血透" // 人员姓名
- inputData["deviceType"] = "" // 人员姓名
- input["InData"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- //url := gdyb_url + "1101"
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
-
- fmt.Println(url)
- fmt.Println(gdyb_paasid)
- fmt.Println(secret_key)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, string(bytesData)
-
- }
-
- //人员信息版本4
- func Gdyb1101C(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates int64) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- //signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
-
- if certificates == 3 {
- inputData["mdtrt_cert_type"] = "99" // 就诊凭证类型
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "99" // 人员证件类型
-
- } else {
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = "" // 证件号码
- inputData["psn_cert_type"] = "" // 人员证件类型
-
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "1" // 人员证件类型
- }
- }
-
- inputData["mdtrt_cert_no"] = "" // 就诊凭证编号
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = "" // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
- return string(out), string(bytesData)
- }
-
- func StrPtr(s string) uintptr {
- return uintptr(unsafe.Pointer(syscall.StringBytePtr(s)))
- }
-
- func Gdyb90991(psn_no string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, pwd string, card_number string) string {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "90991" // 交易编码
-
- inputData["fixmedins_code"] = fixmedins_code // 就诊凭证编号
- inputData["psn_no"] = psn_no // 开始时间
- inputData["card_pwd"] = pwd // 人员姓名
- inputData["sscno"] = card_number // 人员姓名
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- url := gdyb_url + "90991"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str
- }
- func Gdyb90100(psn_no string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) string {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "90100" // 交易编码
- inputData["psn_no"] = psn_no // 开始时间
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- url := gdyb_url + "90100"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str
- }
-
- func Gdyb3260(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, year string, month string, sign string, count int) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessageTwo(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, sign)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3260" // 交易编码
- inputData["sign"] = sign // 就诊凭证编号
- inputData["trt_year"] = year // 就诊凭证编号
- inputData["trt_month"] = month // 开始时间
- inputData["startrow"] = count // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- var inputLog string
- bytesData, err := json.Marshal(inputMessage)
- inputLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "3260"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
- return hex.EncodeToString(out), inputLog
- } else {
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, inputLog
-
- }
-
- }
- func Gdyb3261(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, year string, month string, result3260 models.Result3260, sign_no string) {
-
- //msg_month := time.Unix(1557042972, 0).Format("1")
- //msg_year := time.Now().Format("2006")
- //msg_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")
- //
- //msec := time.Now().Format("000")
-
- //msg_id := fixmedins_code + msg_year + msg_month + day + hour + min + sec + msec + "0"
-
- //生成输入报文
-
- var curpage int
- var pagesize int = 10
- var start int = 1
- var stop int
- //pagecount := 10
- pagecount := int(math.Ceil(float64(len(result3260.Output.Data)) / float64(pagesize)))
-
- for curpage = 1; curpage <= pagecount; curpage++ {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- inputMessage := SetInputMessageTwo(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, sign_no)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3261" // 交易编码
- inputData["trt_year"] = year // 就诊凭证编号
- inputData["trt_month"] = month // 开始时间
- feedetail := make([]map[string]interface{}, 0)
- if curpage == 1 {
- start = 1
- } else {
- start = (curpage-1)*pagesize + 1
- }
- stop = curpage * pagesize
- if stop > len(result3260.Output.Data) {
- stop = len(result3260.Output.Data)
- }
-
- for _, item := range result3260.Output.Data[start-1 : stop] {
- if item.MdtrtId != "out20230406681871" && item.MdtrtId != "out20230406681868" && item.MdtrtId != "out202306301104036" {
- if item.SetlSn != "420100G9000712542625" {
- feedetailInfo := make(map[string]interface{})
- feedetailInfo["certno"] = item.Certno
- feedetailInfo["mdtrt_id"] = item.MdtrtId // 就诊 ID(来自2201接口返回)
- feedetailInfo["mdtrt_setl_time"] = item.MdtrtSetlTime // 人员编号 (来自1101接口返回)
- feedetailInfo["setl_sn"] = item.SetlSn // 收费批次号
- feedetailInfo["medfee_sumamt"] = item.MedfeeSumamt // 病种编码
- feedetailInfo["optins_pay_sumamt"] = item.OptinsPaySumamt // 处方号
- feedetailInfo["cnfm_flag"] = "1" // 处方号
- feedetail = append(feedetail, feedetailInfo)
- }
- }
-
- }
- for _, item := range result3260.Output.Data[start-1 : stop] {
- if item.MdtrtId == "out20230406681871" {
- feedetailInfo := make(map[string]interface{})
- feedetailInfo["certno"] = item.Certno
- feedetailInfo["mdtrt_id"] = item.MdtrtId // 就诊 ID(来自2201接口返回)
- feedetailInfo["mdtrt_setl_time"] = item.MdtrtSetlTime // 人员编号 (来自1101接口返回)
- feedetailInfo["setl_sn"] = item.SetlSn // 收费批次号
- feedetailInfo["medfee_sumamt"] = item.MedfeeSumamt // 病种编码
- feedetailInfo["optins_pay_sumamt"] = item.OptinsPaySumamt // 处方号
- feedetailInfo["cnfm_flag"] = "0" // 处方号
- feedetail = append(feedetail, feedetailInfo)
- }
-
- }
- for _, item := range result3260.Output.Data[start-1 : stop] {
- if item.MdtrtId == "out20230406681868" {
- feedetailInfo := make(map[string]interface{})
- feedetailInfo["certno"] = item.Certno
- feedetailInfo["mdtrt_id"] = item.MdtrtId // 就诊 ID(来自2201接口返回)
- feedetailInfo["mdtrt_setl_time"] = item.MdtrtSetlTime // 人员编号 (来自1101接口返回)
- feedetailInfo["setl_sn"] = item.SetlSn // 收费批次号
- feedetailInfo["medfee_sumamt"] = item.MedfeeSumamt // 病种编码
- feedetailInfo["optins_pay_sumamt"] = item.OptinsPaySumamt // 处方号
- feedetailInfo["cnfm_flag"] = "0" // 处方号
- feedetail = append(feedetail, feedetailInfo)
- }
-
- }
- for _, item := range result3260.Output.Data[start-1 : stop] {
- if item.MdtrtId == "out20230418732788" {
- feedetailInfo := make(map[string]interface{})
- feedetailInfo["certno"] = item.Certno
- feedetailInfo["mdtrt_id"] = item.MdtrtId // 就诊 ID(来自2201接口返回)
- feedetailInfo["mdtrt_setl_time"] = item.MdtrtSetlTime // 人员编号 (来自1101接口返回)
- feedetailInfo["setl_sn"] = item.SetlSn // 收费批次号
- feedetailInfo["medfee_sumamt"] = item.MedfeeSumamt // 病种编码
- feedetailInfo["optins_pay_sumamt"] = item.OptinsPaySumamt // 处方号
- feedetailInfo["cnfm_flag"] = "0" // 处方号
- feedetail = append(feedetail, feedetailInfo)
- }
-
- }
- //for _, item := range result3260.Output.Data[start-1 : stop] {
- // if item.SetlSn == "420100G9000712542625" {
- // feedetailInfo := make(map[string]interface{})
- // feedetailInfo["certno"] = item.Certno
- // feedetailInfo["mdtrt_id"] = item.MdtrtId // 就诊 ID(来自2201接口返回)
- // feedetailInfo["mdtrt_setl_time"] = item.MdtrtSetlTime // 人员编号 (来自1101接口返回)
- // feedetailInfo["setl_sn"] = item.SetlSn // 收费批次号
- // feedetailInfo["medfee_sumamt"] = item.MedfeeSumamt // 病种编码
- // feedetailInfo["optins_pay_sumamt"] = item.OptinsPaySumamt // 处方号
- // feedetailInfo["cnfm_flag"] = "0" // 处方号
- // feedetail = append(feedetail, feedetailInfo)
- // }
- //
- //}
-
- inputData["totalrow"] = 180 // 人员姓名
-
- // 创建一个新的 Excel 文件
- //f := excelize.NewFile()
-
- // 创建一个工作表
- //index := f.NewSheet("Sheet1")
-
- //for index, item := range result3260.Output.Data[start-1 : stop] {
- //// // 设置单元格的值
- // in := strconv.FormatInt(int64(index+1),10)
- // f.SetCellValue("Sheet1", "A" +in , item.Certno)
- // f.SetCellValue("Sheet1", "B"+in, item.MdtrtId)
- // f.SetCellValue("Sheet1", "C"+in, item.SetlSn)
- //}
- //
- //
- //// 设置活动工作表
- //f.SetActiveSheet(index)
- //in2 := strconv.FormatInt(int64(curpage+1),10)
- //
- //
- //// 保存文件
- //if err := f.SaveAs("output"+in2+".xlsx"); err != nil {
- // panic(err)
- //}
-
- input["data"] = inputData
- input["detail"] = feedetail
- inputMessage["input"] = input //交易输入
- //var inputLog string
- bytesData, err := json.Marshal(inputMessage)
- //inputLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "3261"
- }
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- fmt.Println(str)
- //return str, inputLog, msg_id
- }
- return
- }
- func Gdyb3262(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, year string, month string, otransid string, sign_no string) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessageTwo(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs, sign_no)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3262" // 交易编码
-
- inputData["trt_year"] = year // 就诊凭证编号
- inputData["trt_month"] = "06" // 开始时间
- inputData["otransid"] = "0" // 开始时间
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- var inputLog string
- bytesData, err := json.Marshal(inputMessage)
- inputLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "3262"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
- return hex.EncodeToString(out), inputLog
- } else {
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, inputLog
-
- }
-
- }
- func Gdyb9001(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, admin_user_id int64) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, "d6Ad0P1B3z6Dsdst0gYAFPlz8YlIvFDx")
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "9001" // 交易编码
- inputData["opter_no"] = admin_user_id // 就诊凭证编号
- inputData["mac"] = "11-11-11-11-11" // 开始时间
- inputData["ip"] = "11.11.11.11"
- inputData["userid"] = "H44010400081"
-
- 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")
- custom_time := year + month + day + hour + min + sec
- inputData["currenttime"] = custom_time
- var psd string
- psd = custom_time + "Gzyb$867"
- h := md5.New()
- h.Write([]byte(psd))
- inputData["password"] = strings.ToUpper(hex.EncodeToString(h.Sum(nil)))
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- var inputLog string
- bytesData, err := json.Marshal(inputMessage)
- inputLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "9001"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
- return hex.EncodeToString(out), inputLog
- } else {
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- fmt.Println(string(bytesData))
- fmt.Println(gdyb_url)
- fmt.Println(gdyb_paasid)
- fmt.Println(request.Header)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, inputLog
-
- }
-
- }
-
- func Gdyb9001Two(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, admin_user_id int64) (string, string) {
- //生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "9001" // 交易编码
- inputData["opter_no"] = admin_user_id // 就诊凭证编号
- inputData["mac"] = GetMac() // 开始时间
- inputData["ip"] = GetLocalIp()
- input["signIn"] = inputData
- inputMessage["input"] = input //交易输入
- var inputLog string
- bytesData, err := json.Marshal(inputMessage)
- inputLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "9001"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
- return hex.EncodeToString(out), inputLog
- } else {
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
-
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- fmt.Println(string(bytesData))
- fmt.Println(gdyb_url)
- fmt.Println(gdyb_paasid)
- fmt.Println(request.Header)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, inputLog
-
- }
-
- }
-
- //获取本机ip
- func GetLocalIp() string {
- addrs, err := net.InterfaceAddrs()
- if err != nil {
- fmt.Println("get local ip failed")
- }
- for _, address := range addrs {
- if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
- if ipnet.IP.To4() != nil {
- return ipnet.IP.String()
- }
- }
- }
- return ""
- }
-
- //获取本机Mac
- func GetMac() string {
- interfaces, err := net.Interfaces()
- if err != nil {
- fmt.Println("Get loacl Mac failed")
- }
- for _, inter := range interfaces {
- mac := inter.HardwareAddr
- fmt.Println("+======" + mac.String())
- if mac.String() != "" {
- return mac.String()
- }
-
- }
- return ""
- }
-
- // 人员基本信息
- func Gdyb1101D(certNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, id_card_type int64, card_sn string, certificates string, psn_name string, record_date string) (string, string) {
- //生成签名
- fmt.Println("DDDDD")
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
- //生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "1101" // 交易编码
-
- if certificates == "3" {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "99" // 人员证件类型
-
- } else {
- if certificates == "1" {
- if id_card_type == 1 {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
-
- } else if id_card_type == 4 {
- inputData["mdtrt_cert_type"] = "01" // 就诊凭证类型
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
-
- } else {
- inputData["mdtrt_cert_type"] = "02" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "01" // 人员证件类型
- }
- } else if certificates == "6" {
- inputData["mdtrt_cert_type"] = "03" // 就诊凭证类型
- inputData["card_sn"] = "" // 卡识别码
- inputData["certno"] = certNo // 证件号码
- inputData["psn_cert_type"] = "17" // 人员证件类型
-
- }
-
- }
-
- inputData["mdtrt_cert_no"] = certNo // 就诊凭证编号
- inputData["begntime"] = "" // 开始时间
- inputData["psn_name"] = "" // 人员姓名
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- var inputLog string
- bytesData, err := json.Marshal(inputMessage)
- inputLog = string(bytesData)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- reader := bytes.NewReader(bytesData)
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
-
- //DllDef := syscall.MustLoadDLL("yh_hb_sctrl.dll")
- //Iinit := DllDef.MustFindProc("yh_hb_call")
- //var str3 string
- //ret, _, _ := Iinit.Call(StrPtr("1101"), StrPtr(string(bytesData)), StrPtr(str3))
- //fmt.Println(ret)
- //fmt.Println(str3)
- //
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- var url string
- if fixmedins_code == "H15049901371" {
- url = gdyb_url
- } else {
- url = gdyb_url + "1101"
- }
-
- if insuplc_admdvs == "421300" {
- var json2 string
- cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", "1101", string(bytesData), json2)
- out, err := cmd.Output()
- if err != nil {
- fmt.Println("error:", err.Error())
- }
- fmt.Println(string(out))
- return hex.EncodeToString(out), inputLog
- } else {
-
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error(), ""
- }
- fmt.Println(string(respBytes))
- str := string(respBytes)
- return str, inputLog
-
- }
-
- }
-
- //func SetInputMessageFour(nonce string, timestamp int64, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string) map[string]interface{} {
- // // 生成签名
- // //tempTime := time.Unix(timestamp, 0)
- // //timeFormat := tempTime.Format("20060102150405")
- // //timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- // //randNum := rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000)
- //
- // msec := time.Now().Format("000")
- // fmt.Println(utils.GetNetTime())
- // // 生成输入报文
- // inputMessage := make(map[string]interface{})
- // inputMessage["msgid"] = fixmedins_code + utils.GetNetTime() + msec + "0" // 发送方报文 ID
- // inputMessage["mdtrtarea_admvs"] = mdtrtarea_admvs // 就医地医保区划
- // inputMessage["insuplc_admdvs"] = insuplc_admdvs // 参保地医保区划
- // inputMessage["recer_sys_code"] = "1" // 接收方系统代码
- // inputMessage["dev_no"] = "" // 设备编号
- // inputMessage["dev_safe_info"] = "" // 设备安全信息
- // inputMessage["cainfo"] = "" // 数字签名信息
- // inputMessage["signtype"] = "SM3" // 签名类型
- // inputMessage["infver"] = "V1.0" // 接收方系统代码
- // inputMessage["opter_type"] = "1" // 经办人类别
- // inputMessage["opter"] = doctor // 经办人
- // inputMessage["opter_name"] = doctor // 经办人姓名
- // inputMessage["inf_time"] = utils.GetNetTime() // 交易时间
- // inputMessage["fixmedins_code"] = fixmedins_code // 定点医药机构编号
- // inputMessage["fixmedins_name"] = org_name //定点医药机构名称
- // inputMessage["sign_no"] = "" //交易签到流水号
- // return inputMessage
- //}
-
- func Gdyb5302(psnNo string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "5302" // 交易编码
- inputData["psn_no"] = psnNo // 人员编号 (来自1101接口返回)
- inputData["biz_appy_type"] = "03" // 人员编号 (来自1101接口返回)
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "5302"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- func CreateSignIn(record *models.HisSignIn) (err error) {
- err = writeDb.Save(&record).Error
- return
- }
-
- func GetSignInInfo(code string) string {
- var sign models.HisSignIn
- err = readDb.Model(&models.HisSignIn{}).Where("fixmedins_code = ? AND status = 1", code).Last(&sign).Error
- return sign.SignNo
- }
-
- func Gdyb3501(struct3501 models.Struct3501, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetGdInputMessage(timestamp, struct3501.OrgName, struct3501.Opter, struct3501.FixmedinsHilistId, struct3501.InsuplcAdmdvs, struct3501.MdtrtareaAdmvs, struct3501.Cainfo)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3501" // 交易编码
- inputData["med_list_codg"] = struct3501.MedListCodg // 定点医药机构目录编号
- inputData["fixmedins_hilist_id"] = struct3501.FixmedinsHilistId // 定点医药机构目录编号
- inputData["fixmedins_hilist_name"] = struct3501.OrgName // 定点医药机构目录名称
- inputData["rx_flag"] = struct3501.RxFlag //
- inputData["invdate"] = struct3501.Invdate // 人员编号 (来自1101接口返回)
- inputData["inv_cnt"] = struct3501.InvCnt // 人员编号 (来自1101接口返回)
- inputData["manu_lotnum"] = struct3501.ManuLotnum // 人员编号 (来自1101接口返回)
- inputData["fixmedins_bchno"] = struct3501.FixmedinsBchno // 人员编号 (来自1101接口返回)
- inputData["manu_date"] = struct3501.ManuDate // 人员编号 (来自1101接口返回)
- inputData["expy_end"] = struct3501.ExpyEnd // 人员编号 (来自1101接口返回)
- inputData["memo"] = "" // 人员编号 (来自1101接口返回)
- input["invinfo"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3501"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb3502(struct3502 models.Struct3502, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetGdInputMessage(timestamp, struct3502.OrgName, struct3502.Opter, struct3502.FixmedinsCode, struct3502.InsuplcAdmdvs, struct3502.MdtrtareaAdmvs, struct3502.Cainfo)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3502" // 交易编码
- inputData["med_list_codg"] = struct3502.MedListCodg // 定点医药机构目录编号
- inputData["inv_chg_type"] = struct3502.InvChgType // 定点医药机构目录编号
-
- inputData["fixmedins_hilist_id"] = struct3502.FixmedinsCode // 定点医药机构目录编号
- inputData["fixmedins_hilist_name"] = struct3502.OrgName // 定点医药机构目录名称
- inputData["fixmedins_bchno"] = struct3502.FixmedinsBchno // 人员编号 (来自1101接口返回)
- inputData["pric"] = struct3502.Pric // 人员编号 (来自1101接口返回)
- inputData["cnt"] = struct3502.Cnt // 人员编号 (来自1101接口返回)
- inputData["rx_flag"] = struct3502.RxFlag //
-
- inputData["inv_chg_time"] = struct3502.InvChgTime // 人员编号 (来自1101接口返回)
- inputData["inv_chg_opter_name"] = "" // 人员编号 (来自1101接口返回)
- inputData["memo"] = struct3502.Memo // 人员编号 (来自1101接口返回)
- inputData["trdn_flag"] = "" // 人员编号 (来自1101接口返回)
-
- input["invinfo"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3502"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb3503(struct3503 models.Struct3503, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetGdInputMessage(timestamp, struct3503.OrgName, struct3503.Opter, struct3503.FixmedinsHilistId, struct3503.InsuplcAdmdvs, struct3503.MdtrtareaAdmvs, struct3503.Cainfo)
-
- input := make(map[string]interface{})
-
- inputMessage["infno"] = "3503"
-
- item := struct3503
- feedetailInfo := make(map[string]interface{})
- feedetailInfo["med_list_codg"] = item.MedListCodg
- feedetailInfo["fixmedins_hilist_id"] = item.FixmedinsHilistId
- feedetailInfo["fixmedins_hilist_name"] = item.FixmedinsHilistName
- feedetailInfo["dynt_no"] = ""
- feedetailInfo["fixmedins_bchno"] = item.FixmedinsBchno // 人员编号 (来自1101接口返回)
- feedetailInfo["spler_name"] = item.SplerName // 人员编号 (来自1101接口返回)
- feedetailInfo["spler_pmtno"] = "" // 人员编号 (来自1101接口返回)
- feedetailInfo["manu_lotnum"] = item.ManuLotnum // 人员编号 (来自1101接口返回)
- feedetailInfo["prodentp_name"] = item.ProdentpName // 人员编号 (来自1101接口返回)
- feedetailInfo["aprvno"] = item.Aprvno // 人员编号 (来自1101接口返回)
- feedetailInfo["manu_date"] = item.ManuDate // 人员编号 (来自1101接口返回)
- feedetailInfo["expy_end"] = item.ExpyEnd // 人员编号 (来自1101接口返回)
- feedetailInfo["finl_trns_pric"] = item.FinlTrnsPric // 人员编号 (来自1101接口返回)
- feedetailInfo["purc_retn_cnt"] = item.PurcRetnCnt // 人员编号 (来自1101接口返回)
- feedetailInfo["purc_invo_codg"] = item.PurcInvoCodg // 人员编号 (来自1101接口返回)
- feedetailInfo["purc_invo_no"] = item.PurcInvoNo // 人员编号 (来自1101接口返回)
- feedetailInfo["rx_flag"] = item.RxFlag // 人员编号 (来自1101接口返回)
- feedetailInfo["purc_retn_stoin_time"] = item.PurcRetnStoinTime // 人员编号 (来自1101接口返回)
- feedetailInfo["purc_retn_opter_name"] = item.PurcRetnOpterName // 人员编号 (来自1101接口返回)
- feedetailInfo["prod_geay_flag"] = "" // 人员编号 (来自1101接口返回)
- feedetailInfo["memo"] = "" // 人员编号 (来自1101接口返回)
- input["purcinfo"] = feedetailInfo
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3503"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb3504(struct3504 models.Struct3504, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetGdInputMessage(timestamp, struct3504.OrgName, struct3504.Opter, struct3504.FixmedinsCode, struct3504.InsuplcAdmdvs, struct3504.MdtrtareaAdmvs, struct3504.Cainfo)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3504" // 交易编码
- inputData["med_list_codg"] = struct3504.MedListCodg // 定点医药机构目录编号
- inputData["fixmedins_hilist_id"] = struct3504.FixmedinsHilistId // 定点医药机构目录编号
- inputData["fixmedins_hilist_name"] = struct3504.FixmedinsHilistName // 定点医药机构目录名称
- inputData["fixmedins_bchno"] = struct3504.FixmedinsBchno // 人员编号 (来自1101接口返回)
- inputData["spler_name"] = struct3504.SplerName // 人员编号 (来自1101接口返回)
- inputData["spler_pmtno"] = "" // 人员编号 (来自1101接口返回)
-
- inputData["manu_date"] = struct3504.ManuDate // 人员编号 (来自1101接口返回)
- inputData["expy_end"] = struct3504.ExpyEnd // 人员编号 (来自1101接口返回)
- inputData["finl_trns_pric"] = struct3504.FinlTrnsPric // 人员编号 (来自1101接口返回)
- inputData["purc_retn_cnt"] = struct3504.PurcRetnCnt // 人员编号 (来自1101接口返回)
- inputData["purc_invo_codg"] = struct3504.PurcInvoCodg // 人员编号 (来自1101接口返回)
- inputData["purc_invo_no"] = struct3504.PurcInvoNo // 人员编号 (来自1101接口返回)
- inputData["rx_flag"] = struct3504.RxFlag
- inputData["purc_retn_stoin_time"] = struct3504.PurcRetnStoin
- inputData["purc_retn_opter_name"] = struct3504.PurcRetnStoin
- inputData["memo"] = "" // 人员编号 (来自1101接口返回)
- inputData["medins_prod_purc_no"] = "" // 人员编号 (来自1101接口返回)
- input["purcinfo"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3504"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb3505(struct3505 models.Struct3505, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetGdInputMessage(timestamp, struct3505.OrgName, struct3505.Opter, struct3505.FixmedinsHilistId, struct3505.InsuplcAdmdvs, struct3505.MdtrtareaAdmvs, struct3505.Cainfo)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3505" // 交易编码
- inputData["med_list_codg"] = struct3505.MedListCodg // 定点医药机构目录编号
- inputData["fixmedins_hilist_id"] = struct3505.FixmedinsHilistId // 定点医药机构目录编号
- inputData["fixmedins_hilist_name"] = struct3505.OrgName // 定点医药机构目录名称
- inputData["fixmedins_bchno"] = struct3505.FixmedinsBchno // 人员编号 (来自1101接口返回)
-
- inputData["prsc_dr_cert_type"] = struct3505.PrscDrCertType // 人员编号 (来自1101接口返回)
- inputData["prsc_dr_certno"] = struct3505.PrscDrCertno // 人员编号 (来自1101接口返回)
- inputData["prsc_dr_name"] = struct3505.PrscDrName // 人员编号 (来自1101接口返回)
- inputData["phar_cert_type"] = struct3505.PharCertType // 人员编号 (来自1101接口返回)
- inputData["phar_certno"] = struct3505.PharCertno // 人员编号 (来自1101接口返回)
-
- inputData["phar_name"] = struct3505.PharName // 人员编号 (来自1101接口返回)
- inputData["phar_prac_cert_no"] = struct3505.PharPracCertNo // 人员编号 (来自1101接口返回)
- inputData["hi_feesetl_type"] = struct3505.HiFeesetlType // 人员编号 (来自1101接口返回)
- inputData["setl_id"] = struct3505.SetlId // 人员编号 (来自1101接口返回)
- inputData["mdtrt_sn"] = struct3505.MdtrtSn // 人员编号 (来自1101接口返回)
- inputData["psn_no"] = struct3505.PsnNo // 人员编号 (来自1101接口返回)
- inputData["psn_cert_type"] = struct3505.PsnCertType // 人员编号 (来自1101接口返回)
- inputData["certno"] = struct3505.CertNo // 人员编号 (来自1101接口返回)
- inputData["psn_name"] = struct3505.PsnName // 人员编号 (来自1101接口返回)
- inputData["manu_lotnum"] = struct3505.ManuLotnum // 人员编号 (来自1101接口返回)
- inputData["manu_date"] = struct3505.ManuDate // 人员编号 (来自1101接口返回)
- inputData["expy_end"] = struct3505.ExpyEnd // 人员编号 (来自1101接口返回)
-
- inputData["rx_flag"] = struct3505.RxFlag // 人员编号 (来自1101接口返回)
- inputData["trdn_flag"] = struct3505.TrdnFlag // 人员编号 (来自1101接口返回)
-
- inputData["finl_trns_pric"] = struct3505.FinlTrnsPric // 人员编号 (来自1101接口返回)
- inputData["rxno"] = struct3505.Rxno // 人员编号 (来自1101接口返回)
- inputData["rx_circ_flag"] = struct3505.RxCircFlag // 人员编号 (来自1101接口返回)
-
- inputData["rtal_docno"] = struct3505.RtalDocno // 人员编号 (来自1101接口返回)
- inputData["stoout_no"] = struct3505.StooutNo // 人员编号 (来自1101接口返回)
-
- inputData["bchno"] = struct3505.Bchno // 人员编号 (来自1101接口返回)
- inputData["drug_trac_codg"] = struct3505.DrugTracCodg // 人员编号 (来自1101接口返回)
- inputData["drug_prod_barc"] = struct3505.DrugProdBarc // 人员编号 (来自1101接口返回)
- inputData["shelf_posi"] = struct3505.ShelfPosi // 人员编号 (来自1101接口返回)
- inputData["sel_retn_cnt"] = struct3505.SelRetnCnt // 人员编号 (来自1101接口返回)
- inputData["sel_retn_time"] = struct3505.SelRetnTime // 人员编号 (来自1101接口返回)
- inputData["sel_retn_opter_name"] = struct3505.SelRetnOpterName // 人员编号 (来自1101接口返回)
- inputData["memo"] = struct3505.Memo // 人员编号 (来自1101接口返回)
- input["selinfo"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3505"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb3506(struct3506 models.Struct3506, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetGdInputMessage(timestamp, struct3506.OrgName, struct3506.Opter, struct3506.FixmedinsCode, struct3506.InsuplcAdmdvs, struct3506.MdtrtareaAdmvs, struct3506.Cainfo)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3506" // 交易编码
- inputData["med_list_codg"] = struct3506.MedListCodg // 定点医药机构目录编号
- inputData["fixmedins_hilist_id"] = struct3506.FixmedinsHilistId // 定点医药机构目录编号
- inputData["fixmedins_hilist_name"] = struct3506.OrgName // 定点医药机构目录名称
- inputData["fixmedins_bchno"] = struct3506.FixmedinsBchno // 人员编号 (来自1101接口返回)
-
- inputData["setl_id"] = struct3506.SetlId // 人员编号 (来自1101接口返回)
- inputData["psn_no"] = struct3506.PsnNo // 人员编号 (来自1101接口返回)
- inputData["psn_cert_type"] = struct3506.PsnCertType // 人员编号 (来自1101接口返回)
- inputData["certno"] = struct3506.Certno // 人员编号 (来自1101接口返回)
- inputData["psn_name"] = struct3506.PsnName // 人员编号 (来自1101接口返回)
- inputData["manu_lotnum"] = struct3506.ManuLotnum // 人员编号 (来自1101接口返回)
- inputData["manu_date"] = struct3506.ManuDate // 人员编号 (来自1101接口返回)
- inputData["expy_end"] = struct3506.ExpyEnd // 人员编号 (来自1101接口返回)
- inputData["rx_flag"] = struct3506.RxFlag // 人员编号 (来自1101接口返回)
- inputData["trdn_flag"] = struct3506.TrdnFlag // 人员编号 (来自1101接口返回)
- inputData["finl_trns_pric"] = struct3506.FinlTrnsPric // 人员编号 (来自1101接口返回)
- inputData["sel_retn_cnt"] = struct3506.SelRetnCnt // 人员编号 (来自1101接口返回)
- inputData["sel_retn_time"] = struct3506.SelRetnTime // 人员编号 (来自1101接口返回)
- inputData["sel_retn_opter_name"] = struct3506.SelRetnOpterName // 人员编号 (来自1101接口返回)
- inputData["memo"] = "" // 人员编号 (来自1101接口返回)
- inputData["medins_prod_sel_no"] = "" // 人员编号 (来自1101接口返回)
-
- input["selinfo"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3506"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
- func Gdyb3507(struct3507 models.Struct3507, secret_key string) string {
- // 生成签名
- nonce := GetRandomString(32)
- timestamp := time.Now().Unix()
- signature := setSignature(timestamp, nonce, secret_key)
-
- // 生成输入报文
- inputMessage := SetGdInputMessage(timestamp, struct3507.OrgName, struct3507.Opter, struct3507.FixmedinsCode, struct3507.InsuplcAdmdvs, struct3507.MdtrtareaAdmvs, struct3507.Cainfo)
- input := make(map[string]interface{})
- inputData := make(map[string]interface{})
- inputMessage["infno"] = "3507" // 交易编码
- inputData["fixmedins_bchno"] = struct3507.FixmedinsCode // 人员编号 (来自1101接口返回)
- inputData["inv_data_type"] = struct3507.InvDataType // 人员编号 (来自1101接口返回)
-
- input["data"] = inputData
- inputMessage["input"] = input //交易输入
-
- bytesData, err := json.Marshal(inputMessage)
- fmt.Println(string(bytesData))
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- reader := bytes.NewReader(bytesData)
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/5301"
- gdyb_url := beego.AppConfig.String("gdyb_url")
- gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
- //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_api/prd/hsa/hgs/1101"
- url := gdyb_url + "3507"
- request, err := http.NewRequest("POST", url, reader)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
-
- request.Header.Set("Content-Type", "application/json;charset=UTF-8")
- request.Header.Set("x-tif-paasid", gdyb_paasid)
- request.Header.Set("x-tif-signature", signature)
- request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
- request.Header.Set("x-tif-nonce", nonce)
-
- client := http.Client{}
- resp, err := client.Do(request)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- respBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err.Error())
- return err.Error()
- }
- str := string(respBytes)
- fmt.Println(str)
- return str
- }
-
- // 生成基础报文
- func SetGdInputMessage(timestamp int64, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, cainfo string) map[string]interface{} {
- // 生成签名
- tempTime := time.Unix(timestamp, 0)
- //timeFormat := tempTime.Format("20060102150405")
- timeFormatOne := tempTime.Format("2006-01-02 15:04:05")
- //randNum := rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000)
-
- 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")
-
- msec := time.Now().Format("000")
-
- // 生成输入报文
- inputMessage := make(map[string]interface{})
- inputMessage["msgid"] = fixmedins_code + year + month + day + hour + min + sec + msec + "0" // 发送方报文 ID
- inputMessage["mdtrtarea_admvs"] = mdtrtarea_admvs // 就医地医保区划
- inputMessage["insuplc_admdvs"] = insuplc_admdvs // 参保地医保区划
- inputMessage["recer_sys_code"] = "MBS_LOCAL" // 接收方系统代码
- inputMessage["dev_no"] = "1" // 设备编号
- inputMessage["dev_safe_info"] = "1" // 设备安全信息
- inputMessage["cainfo"] = cainfo // 数字签名信息
- inputMessage["signtype"] = "SM3" // 签名类型
- inputMessage["infver"] = "1.0.0" // 接收方系统代码
- inputMessage["opter_type"] = "1" // 经办人类别
-
- inputMessage["opter"] = doctor // 经办人
- inputMessage["opter_name"] = doctor // 经办人姓名
-
- inputMessage["inf_time"] = timeFormatOne // 交易时间
- inputMessage["fixmedins_code"] = fixmedins_code // 定点医药机构编号
- inputMessage["fixmedins_name"] = org_name
- inputMessage["fixmedins_soft_fcty"] = "深圳市领透科技有限公司" //定点医药机构名称
- //定点医药机构名称
- inputMessage["sign_no"] = "" //交易签到流水号
- return inputMessage
- }
|