hushijiandan.component.html 101 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094
  1. <div class="nurse">
  2. <nz-layout class="app-layout display_flex flex_auto">
  3. <nz-sider class="menu-sidebar slider" nzWidth="224px" nzBreakpoint="xs" [nzTrigger]="null">
  4. <div class="
  5. sidebar-logo
  6. display_flex
  7. align-items_center
  8. justify-content_flex-center
  9. ">
  10. <div>
  11. <img src="../../assets/images/login_logo.png" alt="logo" />
  12. <span>大势医院输送保障管理平台</span>
  13. </div>
  14. </div>
  15. <div class="
  16. notAvailable
  17. display_flex
  18. align-items_center
  19. justify-content_flex-center
  20. " *ngIf="
  21. !deptTaskTypeRules.openInspection &&
  22. !deptTaskTypeRules.openPatientTransport
  23. ">
  24. <div>
  25. <img src="../../assets/images/icon_jianchakong.png" alt="" />
  26. <div>暂未开通</div>
  27. </div>
  28. </div>
  29. <div class="mainInfo">
  30. <div class="searchBox">
  31. <input nz-input [(ngModel)]="tabSearchCont" (ngModelChange)="searchTabInp($event)" placeholder="请输入关键字" />
  32. </div>
  33. <div class="checkBanner" nz-row>
  34. <button nz-button nz-col nzSpan="12" class="checkItem checked" (click)="changeInfo()">
  35. 患者信息
  36. </button>
  37. </div>
  38. <!-- 患者信息 -->
  39. <div class="checkedInfo patient" style="padding-bottom: 0">
  40. <overlay-scrollbars #osComponentRef4 class="box">
  41. <div class="
  42. loading
  43. display_flex
  44. align-items_center
  45. justify-content_flex-center
  46. " *ngIf="
  47. pLoading &&
  48. (deptTaskTypeRules.openInspection ||
  49. deptTaskTypeRules.openPatientTransport)
  50. ">
  51. <div>
  52. <img src="../../assets/images/loading.gif" alt="" />
  53. <div>加载中...</div>
  54. </div>
  55. </div>
  56. <div class="
  57. loading
  58. display_flex
  59. align-items_center
  60. justify-content_flex-center
  61. " *ngIf="!patientList.length && !pLoading">
  62. <div>
  63. <div>暂无数据</div>
  64. </div>
  65. </div>
  66. <div *ngIf="patientList.length && !pLoading">
  67. <div class="item" *ngFor="let item of patientList">
  68. <div class="itemTit txtC" style="font-weight: bold">
  69. <ng-container *ngIf="item.illnessState">
  70. <i *ngIf="item.illnessState.value === '2'" class="colorRed icon_transport transport-wei" nz-tooltip
  71. nzTooltipTitle="病危"></i>
  72. <i *ngIf="item.illnessState.value === '3'" class="colorRed icon_transport transport-zhong1"
  73. nz-tooltip nzTooltipTitle="病重"></i>
  74. </ng-container>
  75. <ng-container *ngIf="item.careLevel">
  76. <i *ngIf="item.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip
  77. nzTooltipTitle="特级护理"></i>
  78. <i *ngIf="item.careLevel.value === '1'" class="icon_transport transport-Bduanshuzi1" nz-tooltip
  79. nzTooltipTitle="一级护理"></i>
  80. <i *ngIf="item.careLevel.value === '2'" class="icon_transport transport-Bduanshuzi" nz-tooltip
  81. nzTooltipTitle="二级护理"></i>
  82. <i *ngIf="item.careLevel.value === '3'" class="icon_transport transport-Bduanshuzi11" nz-tooltip
  83. nzTooltipTitle="三级护理"></i>
  84. </ng-container>
  85. <span nz-tooltip [nzTooltipTitle]="recentInfo" nzTooltipPlacement="right" [nzMouseEnterDelay]="1"
  86. (mouseenter)="getRecentInfo(item.patientCode)">{{ item.patientName }}({{ item.bedNum }})</span>
  87. </div>
  88. <div class="checkInfo" nz-row *ngIf="
  89. followFlag === '1' &&
  90. currentUser.typeValue != 'checkRoom2' &&
  91. currentUser.typeValue != 'outpatientDept' &&
  92. currentUser.typeValue != 'checkRoom'
  93. ">
  94. <span nz-col nzSpan="2" class="icon_transport transport-zhongdianguanzhu" (click)="follow(item)"
  95. [ngStyle]="{
  96. color: item.focusPatient === 0 ? 'white' : 'red'
  97. }" nz-tooltip [nzTooltipTitle]="
  98. item.focusPatient === 0
  99. ? '白色心为非特殊关注,需手动建单后支助人员上门送检'
  100. : '红色心为特殊关注,患者所有检查会自动建单,支助人员主动上门送检'
  101. "></span>
  102. <span nz-col nzSpan="2"></span>
  103. <span nz-col nzSpan="12">{{ item.residenceNo }}</span>
  104. <span nz-col nzSpan="6" class="txtR">待检 {{ item.watingCount }}</span>
  105. <span nz-col nzSpan="2"></span>
  106. </div>
  107. <div class="checkInfo" nz-row *ngIf="
  108. followFlag === '0' ||
  109. currentUser.typeValue == 'checkRoom2' ||
  110. currentUser.typeValue == 'outpatientDept' ||
  111. currentUser.typeValue == 'checkRoom'
  112. ">
  113. <span nz-col nzSpan="2"></span>
  114. <span nz-col nzSpan="12">{{ item.residenceNo }}</span>
  115. <span nz-col nzSpan="6" class="txtR">待检 {{ item.watingCount }}</span>
  116. <span nz-col nzSpan="2"></span>
  117. </div>
  118. <div class="btn" (click)="newPatientOrder(item)">一键建单</div>
  119. </div>
  120. </div>
  121. </overlay-scrollbars>
  122. </div>
  123. <!-- 翻页 -->
  124. <!-- <div class="paging">
  125. <div>
  126. <nz-pagination [(nzPageIndex)]="infoPageIdx" [(nzTotal)]="infoLength" (nzPageIndexChange)="getPatient()"
  127. [nzPageSize]='5' nzSimple>
  128. </nz-pagination>
  129. </div>
  130. </div> -->
  131. </div>
  132. </nz-sider>
  133. <nz-layout class="layout" style="background: #fff; position: relative">
  134. <nz-header>
  135. <div class="
  136. app-header
  137. borderB
  138. display_flex
  139. justify-content_space-between
  140. align-items_center
  141. ">
  142. <div class="
  143. nurseTitle
  144. display_flex
  145. justify-content_space-between
  146. align-items_center
  147. ">
  148. <span>护士端</span>
  149. <p class="updateTipsForNurses red">{{ updateTipsForNurses }}</p>
  150. <div class="nurseCode" (click)="showNurseCode()">
  151. <i class="nurseCodeIcon icon_transport transport-erweima"></i>二维码
  152. </div>
  153. </div>
  154. <div class="userInfo">
  155. <div class="wel">欢迎您:</div>
  156. <div class="user">
  157. <img src="../../assets/images/icon_keshi.png" alt="" />
  158. <span *ngIf="deptDisplay">{{
  159. deptDisplay == 2
  160. ? loginUser.dept.deptalias
  161. : loginUser.dept.dept
  162. }}</span>
  163. </div>
  164. <div class="userInfo-wrap">
  165. <div class="logOut" (click)="changeKsNow()">切换科室</div>
  166. <div class="logOut" (click)="logOut()">退出</div>
  167. </div>
  168. </div>
  169. </div>
  170. </nz-header>
  171. <nz-content class="nzContent">
  172. <div class="inner-content">
  173. <div class="mainInfo" nz-row>
  174. <div nz-col nzSpan="17" class="cont">
  175. <div class="top">
  176. <div class="nums borderB" nz-row>
  177. <!-- 标本信息未开通 -->
  178. <div *ngIf="!deptTaskTypeRules.openSpecimen" nz-col nzSpan="13" nz-row class="h100p">
  179. <div class="
  180. notAvailable
  181. display_flex
  182. align-items_center
  183. justify-content_flex-center
  184. ">
  185. <div>
  186. <img src="../../assets/images/icon_jianchakong.png" alt="" />
  187. <div>暂未开通</div>
  188. </div>
  189. </div>
  190. <div nz-col nzSpan="18" nz-row class="borderR h100p">
  191. <div nz-col nzSpan="4" class="
  192. borderR
  193. alignC
  194. display_flex
  195. justify-content_flex-center
  196. align-items_center
  197. h100p
  198. ">
  199. <img src="../../assets/images/icon_hubiaoben.png" alt="" />
  200. </div>
  201. <div nz-col nzSpan="20">
  202. <div class="txtC h33 borderB overAuto">*****</div>
  203. <div nz-row class="h53">
  204. <div nz-col nzSpan="12" class="txtC borderR h100p">
  205. <p>*</p>
  206. <div>急标数量</div>
  207. </div>
  208. <div nz-col nzSpan="12" class="txtC h100p">
  209. <p>*</p>
  210. <div>普标数量</div>
  211. </div>
  212. </div>
  213. </div>
  214. </div>
  215. <div nz-col nzSpan="6" class="borderR h100p">
  216. <div class="quick">
  217. <button class="btn txtC">{{ specimenButton }}</button>
  218. </div>
  219. </div>
  220. </div>
  221. <!-- 标本信息已开通 -->
  222. <div *ngIf="deptTaskTypeRules.openSpecimen" nz-col nzSpan="13" nz-row class="h100p">
  223. <div nz-col nzSpan="18" nz-row class="borderR h100p">
  224. <div nz-col nzSpan="4" class="
  225. borderR
  226. alignC
  227. display_flex
  228. justify-content_flex-center
  229. align-items_center
  230. h100p
  231. ">
  232. <img src="../../assets/images/icon_hubiaoben.png" alt="" />
  233. </div>
  234. <div nz-col nzSpan="20">
  235. <div class="txtC h33 borderB overAuto">
  236. {{ specimenWorkOrderMsg.specimenInfo || "" }}
  237. </div>
  238. <div nz-row class="h53">
  239. <div nz-col nzSpan="12" class="txtC borderR h100p cur" (click)="changeSpeDetail(1)">
  240. <p>
  241. {{
  242. specimenWorkOrderMsg.specimenCount
  243. ? specimenWorkOrderMsg.specimenCount.urgent
  244. : 0
  245. }}
  246. </p>
  247. <div>急标数量</div>
  248. </div>
  249. <div nz-col nzSpan="12" class="txtC h100p cur" (click)="changeSpeDetail(0)">
  250. <p>
  251. {{
  252. specimenWorkOrderMsg.specimenCount
  253. ? specimenWorkOrderMsg.specimenCount.noUrgent
  254. : 0
  255. }}
  256. </p>
  257. <div>普标数量</div>
  258. </div>
  259. </div>
  260. </div>
  261. </div>
  262. <div nz-col nzSpan="6" class="borderR h100p">
  263. <div class="quick">
  264. <button [nzLoading]="bLoading" nz-button nzType="primary" class="btn txtC"
  265. (click)="newShortcutOrder1(bbMsg, 'bb')">
  266. {{ specimenButton }}
  267. </button>
  268. <!-- <button class="btn txtC" (click)="newShortcutOrder1(bbMsg,'bb',true)">
  269. 收取急查标本
  270. </button> -->
  271. </div>
  272. </div>
  273. </div>
  274. <!-- 药品/静配信息未开通 -->
  275. <div *ngIf="
  276. !deptTaskTypeRules.openStaticDistribution &&
  277. !deptTaskTypeRules.openDrugsBag &&
  278. !drugJpLoading
  279. " nz-col nzSpan="11" nz-row class="h100p">
  280. <div class="
  281. notAvailable
  282. display_flex
  283. align-items_center
  284. justify-content_flex-center
  285. ">
  286. <div>
  287. <img src="../../assets/images/icon_jianchakong.png" alt="" />
  288. <div>暂未开通</div>
  289. </div>
  290. </div>
  291. <div nz-col nzSpan="6" class="
  292. borderR
  293. alignC
  294. display_flex
  295. justify-content_flex-center
  296. align-items_center
  297. h100p
  298. ">
  299. <img src="../../assets/images/icon_hujingpei.png" alt="" />
  300. </div>
  301. <div nz-col nzSpan="18" class="h100p">
  302. <div class="
  303. txtC
  304. h50p
  305. alignC
  306. display_flex
  307. justify-content_flex-center
  308. align-items_center
  309. overAuto
  310. borderB
  311. ">
  312. <span>*****</span>
  313. </div>
  314. <div class="
  315. txtC
  316. h50p
  317. alignC
  318. display_flex
  319. justify-content_flex-center
  320. align-items_center
  321. overAuto
  322. ">
  323. <span>*****</span>
  324. </div>
  325. </div>
  326. </div>
  327. <!-- 药品/静配信息已开通 -->
  328. <div *ngIf="
  329. (deptTaskTypeRules.openStaticDistribution ||
  330. deptTaskTypeRules.openDrugsBag) &&
  331. !drugJpLoading
  332. " nz-col nzSpan="11" nz-row class="h100p">
  333. <div nz-col nzSpan="6" class="
  334. borderR
  335. alignC
  336. display_flex
  337. justify-content_flex-center
  338. align-items_center
  339. h100p
  340. ">
  341. <img src="../../assets/images/icon_hujingpei.png" alt="" />
  342. </div>
  343. <div nz-col nzSpan="18" class="h100p">
  344. <div class="txtC h50p borderB">
  345. <div class="swiperBox">
  346. <div class="swiper" [ngStyle]="{ top: swiperTop + 'px' }" *ngIf="
  347. jpDrugsWKOMsg.drugsInfoList &&
  348. jpDrugsWKOMsg.drugsInfoList.length > 0
  349. ">
  350. <div class="
  351. item
  352. txtC
  353. alignC
  354. display_flex
  355. justify-content_flex-center
  356. align-items_center
  357. " *ngFor="let item of jpDrugsWKOMsg.drugsInfoList">
  358. <span>{{ item }}</span>
  359. </div>
  360. </div>
  361. <div class="
  362. swiper
  363. none
  364. display_flex
  365. justify-content_flex-center
  366. align-items_center
  367. " *ngIf="
  368. !jpDrugsWKOMsg.drugsInfoList ||
  369. !jpDrugsWKOMsg.drugsInfoList.length
  370. ">
  371. <div class="
  372. item
  373. alignC
  374. display_flex
  375. justify-content_flex-center
  376. align-items_center
  377. ">
  378. <span>暂无药品配送信息</span>
  379. </div>
  380. </div>
  381. </div>
  382. </div>
  383. <div class="txtC h50p">
  384. <div class="swiperBox">
  385. <div class="swiper" [ngStyle]="{ top: swiperTop1 + 'px' }" *ngIf="
  386. jpDrugsWKOMsg.jpInfoList &&
  387. jpDrugsWKOMsg.jpInfoList.length > 0
  388. ">
  389. <div class="
  390. item
  391. txtC
  392. alignC
  393. display_flex
  394. justify-content_flex-center
  395. align-items_center
  396. " *ngFor="let item of jpDrugsWKOMsg.jpInfoList">
  397. <span>{{ item }}</span>
  398. </div>
  399. </div>
  400. <div class="
  401. swiper
  402. none
  403. display_flex
  404. justify-content_flex-center
  405. align-items_center
  406. " *ngIf="
  407. !jpDrugsWKOMsg.jpInfoList ||
  408. !jpDrugsWKOMsg.jpInfoList.length
  409. ">
  410. <div class="
  411. item
  412. alignC
  413. display_flex
  414. justify-content_flex-center
  415. align-items_center
  416. ">
  417. <!-- <span>暂无静配配送信息</span> -->
  418. <span></span>
  419. </div>
  420. </div>
  421. </div>
  422. </div>
  423. </div>
  424. </div>
  425. <div *ngIf="drugJpLoading" nz-col nzSpan="11" nz-row class="
  426. h100p
  427. display_flex
  428. justify-content_flex-center
  429. align-items_center
  430. ">
  431. <div class="txtC" style="text-align: center">
  432. <img src="../../../assets/images/loading.gif" alt="" />
  433. <div>加载中...</div>
  434. </div>
  435. </div>
  436. </div>
  437. <div class="tab borderB" nz-row style="padding: 4px 0">
  438. <div nz-col nzSpan="4" [ngClass]="{
  439. txtC: true,
  440. cur: true,
  441. checked: checkedTableType == 'other'
  442. }" (click)="checkTable('other')">
  443. <div class="text">其他任务建单</div>
  444. </div>
  445. <div nz-col nzSpan="4" [ngClass]="{
  446. txtC: true,
  447. cur: true,
  448. checked: checkedTableType == 'advice'
  449. }" (click)="checkTable('advice')">
  450. <div class="text">意见箱</div>
  451. </div>
  452. <div nz-col nzSpan="4" [ngClass]="{
  453. txtC: true,
  454. cur: true,
  455. checked: checkedTableType == 'historySpecimen'
  456. }" (click)="checkTable('historySpecimen')">
  457. <div class="text">历史标本查询</div>
  458. </div>
  459. <div nz-col nzSpan="4" [ngClass]="{
  460. txtC: true,
  461. cur: true,
  462. checked: checkedTableType == 'kjbx'
  463. }" (click)="checkTable('kjbx')">
  464. <div class="text">快捷报修</div>
  465. </div>
  466. <div nz-col nzSpan="4" [ngClass]="{
  467. txtC: true,
  468. cur: true,
  469. checked: checkedTableType == 'bxlb'
  470. }" (click)="checkTable('bxlb')">
  471. <div class="text">报修列表</div>
  472. </div>
  473. <div nz-col nzSpan="4" class="
  474. txtC
  475. h100p
  476. alignR
  477. display_flex
  478. justify-content_flex-end
  479. align-items_center
  480. ">
  481. <div class="btn txtC" *ngIf="mainRole" (click)="toMain()">
  482. 回到系统管理
  483. </div>
  484. </div>
  485. </div>
  486. </div>
  487. <!-- 其他任务建单 -->
  488. <div *ngIf="checkedTableType == 'other'" style="flex: 1; height: 100%; position: relative">
  489. <div class="otherBox">
  490. <div class="otherBoxInner">
  491. <div class="otherBox-nav">
  492. <div class="otherBox-nav__head">
  493. <input nz-input placeholder="请输入关键字" [(ngModel)]="otherSearch"
  494. (ngModelChange)="otherSearchChange()" />
  495. </div>
  496. <overlay-scrollbars #osComponentRef2 class="otherBox-nav__main" [ngStyle]="{ height: '100%' }">
  497. <div class="otherBox-nav__mainInner" *ngIf="!oLoading && othersList.length > 0">
  498. <div [sortablejs]="othersList" [sortablejsOptions]="othersListOptions" class="w100">
  499. <div class="otherBox-nav__mainItem" *ngFor="let item of othersList"
  500. (click)="otherClick(item)" [ngClass]="{ active: selectOtherId == item.id }"
  501. [title]="item.taskName">
  502. {{ item.taskName }}
  503. </div>
  504. </div>
  505. </div>
  506. <div class="otherBox-nav__mainInner noData" *ngIf="!oLoading && othersList.length == 0">
  507. 暂无数据
  508. </div>
  509. <div class="otherBox-nav__mainInner oLoading" *ngIf="oLoading">
  510. <img src="../../../assets/images/loading.gif" alt="" />
  511. <div>加载中...</div>
  512. </div>
  513. </overlay-scrollbars>
  514. </div>
  515. <div class="otherBox-main">
  516. <div class="otherBox-main__main">
  517. <!-- -----------------start------------------ -->
  518. <div class="modalBody_box">
  519. <div class="modalBody">
  520. <div class="modalBody_left" *ngIf="!nLoading && selectOtherId">
  521. <overlay-scrollbars class="modalBody_left_box" #osComponentRef3
  522. style="height: calc(100vh - 263px)">
  523. <div class="modalBody_left_box">
  524. <div style="
  525. flex: 1;
  526. display: flex;
  527. flex-direction: column;
  528. justify-content: center;
  529. align-items: center;
  530. ">
  531. <div class="content txtC" *ngIf="
  532. buildMsg.status == 100013 ||
  533. buildMsg.status == 100014 ||
  534. buildMsg.status == 100015
  535. ">
  536. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  537. </div>
  538. <!-- 200 该任务类型运送过程暂未配置 -->
  539. <div class="content txtC" *ngIf="
  540. buildMsg.status == 200 &&
  541. buildType == 'bb'
  542. ">
  543. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  544. </div>
  545. <!-- 100009 该任务类型运送过程暂未配置 -->
  546. <div class="content txtC" *ngIf="buildMsg.status == 100009">
  547. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  548. </div>
  549. <!-- 100010 系统未查询到该任务类型关联信息 -->
  550. <div class="content txtC" *ngIf="buildMsg.status == 100010">
  551. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  552. </div>
  553. <!-- 100012 (护士端一键建单展示策略)直接取msg -->
  554. <div class="content txtC" *ngIf="buildMsg.status == 100012">
  555. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  556. </div>
  557. <!-- 100013 (护士端一键建单展示策略)取起点科室,和mgs值展示 -->
  558. <div class="content" *ngIf="buildMsg.status == 100013">
  559. <div>
  560. <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
  561. <nz-form-item>
  562. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室
  563. </nz-form-label>
  564. <nz-form-control nzErrorTip="请选择起点科室!">
  565. <nz-select class="w100" formControlName="originOffice"
  566. [nzDropdownMatchSelectWidth]="
  567. false
  568. " nzServerSearch nzShowSearch (nzOnSearch)="
  569. searchDept(
  570. 'start',
  571. buildMsg,
  572. $event
  573. )
  574. " nzPlaceHolder="请选择起点科室">
  575. <ng-container *ngFor="
  576. let option of buildMsg.start
  577. .start.list
  578. ">
  579. <nz-option *ngIf="true" [nzLabel]="
  580. deptDisplay == 2
  581. ? option.deptalias
  582. : option.dept
  583. " [nzValue]="option.id">
  584. </nz-option>
  585. </ng-container>
  586. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  587. <i nz-icon nzType="loading" class="loading-icon"></i>
  588. 搜索中...
  589. </nz-option>
  590. </nz-select>
  591. </nz-form-control>
  592. </nz-form-item>
  593. </form>
  594. </div>
  595. </div>
  596. <!-- 100014 (护士端一键建单展示策略)取终点科室和msg 值展示 -->
  597. <div class="content" *ngIf="buildMsg.status == 100014">
  598. <div>
  599. <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
  600. <nz-form-item>
  601. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室
  602. </nz-form-label>
  603. <nz-form-control nzErrorTip="请选择目标科室!">
  604. <nz-select class="w100" formControlName="targetOffice"
  605. [nzDropdownMatchSelectWidth]="
  606. false
  607. " nzServerSearch nzShowSearch (nzOnSearch)="
  608. searchDept(
  609. 'target',
  610. buildMsg,
  611. $event
  612. )
  613. " nzAllowClear nzPlaceHolder="请选择目标科室">
  614. <ng-container *ngFor="
  615. let option of buildMsg.end
  616. .end.list
  617. ">
  618. <nz-option *ngIf="true" [nzLabel]="
  619. deptDisplay == 2
  620. ? option.deptalias
  621. : option.dept
  622. " [nzValue]="option.id">
  623. </nz-option>
  624. </ng-container>
  625. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  626. <i nz-icon nzType="loading" class="loading-icon"></i>
  627. 搜索中...
  628. </nz-option>
  629. </nz-select>
  630. </nz-form-control>
  631. </nz-form-item>
  632. </form>
  633. </div>
  634. </div>
  635. <!-- 100015 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
  636. <div class="content" *ngIf="buildMsg.status == 100015">
  637. <div>
  638. <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
  639. <nz-form-item>
  640. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室
  641. </nz-form-label>
  642. <nz-form-control nzErrorTip="请选择起点科室!">
  643. <nz-select class="w100" formControlName="originOffice"
  644. [nzDropdownMatchSelectWidth]="
  645. false
  646. " nzServerSearch nzShowSearch (nzOnSearch)="
  647. searchDept(
  648. 'start',
  649. buildMsg,
  650. $event
  651. )
  652. " nzPlaceHolder="请选择起点科室">
  653. <ng-container *ngFor="
  654. let option of buildMsg.start
  655. .start.list
  656. ">
  657. <nz-option *ngIf="true" [nzLabel]="
  658. deptDisplay == 2
  659. ? option.deptalias
  660. : option.dept
  661. " [nzValue]="option.id">
  662. </nz-option>
  663. </ng-container>
  664. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  665. <i nz-icon nzType="loading" class="loading-icon"></i>
  666. 搜索中...
  667. </nz-option>
  668. </nz-select>
  669. </nz-form-control>
  670. </nz-form-item>
  671. <nz-form-item>
  672. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室
  673. </nz-form-label>
  674. <nz-form-control nzErrorTip="请选择目标科室!">
  675. <nz-select class="w100" formControlName="targetOffice"
  676. [nzDropdownMatchSelectWidth]="
  677. false
  678. " nzServerSearch nzShowSearch (nzOnSearch)="
  679. searchDept(
  680. 'target',
  681. buildMsg,
  682. $event
  683. )
  684. " nzPlaceHolder="请选择目标科室">
  685. <ng-container *ngFor="
  686. let option of buildMsg.end
  687. .end.list
  688. ">
  689. <nz-option *ngIf="true" [nzLabel]="
  690. deptDisplay == 2
  691. ? option.deptalias
  692. : option.dept
  693. " [nzValue]="option.id">
  694. </nz-option>
  695. </ng-container>
  696. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  697. <i nz-icon nzType="loading" class="loading-icon"></i>
  698. 搜索中...
  699. </nz-option>
  700. </nz-select>
  701. </nz-form-control>
  702. </nz-form-item>
  703. </form>
  704. </div>
  705. </div>
  706. <!-- 工单备注: -->
  707. <div style="width: 100%; margin: 10px auto 0" *ngIf="buildMsg.remarksSwitch == 1">
  708. <p>工单备注:</p>
  709. <textarea nz-input [placeholder]="workOrderRemarkTips" [nzAutosize]="{
  710. minRows: 3,
  711. maxRows: 5
  712. }" maxlength="100" [(ngModel)]="workOrderRemark" #remarksEle></textarea>
  713. <p class="mt8 mb8" *ngIf="customRemarks.length">
  714. 快捷输入:
  715. </p>
  716. <div *ngIf="customRemarks.length">
  717. <span class="addRemarks" *ngFor="let item of customRemarks"
  718. (click)="addRemarks(item)">【{{ item }}】</span>
  719. </div>
  720. <p class="mt8 mb8" *ngIf="historyCustomRemarks.length">
  721. 历史输入:
  722. </p>
  723. <div *ngIf="historyCustomRemarks.length">
  724. <span class="addRemarks" *ngFor="
  725. let item of historyCustomRemarks
  726. " (click)="addRemarks(item)">【{{ item }}】</span>
  727. </div>
  728. </div>
  729. </div>
  730. <div *ngIf="selectOtherId" class="
  731. btns
  732. display_flex
  733. justify-content_flex-center
  734. ">
  735. <button *ngIf="
  736. buildMsg.status != 100009 &&
  737. buildMsg.status != 100010
  738. " nz-button nzType="primary" [nzLoading]="loading5" (click)="confirmShortcut()">
  739. 确认
  740. </button>
  741. </div>
  742. </div>
  743. </overlay-scrollbars>
  744. </div>
  745. <div class="modalBody_left nLoading" *ngIf="nLoading">
  746. <img src="../../../assets/images/loading.gif" alt="" />
  747. <div>加载中...</div>
  748. </div>
  749. <div class="modalBody_left noData" *ngIf="!nLoading && !selectOtherId">
  750. 暂无数据
  751. </div>
  752. <div class="modalBody_right">
  753. <div class="modalBody_right_head">
  754. 综合日志<span>{{ logTime }}秒后自动刷新</span>
  755. </div>
  756. <overlay-scrollbars class="modalBody_right_box" #osComponentRef9 style="height: 100%"
  757. *ngIf="!rLoading && listDeptOrderRecords.length">
  758. <div class="modalBody_right_box">
  759. <div class="modalBody_right_list" *ngFor="let item of listDeptOrderRecords"
  760. [innerHTML]="item.msg | htmlTransform"></div>
  761. </div>
  762. </overlay-scrollbars>
  763. <div class="modalBody_left nLoading w100" *ngIf="rLoading">
  764. <img src="../../../assets/images/loading.gif" alt="" />
  765. <div>加载中...</div>
  766. </div>
  767. <div class="modalBody_left noData w100" *ngIf="
  768. !rLoading && !listDeptOrderRecords.length
  769. ">
  770. 暂无数据
  771. </div>
  772. </div>
  773. </div>
  774. </div>
  775. <!-- -----------------end------------------ -->
  776. </div>
  777. </div>
  778. </div>
  779. </div>
  780. </div>
  781. <!-- 意见箱 -->
  782. <div *ngIf="checkedTableType == 'advice'" style="flex: 1; height: 100%">
  783. <div class="
  784. searchBox
  785. display_flex
  786. align-items_center
  787. justify-content_space-between
  788. ">
  789. <div class="
  790. left
  791. alignC
  792. display_flex
  793. justify-content_flex-center
  794. align-items_center
  795. ">
  796. <div>意见内容:</div>
  797. <div>
  798. <input nz-input placeholder="请输入关键字" [(ngModel)]="adviceSearchInp" />
  799. </div>
  800. </div>
  801. <div class="btns">
  802. <button nz-button nzType="primary" nzGhost (click)="getAdvice()">
  803. 搜索
  804. </button>
  805. <button nz-button nzType="primary" (click)="addAdvice()">
  806. 新增
  807. </button>
  808. </div>
  809. </div>
  810. <div class="table">
  811. <div class="box">
  812. <nz-table class="hospitalTable" [nzData]="adviceList" nzSize="middle" [nzShowPagination]="false"
  813. [nzLoading]="adviceLoading">
  814. <thead>
  815. <tr class="thead">
  816. <th nzWidth="7%">序号</th>
  817. <th nzWidth="15%">填写时间</th>
  818. <th nzWidth="36%">意见内容</th>
  819. <th nzWidth="12%">状态</th>
  820. <th nzWidth="30%">操作</th>
  821. </tr>
  822. </thead>
  823. <tbody>
  824. <tr *ngFor="let data of adviceList; let i = index">
  825. <td>{{ i + 1 }}</td>
  826. <td>{{ data.createTime.slice(0, 16) }}</td>
  827. <td>
  828. <span style="overflow: hidden; text-overflow: ellipsis">
  829. {{ spliceContent(data.content) }}
  830. </span>
  831. </td>
  832. <td>
  833. {{ data.replaceFlag == 1 ? "已回复" : "未回复" }}
  834. </td>
  835. <td>
  836. <div class="coop">
  837. <span (click)="adviceDetail(data.id)">查看</span>
  838. <span *ngIf="data.replaceFlag == 0" (click)="addAdvice(data)">编辑</span>
  839. <span *ngIf="data.replaceFlag == 0" (click)="delAdvice(data.id)">删除</span>
  840. </div>
  841. </td>
  842. </tr>
  843. </tbody>
  844. </nz-table>
  845. <div class="pagination">
  846. <nz-pagination [(nzPageIndex)]="advicePageIndex" [(nzTotal)]="adviceListLength" nzShowSizeChanger
  847. [(nzPageSize)]="advicePageSize" (nzPageIndexChange)="getAdvice()"
  848. (nzPageSizeChange)="getAdvice()">
  849. </nz-pagination>
  850. </div>
  851. </div>
  852. </div>
  853. </div>
  854. <!-- 历史标本查询 -->
  855. <div *ngIf="checkedTableType == 'historySpecimen'" style="flex: 1; height: 100%">
  856. <div class="
  857. searchBox
  858. display_flex
  859. align-items_center
  860. justify-content_space-between
  861. ">
  862. <div class="
  863. left
  864. alignC
  865. display_flex
  866. justify-content_flex-center
  867. align-items_center
  868. ">
  869. <div>标本编码:</div>
  870. <div>
  871. <input nz-input placeholder="请输入标本编码" [(ngModel)]="historySpecimenCodeSearchInp" />
  872. </div>
  873. <div class="ml8">患者信息:</div>
  874. <div>
  875. <input nz-input placeholder="请输入患者信息" [(ngModel)]="historySpecimenParentSearchInp" />
  876. </div>
  877. </div>
  878. <div class="btns">
  879. <button nz-button nzType="primary" nzGhost (click)="getHistorySpecimen(true)">
  880. 搜索
  881. </button>
  882. </div>
  883. </div>
  884. <div class="table">
  885. <div class="box">
  886. <nz-table class="hospitalTable" [nzData]="historySpecimenList" nzSize="middle"
  887. [nzShowPagination]="false" [nzLoading]="hsLoading">
  888. <thead>
  889. <tr class="thead">
  890. <th nzWidth="7%">序号</th>
  891. <th nzWidth="8%">标本类型</th>
  892. <th nzWidth="8%">状态</th>
  893. <th nzWidth="10%">标本编码</th>
  894. <th nzWidth="8%">患者姓名</th>
  895. <th nzWidth="8%">床号</th>
  896. <th nzWidth="12%">收取扫描时间</th>
  897. <th nzWidth="8%">收取人</th>
  898. <th nzWidth="10%">送达目标科室</th>
  899. <th nzWidth="12%">送达到达时间</th>
  900. <th nzWidth="9%"></th>
  901. </tr>
  902. </thead>
  903. <tbody>
  904. <tr *ngFor="
  905. let data of historySpecimenList;
  906. let i = index
  907. ">
  908. <td>{{ i + 1 }}</td>
  909. <td>{{ data.stype ? data.stype.name : "-" }}</td>
  910. <td>
  911. {{ data.speState ? data.speState.name : "-" }}
  912. </td>
  913. <td>{{ data.scode || "-" }}</td>
  914. <td>{{ data.patientName || "-" }}</td>
  915. <td>{{ data.bedNum || "-" }}</td>
  916. <td>{{ data.arriveTime || "-" }}</td>
  917. <td>{{ data.worker || "-" }}</td>
  918. <td>
  919. {{
  920. data.checkDept
  921. ? deptDisplay == 2
  922. ? data.checkDept.deptalias
  923. : data.checkDept.dept
  924. : "-"
  925. }}
  926. </td>
  927. <td>{{ data.sendTime || "-" }}</td>
  928. <td>
  929. <button (click)="viewSpecimenHistory(data)">
  930. 查看
  931. </button>
  932. </td>
  933. </tr>
  934. </tbody>
  935. </nz-table>
  936. <div class="pagination">
  937. <nz-pagination [(nzPageIndex)]="historySpecimenPageIndex" [(nzTotal)]="historySpecimenListLength"
  938. [(nzPageSize)]="historySpecimenPageSize" (nzPageIndexChange)="getHistorySpecimen()"
  939. (nzPageSizeChange)="getHistorySpecimen()">
  940. </nz-pagination>
  941. </div>
  942. </div>
  943. </div>
  944. </div>
  945. <!-- 快捷报修 -->
  946. <div *ngIf="checkedTableType == 'kjbx'" style="flex: 1; height: 100%;display:flex;">
  947. <form nz-form [formGroup]="bxForm" (ngSubmit)="submitBxForm()" class="bxForm bxFlex">
  948. <nz-form-item>
  949. <nz-form-label [nzSpan]="8" nzRequired nzFor="name">联系人</nz-form-label>
  950. <nz-form-control [nzSpan]="12" nzErrorTip="请填写联系人">
  951. <input type="text" nz-input formControlName="name" placeholder="请填写联系人" />
  952. </nz-form-control>
  953. </nz-form-item>
  954. <nz-form-item>
  955. <nz-form-label [nzSpan]="8" nzRequired nzFor="phone">联系人电话</nz-form-label>
  956. <nz-form-control [nzSpan]="12" nzErrorTip="请填写联系人电话">
  957. <input type="text" nz-input formControlName="phone" placeholder="请填写联系人电话" />
  958. </nz-form-control>
  959. </nz-form-item>
  960. <nz-form-item>
  961. <nz-form-label [nzSpan]="8" nzFor="hospital" nzRequired>所属院区</nz-form-label>
  962. <nz-form-control [nzSpan]="12" nzErrorTip="请选择所属院区!">
  963. <nz-select formControlName="hospital" nzPlaceHolder="请选择所属院区" (ngModelChange)="getPlace($event)">
  964. <nz-option [nzValue]="area.id" [nzLabel]="area.area" *ngFor="let area of areas"></nz-option>
  965. </nz-select>
  966. </nz-form-control>
  967. </nz-form-item>
  968. <nz-form-item>
  969. <nz-form-label [nzSpan]="8" nzFor="building" nzRequired>楼栋</nz-form-label>
  970. <nz-form-control [nzSpan]="12" nzErrorTip="请选择楼栋!">
  971. <nz-select formControlName="building" nzPlaceHolder="请选择楼栋">
  972. <nz-option [nzValue]="place.id" [nzLabel]="place.place" *ngFor="let place of places">
  973. </nz-option>
  974. </nz-select>
  975. </nz-form-control>
  976. </nz-form-item>
  977. <nz-form-item>
  978. <nz-form-label [nzSpan]="8" nzRequired>详细地址</nz-form-label>
  979. <nz-form-control [nzSpan]="12" nzErrorTip="请填写详细地址">
  980. <textarea formControlName="address" nz-input rows="2" placeholder="请填写详细地址"></textarea>
  981. </nz-form-control>
  982. </nz-form-item>
  983. <nz-form-item>
  984. <nz-form-label [nzSpan]="8" nzRequired>报修内容</nz-form-label>
  985. <nz-form-control [nzSpan]="12" nzErrorTip="请填写报修内容">
  986. <textarea formControlName="content" nz-input rows="2" placeholder="请填写报修内容"></textarea>
  987. </nz-form-control>
  988. </nz-form-item>
  989. <nz-form-item>
  990. <nz-form-label [nzSpan]="8" style="visibility: hidden;"></nz-form-label>
  991. <nz-form-control [nzSpan]="12">
  992. <button nz-button nzType="primary" [nzLoading]="bxLoading">提交</button>
  993. </nz-form-control>
  994. </nz-form-item>
  995. </form>
  996. <nz-table class="bxFlex bxTable" [nzData]="quickBxlbList" nzSize="small" [nzShowPagination]="false"
  997. [nzLoading]="quickBxlbLoading">
  998. <!-- <thead>
  999. <tr class="thead">
  1000. <th nzWidth="7%" style="min-width: 50px;">序号</th>
  1001. <th nzWidth="93%">快速报修内容</th>
  1002. </tr>
  1003. </thead> -->
  1004. <tbody>
  1005. <tr (click)="showBxModal(data,'您的报修为“'+data.content+'” 是否确认报修?')" *ngFor="
  1006. let data of quickBxlbList;
  1007. let i = index
  1008. ">
  1009. <td>{{ data.content||'无' }}</td>
  1010. </tr>
  1011. </tbody>
  1012. </nz-table>
  1013. </div>
  1014. <!-- 报修列表 -->
  1015. <div *ngIf="checkedTableType == 'bxlb'" style="flex: 1; height: 100%">
  1016. <div class="
  1017. searchBox
  1018. display_flex
  1019. align-items_center
  1020. justify-content_space-between
  1021. ">
  1022. <div class="
  1023. left
  1024. alignC
  1025. display_flex
  1026. justify-content_flex-center
  1027. align-items_center
  1028. ">
  1029. </div>
  1030. <div class="btns">
  1031. <button nz-button nzType="primary" nzGhost (click)="getBxlb(true)">
  1032. 搜索
  1033. </button>
  1034. </div>
  1035. </div>
  1036. <div class="table">
  1037. <div class="box">
  1038. <nz-table class="hospitalTable" [nzData]="bxlbList" nzSize="middle" [nzShowPagination]="false"
  1039. [nzLoading]="bxlbLoading">
  1040. <thead>
  1041. <tr class="thead">
  1042. <th nzWidth="7%">序号</th>
  1043. <th nzWidth="16%">报修内容</th>
  1044. <th nzWidth="16%">报修时间</th>
  1045. <th nzWidth="16%">报修人</th>
  1046. <th nzWidth="15%">状态</th>
  1047. <th nzWidth="15%">处理人</th>
  1048. <th nzWidth="15%"></th>
  1049. </tr>
  1050. </thead>
  1051. <tbody>
  1052. <tr *ngFor="
  1053. let data of bxlbList;
  1054. let i = index
  1055. ">
  1056. <td>{{ i + 1 }}</td>
  1057. <td>{{ data.description||'无' }}</td>
  1058. <td>
  1059. {{ data.createTime|date:'MM-dd HH:mm' }}
  1060. </td>
  1061. <td>{{ data.requester?data.requester.name:'无' }}</td>
  1062. <td>{{ data.state.name }}</td>
  1063. <td>{{ data.incident?(data.incident.contacts?data.incident.contacts:'无'):'无' }}</td>
  1064. <td>
  1065. <button (click)="viewBx(data)">
  1066. 查看
  1067. </button>
  1068. </td>
  1069. </tr>
  1070. </tbody>
  1071. </nz-table>
  1072. <div class="pagination">
  1073. <nz-pagination [(nzPageIndex)]="bxlbPageIndex" [(nzTotal)]="bxlbListLength"
  1074. [(nzPageSize)]="bxlbPageSize" (nzPageIndexChange)="getBxlb()" (nzPageSizeChange)="getBxlb()">
  1075. </nz-pagination>
  1076. </div>
  1077. </div>
  1078. </div>
  1079. </div>
  1080. </div>
  1081. <div nz-col nzSpan="7" class="orders">
  1082. <div class="
  1083. orderTit
  1084. display_flex
  1085. justify-content_space-between
  1086. align-items_center
  1087. ">
  1088. <span>工单列表<b style="font-size: 12px">({{ orderListTime }}秒)</b></span>
  1089. <div>
  1090. <nz-select style="width: 100px" [(ngModel)]="orderStateSelected"
  1091. (ngModelChange)="changeOrderState($event)" nzPlaceHolder="请选择工单状态">
  1092. <nz-option nzValue="-1" nzLabel="全部"></nz-option>
  1093. <nz-option nzValue="1" nzLabel="执行中"></nz-option>
  1094. <nz-option nzValue="2" nzLabel="待评价"></nz-option>
  1095. </nz-select>
  1096. <nz-select class="ml8" style="width: 100px" [(ngModel)]="orderSelected"
  1097. (ngModelChange)="changeOrderSel(orderSelected)" nzPlaceHolder="请选择任务类型">
  1098. <nz-option nzValue="-1" nzLabel="全部"></nz-option>
  1099. <nz-option *ngFor="let item of orderSelectList" [nzValue]="item.id" [nzLabel]="item.name">
  1100. </nz-option>
  1101. </nz-select>
  1102. </div>
  1103. </div>
  1104. <div class="
  1105. loading
  1106. display_flex
  1107. align-items_center
  1108. justify-content_flex-center
  1109. " *ngIf="OLoading">
  1110. <div>
  1111. <img src="../../assets/images/loading.gif" alt="" />
  1112. <div>加载中...</div>
  1113. </div>
  1114. </div>
  1115. <div class="
  1116. loading
  1117. none
  1118. display_flex
  1119. align-items_center
  1120. justify-content_flex-center
  1121. " *ngIf="orderLength == 0 && !OLoading">
  1122. <div>
  1123. <div>暂无数据</div>
  1124. </div>
  1125. </div>
  1126. <div class="orderList" *ngIf="orderLength != 0 && !OLoading">
  1127. <overlay-scrollbars #osComponentRef1 class="box">
  1128. <div class="orderLisBox">
  1129. <div class="orderLis">
  1130. <div class="
  1131. loading
  1132. display_flex
  1133. align-items_center
  1134. justify-content_flex-center
  1135. " *ngIf="OLoading">
  1136. <div>
  1137. <img src="../../assets/images/loading.gif" alt="" />
  1138. <div>加载中...</div>
  1139. </div>
  1140. </div>
  1141. <div class="orderItem borderB" *ngFor="let item of orderList">
  1142. <div class="info">
  1143. <div class="row" nz-row>
  1144. <div nz-col nzSpan="12" class="col txtL">
  1145. {{
  1146. item.isHalfInspect === 1
  1147. ? "半程陪检"
  1148. : item.taskType.taskName
  1149. }}
  1150. <span *ngIf="
  1151. item.patient &&
  1152. (item.taskType.associationType.value ==
  1153. 'patientTransport' ||
  1154. item.taskType.associationType.value ==
  1155. 'inspect')
  1156. ">
  1157. ({{ item.patient.patientName }})
  1158. </span>
  1159. </div>
  1160. <div nz-col nzSpan="12" class="col txtR">
  1161. {{ item.gdState.name }}
  1162. </div>
  1163. </div>
  1164. <div class="row" nz-row>
  1165. <div nz-col nzSpan="12" class="col txtL"></div>
  1166. <div *ngIf="item.showCreateTime" nz-col nzSpan="12" class="col txtR">
  1167. {{ item.showCreateTime }}
  1168. </div>
  1169. <div *ngIf="item.yyjdTime && item.gdState.value == 11" nz-col nzSpan="12" class="col txtR">
  1170. {{
  1171. item.yyjdTime
  1172. | date
  1173. : "MM-dd
  1174. HH:mm"
  1175. }}
  1176. </div>
  1177. </div>
  1178. <div class="row" nz-row>
  1179. <div nz-col nzSpan="12" class="col txtL">
  1180. <span *ngIf="item.worker">{{ item.worker.name }}
  1181. {{
  1182. item.worker.phone
  1183. ? "(" + item.worker.phone + ")"
  1184. : ""
  1185. }}</span>
  1186. </div>
  1187. <div nz-col nzSpan="12" class="col txtR toDetail" (click)="
  1188. openDetails(
  1189. item.id,
  1190. item.taskType.associationType.id
  1191. )
  1192. ">
  1193. <span>查看详情>></span>
  1194. </div>
  1195. </div>
  1196. </div>
  1197. <div class="process">
  1198. <div class="box display_flex">
  1199. <div class="steps" *ngFor="let step of item.record">
  1200. <div class="step">
  1201. <div class="txt">
  1202. <i [ngClass]="{
  1203. icon_transport: true,
  1204. 'transport-icon_liucheng': true,
  1205. green:
  1206. step.record &&
  1207. step.record[0] &&
  1208. step.record[0].operationTime
  1209. }"></i>
  1210. <p>{{ step.operationName }}</p>
  1211. <p class="time" *ngIf="
  1212. step.record &&
  1213. step.record[0] &&
  1214. step.record[0].operationTime
  1215. ">
  1216. {{
  1217. step.record[0].operationTime
  1218. | date: "MM-dd HH:mm"
  1219. }}
  1220. </p>
  1221. </div>
  1222. <div class="line"></div>
  1223. </div>
  1224. </div>
  1225. </div>
  1226. </div>
  1227. <div class="btns display_flex">
  1228. <div class="btn flex_1 appraise" *ngIf="item.gdState.id == 73"
  1229. (click)="showAppraise(item.id)">
  1230. 评价
  1231. </div>
  1232. <div *ngIf="
  1233. item.gdState.id == 69 ||
  1234. item.gdState.id == 70 ||
  1235. item.gdState.id == 71 ||
  1236. item.gdState.id == 433
  1237. " class="btn flex_1 revocation borderR" (click)="openRecallModal(item.id)">
  1238. 撤销
  1239. </div>
  1240. <div *ngIf="item.gdState.id == 433" class="btn flex_1 revocation borderR"
  1241. (click)="openExecModal(item)">
  1242. 立即执行
  1243. </div>
  1244. <div *ngIf="
  1245. (item.gdState.id == 69 ||
  1246. item.gdState.id == 71) &&
  1247. item.taskType.allowUrgent == 1 &&
  1248. !item.urgentDetails
  1249. " class="btn flex_1 urgent" (click)="showJiaji(item.id)">
  1250. 加急
  1251. </div>
  1252. </div>
  1253. <img src="../../assets/images/icon_ji.png" class="icon_ji" *ngIf="
  1254. item.emergencyType && item.emergencyType.id == 300
  1255. " />
  1256. <img src="../../assets/images/icon_jiaji.png" class="icon_ji" *ngIf="
  1257. item.emergencyType && item.emergencyType.id == 301
  1258. " />
  1259. </div>
  1260. </div>
  1261. </div>
  1262. </overlay-scrollbars>
  1263. <!-- 翻页 -->
  1264. <div class="pageing">
  1265. <div>
  1266. <nz-pagination [(nzPageIndex)]="orderIdx" [(nzTotal)]="orderLength"
  1267. (nzPageIndexChange)="getOrderList()" [nzPageSize]="10" nzSimple>
  1268. </nz-pagination>
  1269. </div>
  1270. </div>
  1271. </div>
  1272. </div>
  1273. </div>
  1274. </div>
  1275. </nz-content>
  1276. </nz-layout>
  1277. </nz-layout>
  1278. </div>
  1279. <!-- 返回系统按钮 -->
  1280. <!-- 右侧悬浮框 -->
  1281. <!-- <div id="fixedMenu" class="fixed" *ngIf="mainRole">
  1282. <div class="right">
  1283. <div class="fixedMenu hujiaozhongxin">
  1284. <div class="menuItems">
  1285. <div class="item">快捷菜单</div>
  1286. </div>
  1287. </div>
  1288. <div class="fixedMenu">
  1289. <div class="menuItems">
  1290. <div class="others" [ngStyle]="{'height':showLastItems?(mainRole?(35*2)+'px':(35*1)+'px'):0}">
  1291. <div [ngClass]="{'item':true,'checked':fixedTab=='back'}" *ngIf="mainRole"
  1292. (click)="checkFixedTab('toSystem')">
  1293. 返回系统
  1294. </div>
  1295. </div>
  1296. </div>
  1297. <div class="arrow" *ngIf="!showLastItems" (click)="fixedMenuXiala()">
  1298. <i class="icon_transport transport-xiala2-01"></i>
  1299. </div>
  1300. <div class="arrow" *ngIf="showLastItems" (click)="fixedMenuShangla()">
  1301. <i class="icon_transport transport-shangla-"></i>
  1302. </div>
  1303. </div>
  1304. </div>
  1305. <div *ngIf="showLastItems&&fixedTab!=''" (click)="fixedMenuShangla()" class="fixedMark">
  1306. </div>
  1307. </div> -->
  1308. <!-- 患者信息一键建单模态框 -->
  1309. <div class="
  1310. save
  1311. display_flex
  1312. align-items_center
  1313. justify-content_flex-center
  1314. patient
  1315. " *ngIf="patientModal">
  1316. <div class="modalBody" style="width: 500px">
  1317. <div class="title">
  1318. 患者送检<i class="icon_transport transport-guanbi" (click)="hidePatientOrder()"></i>
  1319. </div>
  1320. <overlay-scrollbars #osComponentRef7 class="content" style="max-height: 80vh">
  1321. <div class="jiTit borderB" *ngIf="checkedShowMsg.msg">
  1322. 提示:您即将创建<b style="color: red">{{ patientMsg.patientName }}</b>患者检查,{{ checkedShowMsg.msg }}
  1323. </div>
  1324. <div class="jiTit borderB" *ngIf="!checkedShowMsg.msg">
  1325. 提示:您即将创建<b style="color: red">{{ patientMsg.patientName }}</b>患者检查
  1326. </div>
  1327. <div class="jiTit borderB jiTitB">
  1328. 如患者无预约检查无法进行“当天预约检查时”,可使用“特殊情况送检”进行建单。
  1329. </div>
  1330. <div>
  1331. <form nz-form [formGroup]="patientForm" class="patientForm">
  1332. <nz-form-item class="datesControl">
  1333. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="checkedType">任务类型</nz-form-label>
  1334. <nz-form-control nzErrorTip="请选择任务类型!" class="checkedType">
  1335. <nz-radio-group class="radioGroup" formControlName="checkedType" (ngModelChange)="changeCheckedType()">
  1336. <label *ngFor="let item of checkTypeLis" nz-radio [nzValue]="item.id">{{ item.taskName }}</label>
  1337. </nz-radio-group>
  1338. </nz-form-control>
  1339. </nz-form-item>
  1340. <ng-container *ngIf="cLoading">
  1341. <div style="text-align: center">
  1342. <img src="../../../assets/images/loading.gif" alt="" />
  1343. <div>加载中...</div>
  1344. </div>
  1345. </ng-container>
  1346. <ng-container *ngIf="!cLoading">
  1347. <!-- 检查 -->
  1348. <nz-form-item *ngIf="checkedShowMsg.status == 200">
  1349. <nz-form-label [nzSm]="24" [nzXs]="24" nzFor="linkCheck">关联的检查</nz-form-label>
  1350. <nz-form-control class="datesGroup" *ngIf="linkCheckLis.length">
  1351. <nz-checkbox-wrapper class="linkCheckCheck" ngDefaultControl formControlName="linkCheck"
  1352. (nzOnChange)="linkCheckLisChange($event)">
  1353. <div nz-row *ngFor="let item of linkCheckLis">
  1354. <div nz-col nzSpan="24">
  1355. <label nz-checkbox [nzValue]="item">{{
  1356. item.label
  1357. }}</label>
  1358. <i class="icon_transport transport-zu1468 priority"
  1359. *ngIf="item.priority === 1 || item.priority === '1'"></i>
  1360. </div>
  1361. </div>
  1362. </nz-checkbox-wrapper>
  1363. <div class="red" style="line-height: normal; font-weight: bold"
  1364. *ngIf="currentTasktype.isMoreDept === 0 && isInspects">
  1365. 您选择的检查包含了多个科室,请您只包含一个科室。
  1366. </div>
  1367. </nz-form-control>
  1368. <div *ngIf="!linkCheckLis.length">暂无关联的检查</div>
  1369. </nz-form-item>
  1370. <div class="pos" *ngIf="
  1371. (currentTasktype.associationType.value === 'patientTransport' &&
  1372. appointmentZyBuildFlag == 1) ||
  1373. (currentTasktype.associationType.value === 'inspect' &&
  1374. appointmentBuildFlag == 1)
  1375. ">
  1376. <!-- 需要预约检查 -->
  1377. <nz-form-item class="pos-item">
  1378. <nz-form-control>
  1379. <label nz-checkbox [nzDisabled]="
  1380. (!linkCheckLisTrue &&
  1381. currentTasktype.associationType.value === 'inspect') ||
  1382. (linkCheckLisTrue &&
  1383. allowUrgent == 1 &&
  1384. currentTasktype.associationType.value === 'inspect') ||
  1385. (allowUrgent == 1 &&
  1386. currentTasktype.associationType.value ===
  1387. 'patientTransport')
  1388. " [(ngModel)]="isYyInspect" (ngModelChange)="yyInspectChange($event)"
  1389. [ngModelOptions]="{ standalone: true }" style="font-weight: bold">需要预约检查</label>
  1390. </nz-form-control>
  1391. </nz-form-item>
  1392. <!-- 预约建单时间-患者其他服务 -->
  1393. <nz-form-item class="yyTime" [ngClass]="{
  1394. yyTimeError: (!yyTimeZy || !yyDateZy) && clickYYZyFlag
  1395. }" *ngIf="
  1396. currentTasktype.associationType.value === 'patientTransport'
  1397. ">
  1398. <nz-form-label [nzSm]="24" [nzXs]="24">预约建单时间</nz-form-label>
  1399. <nz-form-control [nzSm]="24" [nzXs]="24">
  1400. <nz-date-picker [nzDisabled]="!isYyInspect" [(ngModel)]="yyDateZy"
  1401. (ngModelChange)="yyDateChange($event)" [ngModelOptions]="{ standalone: true }"
  1402. [nzAllowClear]="false" [nzDisabledDate]="disabledyyDateZy" [nzShowToday]="false"></nz-date-picker>
  1403. <nz-time-picker [nzDisabled]="!isYyInspect || !yyDateZy" class="ml8" nzFormat="HH:mm"
  1404. [nzMinuteStep]="30" [nzSecondStep]="60" [(ngModel)]="yyTimeZy"
  1405. (ngModelChange)="yyTimeZyChange($event)" [ngModelOptions]="{ standalone: true }"
  1406. [nzDisabledHours]="disabledHours" [nzDisabledMinutes]="disabledMinutes" [nzAllowEmpty]="false">
  1407. </nz-time-picker>
  1408. <button [disabled]="!isYyInspect || (isYyInspect && !yyDateZy)" nz-button nzType="primary" class="ml8"
  1409. (click)="nextDayZy()">
  1410. 下一日
  1411. </button>
  1412. </nz-form-control>
  1413. <div class="red w100" *ngIf="(!yyTimeZy || !yyDateZy) && clickYYZyFlag">
  1414. 请填写预约建单时间!
  1415. </div>
  1416. <div class="red">
  1417. 请您在预约建单时至少在预约检查时间的基础上提前30分钟,以免错过检查!
  1418. </div>
  1419. </nz-form-item>
  1420. <!-- 预约建单时间 -->
  1421. <nz-form-item class="yyTime" [ngClass]="{ yyTimeError: (!yyTime || !yyDate) && clickYYFlag }"
  1422. *ngIf="currentTasktype.associationType.value === 'inspect'">
  1423. <nz-form-label [nzSm]="24" [nzXs]="24">预约建单时间</nz-form-label>
  1424. <nz-form-control [nzSm]="24" [nzXs]="24">
  1425. <nz-date-picker [nzDisabled]="!isYyInspect" [(ngModel)]="yyDate"
  1426. (ngModelChange)="yyDateChange($event)" [ngModelOptions]="{ standalone: true }"
  1427. [nzAllowClear]="false" [nzDisabledDate]="disabledyyDate" [nzShowToday]="false">
  1428. </nz-date-picker>
  1429. <nz-time-picker [nzDisabled]="!isYyInspect || !yyDate" class="ml8" nzFormat="HH:mm"
  1430. [nzMinuteStep]="30" [nzSecondStep]="60" [(ngModel)]="yyTime" (ngModelChange)="yyTimeChange($event)"
  1431. [ngModelOptions]="{ standalone: true }" [nzDisabledHours]="disabledHours"
  1432. [nzDisabledMinutes]="disabledMinutes" [nzAllowEmpty]="false">
  1433. </nz-time-picker>
  1434. <button [disabled]="!isYyInspect || (isYyInspect && !yyDate)" nz-button nzType="primary" class="ml8"
  1435. (click)="nextDay()">
  1436. 下一日
  1437. </button>
  1438. </nz-form-control>
  1439. <div class="red w100" *ngIf="(!yyTime || !yyDate) && clickYYFlag">
  1440. 请填写预约建单时间!
  1441. </div>
  1442. <div class="red">
  1443. 请您在预约建单时至少在预约检查时间的基础上提前30分钟,以免错过检查!
  1444. </div>
  1445. </nz-form-item>
  1446. </div>
  1447. <!-- 100009 科室任务类型状态码未配置 -->
  1448. <nz-form-item *ngIf="
  1449. checkedShowMsg.status != 200 && checkedShowMsg.status == 100009
  1450. ">
  1451. <div class="txtC">{{ checkedShowMsg.msg }}</div>
  1452. </nz-form-item>
  1453. <!-- 100015 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
  1454. <nz-form-item *ngIf="
  1455. checkedShowMsg.status != 200 &&
  1456. (checkedShowMsg.status == 100015 ||
  1457. checkedShowMsg.status == 100013)
  1458. ">
  1459. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室</nz-form-label>
  1460. <nz-form-control nzErrorTip="请选择起点科室!">
  1461. <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false"
  1462. nzServerSearch nzShowSearch (nzOnSearch)="searchDept('start', checkedShowMsg, $event)"
  1463. nzPlaceHolder="请选择起点科室">
  1464. <ng-container *ngFor="let option of checkedShowMsg.start.start.list">
  1465. <nz-option *ngIf="true" [nzLabel]="
  1466. deptDisplay == 2 ? option.deptalias : option.dept
  1467. " [nzValue]="option.id"></nz-option>
  1468. </ng-container>
  1469. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  1470. <i nz-icon nzType="loading" class="loading-icon"></i>
  1471. 搜索中...
  1472. </nz-option>
  1473. </nz-select>
  1474. </nz-form-control>
  1475. </nz-form-item>
  1476. <!-- 100014 (护士端一键建单展示策略)取终点科室和msg 值展示 -->
  1477. <nz-form-item *ngIf="
  1478. checkedShowMsg.status != 200 &&
  1479. (checkedShowMsg.status == 100014 ||
  1480. checkedShowMsg.status == 100015)
  1481. ">
  1482. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
  1483. <nz-form-control nzErrorTip="请选择目标科室!">
  1484. <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false"
  1485. nzServerSearch nzShowSearch (nzOnSearch)="searchDept('target', checkedShowMsg, $event)"
  1486. nzPlaceHolder="请选择目标科室">
  1487. <ng-container *ngFor="let option of checkedShowMsg.end.end.list">
  1488. <nz-option *ngIf="true" [nzLabel]="
  1489. deptDisplay == 2 ? option.deptalias : option.dept
  1490. " [nzValue]="option.id"></nz-option>
  1491. </ng-container>
  1492. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  1493. <i nz-icon nzType="loading" class="loading-icon"></i>
  1494. 搜索中...
  1495. </nz-option>
  1496. </nz-select>
  1497. </nz-form-control>
  1498. </nz-form-item>
  1499. <!-- 自动送回 -->
  1500. <nz-form-item *ngIf="
  1501. checkedShowMsg.status != 200 && checkedShowMsg.isRemand == 1
  1502. ">
  1503. <nz-form-control>
  1504. <label nz-checkbox [(ngModel)]="isRemand" [ngModelOptions]="{ standalone: true }">自动送回</label>
  1505. </nz-form-control>
  1506. </nz-form-item>
  1507. <!-- 携带设备 -->
  1508. <nz-form-item *ngIf="goodsLis.length">
  1509. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="goods" class="goods">携带设备</nz-form-label>
  1510. <nz-form-control>
  1511. <nz-checkbox-group formControlName="goods" [(ngModel)]="goodsLis">
  1512. </nz-checkbox-group>
  1513. </nz-form-control>
  1514. </nz-form-item>
  1515. <!-- 是否加急 -->
  1516. <nz-form-item *ngIf="current_allowUrgent">
  1517. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="allowUrgent" class="goods">是否加急</nz-form-label>
  1518. <nz-form-control>
  1519. <nz-radio-group [(ngModel)]="allowUrgent" (ngModelChange)="allowUrgentChange($event)"
  1520. formControlName="allowUrgent">
  1521. <label nz-radio nzValue="1">是</label>
  1522. <label nz-radio nzValue="0">否</label>
  1523. </nz-radio-group>
  1524. </nz-form-control>
  1525. </nz-form-item>
  1526. <!-- 加急原因 -->
  1527. <nz-form-item *ngIf="current_allowUrgent && allowUrgent == 1">
  1528. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="urgentReason" class="goods">加急原因</nz-form-label>
  1529. <nz-form-control>
  1530. <textarea rows="4" placeholder="请输入加急原因" nz-input [(ngModel)]="urgentReason"
  1531. formControlName="urgentReason"></textarea>
  1532. </nz-form-control>
  1533. </nz-form-item>
  1534. </ng-container>
  1535. </form>
  1536. </div>
  1537. </overlay-scrollbars>
  1538. <div class="btns display_flex justify-content_flex-center">
  1539. <button nz-button nzType="primary" [nzLoading]="btnLoading1" (click)="confirmPatient1('patient-yuyue')" *ngIf="
  1540. currentTasktype.associationType.value === 'inspect' &&
  1541. isYyInspect &&
  1542. !(currentTasktype.isMoreDept === 0 && isInspects)
  1543. ">
  1544. 预约建单
  1545. </button>
  1546. <button nz-button nzType="primary" [nzLoading]="btnLoading1" (click)="confirmPatient1('patient-zy-yuyue')" *ngIf="
  1547. currentTasktype.associationType.value === 'patientTransport' &&
  1548. isYyInspect
  1549. ">
  1550. 预约建单
  1551. </button>
  1552. <button nz-button nzType="default" [nzLoading]="btnLoading" (click)="confirmPatient()" class="orderThis" *ngIf="
  1553. ((!isYyInspect &&
  1554. currentTasktype.associationType.value === 'inspect' &&
  1555. linkCheckLisTrue) ||
  1556. (!isYyInspect &&
  1557. currentTasktype.associationType.value === 'patientTransport')) &&
  1558. !(currentTasktype.isMoreDept === 0 && isInspects)
  1559. ">
  1560. 直接建单
  1561. </button>
  1562. <button class="btn cancel" nz-button nzType="default" (click)="hidePatientOrder()">
  1563. 取消
  1564. </button>
  1565. </div>
  1566. </div>
  1567. </div>
  1568. <!-- 标本一键建单模态框 其他-->
  1569. <div class="
  1570. save
  1571. display_flex
  1572. align-items_center
  1573. justify-content_flex-center
  1574. shortcut
  1575. " *ngIf="shortcutModal">
  1576. <div class="modalBody">
  1577. <div class="title">
  1578. 快捷建单<i class="icon_transport transport-guanbi" (click)="hideShortcutOrder()"></i>
  1579. </div>
  1580. <!-- 200 该任务类型运送过程暂未配置 -->
  1581. <div class="content txtC bb" *ngIf="buildMsg1.status == 200 && buildType == 'bb'">
  1582. <div class="defeat">{{ buildMsg1.msg }}</div>
  1583. </div>
  1584. <!-- 100009 该任务类型运送过程暂未配置 -->
  1585. <div class="content txtC" *ngIf="buildMsg1.status == 100009">
  1586. <div class="defeat">{{ buildMsg1.msg }}</div>
  1587. </div>
  1588. <!-- 100010 系统未查询到该任务类型关联信息 -->
  1589. <div class="content txtC" *ngIf="buildMsg1.status == 100010">
  1590. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  1591. <div class="defeat">{{ buildMsg1.msg }}</div>
  1592. </div>
  1593. <!-- 100012 (护士端一键建单展示策略)直接取msg -->
  1594. <div class="content txtC" *ngIf="buildMsg1.status == 100012">
  1595. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  1596. <div class="defeat">{{ buildMsg1.msg }}</div>
  1597. </div>
  1598. <!-- 100013 (护士端一键建单展示策略)取起点科室,和mgs值展示 -->
  1599. <div class="content" *ngIf="buildMsg1.status == 100013">
  1600. <div class="jiTit borderB">
  1601. <span>{{ buildMsg1.msg }}</span>
  1602. </div>
  1603. <div>
  1604. <form nz-form [formGroup]="shortcutForm1" class="shortcutForm">
  1605. <nz-form-item>
  1606. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室</nz-form-label>
  1607. <nz-form-control nzErrorTip="请选择起点科室!">
  1608. <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  1609. nzShowSearch (nzOnSearch)="searchDept('start', buildMsg1, $event)" nzPlaceHolder="请选择起点科室">
  1610. <ng-container *ngFor="let option of buildMsg1.start.start.list">
  1611. <nz-option *ngIf="true" [nzLabel]="
  1612. deptDisplay == 2 ? option.deptalias : option.dept
  1613. " [nzValue]="option.id">
  1614. </nz-option>
  1615. </ng-container>
  1616. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  1617. <i nz-icon nzType="loading" class="loading-icon"></i>
  1618. 搜索中...
  1619. </nz-option>
  1620. </nz-select>
  1621. </nz-form-control>
  1622. </nz-form-item>
  1623. </form>
  1624. </div>
  1625. </div>
  1626. <!-- 100014 (护士端一键建单展示策略)取终点科室和msg 值展示 -->
  1627. <div class="content" *ngIf="buildMsg1.status == 100014">
  1628. <div class="jiTit borderB">
  1629. <span>{{ buildMsg1.msg }}</span>
  1630. </div>
  1631. <div>
  1632. <form nz-form [formGroup]="shortcutForm1" class="shortcutForm">
  1633. <nz-form-item>
  1634. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
  1635. <nz-form-control nzErrorTip="请选择目标科室!">
  1636. <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  1637. nzShowSearch (nzOnSearch)="searchDept('target', buildMsg1, $event)" nzAllowClear
  1638. nzPlaceHolder="请选择目标科室">
  1639. <ng-container *ngFor="let option of buildMsg1.end.end.list">
  1640. <nz-option *ngIf="true" [nzLabel]="
  1641. deptDisplay == 2 ? option.deptalias : option.dept
  1642. " [nzValue]="option.id">
  1643. </nz-option>
  1644. </ng-container>
  1645. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  1646. <i nz-icon nzType="loading" class="loading-icon"></i>
  1647. 搜索中...
  1648. </nz-option>
  1649. </nz-select>
  1650. </nz-form-control>
  1651. </nz-form-item>
  1652. </form>
  1653. </div>
  1654. </div>
  1655. <!-- 100015 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
  1656. <div class="content" *ngIf="buildMsg1.status == 100015">
  1657. <div class="jiTit borderB">
  1658. <span>{{ buildMsg1.msg }}</span>
  1659. </div>
  1660. <div>
  1661. <form nz-form [formGroup]="shortcutForm1" class="shortcutForm">
  1662. <nz-form-item>
  1663. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室</nz-form-label>
  1664. <nz-form-control nzErrorTip="请选择起点科室!">
  1665. <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  1666. nzShowSearch (nzOnSearch)="searchDept('start', buildMsg1, $event)" nzPlaceHolder="请选择起点科室">
  1667. <ng-container *ngFor="let option of buildMsg1.start.start.list">
  1668. <nz-option *ngIf="true" [nzLabel]="
  1669. deptDisplay == 2 ? option.deptalias : option.dept
  1670. " [nzValue]="option.id">
  1671. </nz-option>
  1672. </ng-container>
  1673. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  1674. <i nz-icon nzType="loading" class="loading-icon"></i>
  1675. 搜索中...
  1676. </nz-option>
  1677. </nz-select>
  1678. </nz-form-control>
  1679. </nz-form-item>
  1680. <nz-form-item>
  1681. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
  1682. <nz-form-control nzErrorTip="请选择目标科室!">
  1683. <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  1684. nzShowSearch (nzOnSearch)="searchDept('target', buildMsg1, $event)" nzPlaceHolder="请选择目标科室">
  1685. <ng-container *ngFor="let option of buildMsg1.end.end.list">
  1686. <nz-option *ngIf="true" [nzLabel]="
  1687. deptDisplay == 2 ? option.deptalias : option.dept
  1688. " [nzValue]="option.id">
  1689. </nz-option>
  1690. </ng-container>
  1691. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  1692. <i nz-icon nzType="loading" class="loading-icon"></i>
  1693. 搜索中...
  1694. </nz-option>
  1695. </nz-select>
  1696. </nz-form-control>
  1697. </nz-form-item>
  1698. </form>
  1699. </div>
  1700. </div>
  1701. <!-- 标本配送备注 -->
  1702. <div *ngIf="buildMsg1.remarksSwitch == 1">
  1703. <p class="mt8 mb8">工单备注:</p>
  1704. <textarea nz-input [placeholder]="workOrderRemarkTips1" [nzAutosize]="{ minRows: 3, maxRows: 5 }" maxlength="100"
  1705. [(ngModel)]="workOrderRemark1" #remarksEle1></textarea>
  1706. <p class="mt8 mb8" *ngIf="customRemarks1.length">快捷输入:</p>
  1707. <div *ngIf="customRemarks1.length">
  1708. <span class="addRemarks" *ngFor="let item of customRemarks1" (click)="addRemarks1(item)">【{{ item }}】</span>
  1709. </div>
  1710. <p class="mt8 mb8" *ngIf="historyCustomRemarks1.length">历史输入:</p>
  1711. <div *ngIf="historyCustomRemarks1.length">
  1712. <span class="addRemarks" *ngFor="let item of historyCustomRemarks1" (click)="addRemarks1(item)">【{{ item
  1713. }}】</span>
  1714. </div>
  1715. </div>
  1716. <div class="btns display_flex justify-content_flex-center">
  1717. <button *ngIf="buildMsg1.status != 100009 && buildMsg1.status != 100010" nz-button nzType="primary"
  1718. [nzLoading]="btnLoading" (click)="confirmShortcut1()">
  1719. 确认
  1720. </button>
  1721. <button class="btn cancel" nz-button nzType="default" (click)="hideShortcutOrder()">
  1722. 取消
  1723. </button>
  1724. </div>
  1725. </div>
  1726. </div>
  1727. <!-- 一键建单确认模态框 -->
  1728. <div class="
  1729. save
  1730. display_flex
  1731. align-items_center
  1732. justify-content_flex-center
  1733. shortcut
  1734. " *ngIf="confirmSub">
  1735. <div class="modalBody sm">
  1736. <div class="title">
  1737. 快捷建单<i class="icon_transport transport-guanbi" (click)="cancel()"></i>
  1738. </div>
  1739. <div class="content txtC">
  1740. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  1741. <div class="defeat">{{ confirmInfo }}</div>
  1742. <div class="otherInfo">请谨慎操作,如撤销请点击取消。</div>
  1743. </div>
  1744. <div class="btns display_flex justify-content_flex-center">
  1745. <button nz-button nzType="primary" [nzLoading]="btnLoading3" (click)="confirm()">
  1746. 确认
  1747. </button>
  1748. <button class="btn cancel" nz-button nzType="default" (click)="cancel()">
  1749. 取消
  1750. </button>
  1751. </div>
  1752. </div>
  1753. </div>
  1754. <!-- 撤销工单 -->
  1755. <app-dialog-delete [delModal]="recallOrderModal" (hideDelModalEvent)="closeRecallOrderModal()" [btnLoading]="btnLoading"
  1756. (confirmDelEvent)="confirmRec()" content="您确认要撤销工单吗?撤销工单我们会通知服务台、支助人员不再执行此工单,请谨慎操作,如确认撤销请点击确认。"></app-dialog-delete>
  1757. <!-- 立即执行定时预约工单 -->
  1758. <app-dialog-delete [delModal]="execModal" (hideDelModalEvent)="closeExecModal()" [btnLoading]="btnLoading"
  1759. (confirmDelEvent)="confirmExec()" content="您确认要立即执行该工单吗?"></app-dialog-delete>
  1760. <!-- 评价模态框 -->
  1761. <div class="
  1762. save
  1763. display_flex
  1764. align-items_center
  1765. justify-content_flex-center
  1766. appraise
  1767. " *ngIf="appraiseModal">
  1768. <div class="modalBody">
  1769. <div class="title">
  1770. 评价<i class="icon_transport transport-guanbi" (click)="hideAppraise()"></i>
  1771. </div>
  1772. <div class="content">
  1773. <div class="jiTit borderB">您的评价对我们至关重要,感谢您!</div>
  1774. <br />
  1775. <div class="star">
  1776. <div nz-row class="
  1777. alignC
  1778. display_flex
  1779. justify-content_flex-center
  1780. align-items_center
  1781. ">
  1782. <div nz-col nzSpan="4">星级:</div>
  1783. <div nz-col nzSpan="20">
  1784. <nz-rate [(ngModel)]="starNum"></nz-rate>
  1785. </div>
  1786. </div>
  1787. <div nz-row>
  1788. <div nz-col nzSpan="4">评级:</div>
  1789. <div nz-col nzSpan="20">
  1790. <textarea rows="4" nz-input [(ngModel)]="appraiseContent"></textarea>
  1791. </div>
  1792. </div>
  1793. </div>
  1794. <br />
  1795. </div>
  1796. <div class="btns display_flex justify-content_flex-center">
  1797. <button nz-button nzType="primary" [nzLoading]="btnLoading" (click)="confirmAppraise()">
  1798. 确认
  1799. </button>
  1800. <button class="btn cancel" nz-button nzType="default" (click)="hideAppraise()">
  1801. 关闭
  1802. </button>
  1803. </div>
  1804. </div>
  1805. </div>
  1806. <!-- 意见箱查看 -->
  1807. <div class="
  1808. save
  1809. display_flex
  1810. align-items_center
  1811. justify-content_flex-center
  1812. advice
  1813. " *ngIf="adviceModal">
  1814. <div class="modalBody">
  1815. <div class="title">
  1816. 意见箱-查看<i class="icon_transport transport-guanbi" (click)="hideAdvice()"></i>
  1817. </div>
  1818. <div class="content">
  1819. <div class="conItem">
  1820. <div class="jiTit borderB color3" nz-row>
  1821. <div nz-col nzSpan="11" class="txtL">
  1822. 发起人:{{
  1823. adviceDetailInfo.createUser
  1824. ? adviceDetailInfo.createUser.name
  1825. : ""
  1826. }}
  1827. </div>
  1828. <div nz-col nzSpan="13" class="txtR">
  1829. 填写时间:{{ adviceDetailInfo.createTime }}
  1830. </div>
  1831. </div>
  1832. <div class="defeat">意见内容:{{ adviceDetailInfo.content }}</div>
  1833. </div>
  1834. <div class="conItem" *ngIf="adviceDetailInfo.replaceFlag == 1">
  1835. <div class="jiTit borderB color3" nz-row>
  1836. <div nz-col nzSpan="11" class="txtL">
  1837. 回复人:{{
  1838. adviceDetailInfo.replyUser ? adviceDetailInfo.replyUser.name : ""
  1839. }}
  1840. </div>
  1841. <div nz-col nzSpan="13" class="txtR">
  1842. 填写时间:{{ adviceDetailInfo.replyTime }}
  1843. </div>
  1844. </div>
  1845. <div class="defeat">意见内容:{{ adviceDetailInfo.replyContent }}</div>
  1846. </div>
  1847. <div class="conItem noCon" *ngIf="adviceDetailInfo.replaceFlag == 0">
  1848. <div class="jiTit color3" nz-row>暂未回复</div>
  1849. </div>
  1850. </div>
  1851. <div class="btns display_flex justify-content_flex-center">
  1852. <button class="btn know" nz-button nzType="primary" nzGhost (click)="hideAdvice()">
  1853. 知道了
  1854. </button>
  1855. </div>
  1856. </div>
  1857. </div>
  1858. <!-- 意见收集 -->
  1859. <div class="
  1860. save
  1861. display_flex
  1862. align-items_center
  1863. justify-content_flex-center
  1864. advice
  1865. " *ngIf="adviceSubModal">
  1866. <div class="modalBody">
  1867. <div class="title">
  1868. 意见收集<i class="icon_transport transport-guanbi" (click)="hideSubAdvice()"></i>
  1869. </div>
  1870. <div class="content">
  1871. <div class="title">意见内容:</div>
  1872. <textarea rows="4" maxlength="255" nz-input [(ngModel)]="adviceSubContent" placeholder="请填写意见内容"></textarea>
  1873. <br /><br />
  1874. </div>
  1875. <div class="btns display_flex justify-content_flex-center">
  1876. <button nz-button nzType="primary" [nzLoading]="btnLoading" (click)="confirmSubAdvice()">
  1877. 确认
  1878. </button>
  1879. <button class="btn cancel" nz-button nzType="default" (click)="hideSubAdvice()">
  1880. 取消
  1881. </button>
  1882. </div>
  1883. </div>
  1884. </div>
  1885. <!-- 加急模态框 -->
  1886. <div class="save display_flex align-items_center justify-content_flex-center jiaji" *ngIf="jiajiModal">
  1887. <div class="modalBody">
  1888. <div class="title">
  1889. 加急<i class="icon_transport transport-guanbi" (click)="hideJiaji()"></i>
  1890. </div>
  1891. <div class="content">
  1892. <div class="jiTit borderB">
  1893. 请填写加急原因,填写后我们会根据您的诉求优先处理
  1894. </div>
  1895. <div class="title">加急原因:</div>
  1896. <textarea rows="4" nz-input [(ngModel)]="jiajiContent" placeholder="请填写加急原因"></textarea>
  1897. <br /><br />
  1898. </div>
  1899. <div class="btns display_flex justify-content_flex-center">
  1900. <button nz-button nzType="primary" [nzLoading]="btnLoading" (click)="confirmJiaji()">
  1901. 确认
  1902. </button>
  1903. <button class="btn cancel" nz-button nzType="default" (click)="hideJiaji()">
  1904. 取消
  1905. </button>
  1906. </div>
  1907. </div>
  1908. </div>
  1909. <!-- 查看标本详情模态框 -->
  1910. <div *ngIf="detailModel" [class.detailModel]="detailModel">
  1911. <div class="box">
  1912. <h2 class="title">未取标本详情</h2>
  1913. <div class="table">
  1914. <div class="table-content">
  1915. <table>
  1916. <thead>
  1917. <tr>
  1918. <th>序号</th>
  1919. <th>标本类型</th>
  1920. <th>标本编码</th>
  1921. <th>患者姓名</th>
  1922. <th>床号</th>
  1923. <th>采集时间</th>
  1924. <th>目标科室</th>
  1925. </tr>
  1926. </thead>
  1927. <tbody>
  1928. <overlay-scrollbars #osComponentRef6 style="height: 100%" *ngIf="detailList.length && !loading33">
  1929. <tr *ngFor="let detail of detailList; let i = index"
  1930. [style]="{ background: i % 2 === 1 ? '#fff' : '#f9fafb' }">
  1931. <td>{{ i + 1 }}</td>
  1932. <td>{{ detail.stype ? detail.stype.name : "-" }}</td>
  1933. <td>{{ detail.scode || "-" }}</td>
  1934. <td>{{ detail.patientName || "-" }}</td>
  1935. <td>{{ detail.bedNum || "-" }}</td>
  1936. <td>
  1937. {{ detail.printDate || "-" }}
  1938. </td>
  1939. <td>
  1940. {{
  1941. detail.checkDept
  1942. ? deptDisplay == 2
  1943. ? detail.checkDept.deptalias
  1944. : detail.checkDept.dept
  1945. : "-"
  1946. }}
  1947. <div *ngIf="detail.urgent != 0" [class.ji]="detail.urgent == 1"></div>
  1948. </td>
  1949. </tr>
  1950. </overlay-scrollbars>
  1951. <div style="font-size: 18px" *ngIf="!detailList.length && !loading33" class="noData33">
  1952. 暂无数据
  1953. </div>
  1954. <div class="loading33" *ngIf="loading33">
  1955. <img src="./../../assets/images/loading.gif" alt="" />
  1956. <p>正在加载中</p>
  1957. </div>
  1958. </tbody>
  1959. </table>
  1960. </div>
  1961. </div>
  1962. <div class="btns">
  1963. <div class="btn" (click)="hideSpeDetailModel()">知道了</div>
  1964. </div>
  1965. <i class="icon_transport transport-guanbi" (click)="hideSpeDetailModel()"></i>
  1966. </div>
  1967. </div>
  1968. <!-- 删除意见模态框 -->
  1969. <app-dialog-delete [delModal]="delAdviceModal" (hideDelModalEvent)="hideDelAdviceModal()" [btnLoading]="btnLoading"
  1970. (confirmDelEvent)="confirmDelAdvice()" content="您确认要删除此条意见吗?"></app-dialog-delete>
  1971. <!-- 关注模态框 -->
  1972. <div class="
  1973. commonModal
  1974. display_flex
  1975. justify-content_flex-center
  1976. align-items_center
  1977. " *ngIf="commonModal">
  1978. <div class="modalBody">
  1979. <div class="title">
  1980. 提示<i class="icon_transport transport-guanbi" (click)="hideCommonModal()"></i>
  1981. </div>
  1982. <div class="content">
  1983. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  1984. <div class="defeat">{{ tipsMsg1 }}</div>
  1985. </div>
  1986. <div class="display_flex justify-content_flex-center">
  1987. <button nz-button nzType="primary" (click)="confirmCommon()" [nzLoading]="loading4">
  1988. 确认
  1989. </button>
  1990. <button class="btn cancel" nz-button nzType="default" (click)="hideCommonModal()">
  1991. 取消
  1992. </button>
  1993. </div>
  1994. </div>
  1995. </div>
  1996. <!-- 是否确认报修模态框 -->
  1997. <div class="
  1998. commonModal
  1999. display_flex
  2000. justify-content_flex-center
  2001. align-items_center
  2002. " *ngIf="bxModal">
  2003. <div class="modalBody">
  2004. <div class="title">
  2005. 提示<i class="icon_transport transport-guanbi" (click)="hideBxModal()"></i>
  2006. </div>
  2007. <div class="content">
  2008. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  2009. <div class="defeat">{{ tipsMsg2 }}</div>
  2010. </div>
  2011. <div class="display_flex justify-content_flex-center">
  2012. <button nz-button nzType="primary" (click)="confirmBx()" [nzLoading]="loading6">
  2013. 确认
  2014. </button>
  2015. <button class="btn cancel" nz-button nzType="default" (click)="hideBxModal()">
  2016. 取消
  2017. </button>
  2018. </div>
  2019. </div>
  2020. </div>
  2021. <!-- 消息弹框模板 -->
  2022. <ng-template #msgTemplate let-msg="data">
  2023. <div class="msgTemBox ant-notification-notice-content">
  2024. <div class="borderLeft"></div>
  2025. <div class="ant-notification-notice-with-icon">
  2026. <span class="ant-notification-notice-icon">
  2027. <i class="icon icon_transport transport-shouye9"></i>
  2028. </span>
  2029. <div class="ant-notification-notice-message">
  2030. {{ msg.type == 1 ? "通知" : "消息" }}
  2031. </div>
  2032. <div class="ant-notification-notice-description">{{ msg.content }}</div>
  2033. </div>
  2034. </div>
  2035. </ng-template>
  2036. <!-- 操作成功/失败提示框 -->
  2037. <app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
  2038. [info]="promptInfo" [back]="back" (closeModel)="closeModel($event)"></app-prompt-modal>
  2039. <!-- 护士端科室切换提示框 -->
  2040. <app-hs-prompt-modal [changeShow]="changeShow" [closeTime]="closeTime" [closeTimeFlag]="closeTimeFlag"
  2041. [show]="hsPromptModalShow" (closeModelHs)="closeModelHs($event)" (clearModelHs)="clearModelHs($event)"
  2042. deptType="nurse">
  2043. </app-hs-prompt-modal>
  2044. <!-- 标本历史记录查看 -->
  2045. <app-history-prompt-modal *ngIf="historyPromptModalShow" [show]="historyPromptModalShow" [scode]="scode"
  2046. (closeModelHs)="closeModelHistory($event)"></app-history-prompt-modal>
  2047. <!-- 报修详情查看 -->
  2048. <app-bx-prompt-modal *ngIf="bxPromptModalShow" [show]="bxPromptModalShow" [bData]="bData"
  2049. (closeModelHs)="closeModelBx($event)"></app-bx-prompt-modal>
  2050. <!-- 科室二维码模态框 -->
  2051. <!-- 在模态框所在的 div 添加属性 [appDrag] -->
  2052. <div appDrag class="modal" *ngIf="isShowNurseCode">
  2053. <div class="header drag-title">
  2054. <h2>签到二维码</h2>
  2055. <i class="icon-close icon_transport transport-guanbi1" (click)="closeNurseCode()"></i>
  2056. </div>
  2057. <div class="dialog-center">
  2058. <div class="dialog-code">
  2059. <img [src]="nurseCodeImg" alt="" />
  2060. </div>
  2061. </div>
  2062. <div class="dialog-operate">
  2063. <strong class="dialog-refresh" (click)="showNurseCode()">刷新</strong>
  2064. <span>{{ refreshQRCodeTime }}s</span>
  2065. </div>
  2066. </div>
  2067. <router-outlet></router-outlet>
  2068. <!-- 遮罩 -->
  2069. <app-mask *ngIf="maskFlag"></app-mask>
  2070. <!-- 是否需要医护陪同检查模态框 -->
  2071. <app-dialog-delete [delModal]="accompanyModal" (hideDelModalEvent)="hideAccompanyModal($event)"
  2072. (cancelDelEvent)="hideAccompanyModal($event)" [btnLoading]="accompanyLoading" [cancenlLoading]="cancenlLoading"
  2073. (confirmDelEvent)="confirmAccompany()" confirmTxt="是" cancelTxt="否" content="您选择的患者是危重或特级护理或一级护理患者,请问是否需要医护陪同检查?">
  2074. </app-dialog-delete>
  2075. <!-- 重复建单策略 -->
  2076. <app-dialog-delete [delModal]="repeatModal" (hideDelModalEvent)="hideRepeatModal()" [btnLoading]="loadingRepeat"
  2077. (confirmDelEvent)="confirmRepeat()" [content]="repeatMsg" confirmTxt="是" cancelTxt="否"
  2078. (cancelDelEvent)="hideRepeatModal()"></app-dialog-delete>