hushijiandan.component.html 71 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253
  1. <div class="nurse">
  2. <nz-layout class="app-layout display_flex flex_auto">
  3. <nz-sider class="menu-sidebar slider" nzWidth="220px" nzBreakpoint="xs" [nzTrigger]="null">
  4. <div class="sidebar-logo display_flex align-items_center justify-content_flex-center">
  5. <div>
  6. <img src="../../assets/images/login_logo.png" alt="logo">
  7. <span>大势医院输送保障管理平台</span>
  8. </div>
  9. </div>
  10. <div class="notAvailable display_flex align-items_center justify-content_flex-center"
  11. *ngIf="!deptTaskTypeRules.openInspection">
  12. <div>
  13. <img src="../../assets/images/icon_jianchakong.png" alt="">
  14. <div>暂未开通</div>
  15. </div>
  16. </div>
  17. <div class="mainInfo">
  18. <div class="searchBox">
  19. <input nz-input [(ngModel)]='tabSearchCont' (ngModelChange)="searchTabInp($event)" placeholder="请输入关键字" />
  20. </div>
  21. <div class="checkBanner" nz-row>
  22. <button nz-button nz-col nzSpan="12" class="checkItem checked" (click)="changeInfo()">患者信息</button>
  23. </div>
  24. <!-- 患者信息 -->
  25. <div class="checkedInfo patient" style="padding-bottom:0;">
  26. <overlay-scrollbars #osComponentRef4 class="box">
  27. <div class="loading display_flex align-items_center justify-content_flex-center"
  28. *ngIf="pLoading&&deptTaskTypeRules.openInspection">
  29. <div>
  30. <img src="../../assets/images/loading.gif" alt="">
  31. <div>加载中...</div>
  32. </div>
  33. </div>
  34. <div class="loading display_flex align-items_center justify-content_flex-center"
  35. *ngIf="!patientList.length&&!pLoading">
  36. <div>
  37. <div>暂无数据</div>
  38. </div>
  39. </div>
  40. <div *ngIf="patientList.length&&!pLoading">
  41. <div class="item" *ngFor="let item of patientList">
  42. <div class="itemTit txtC" style="font-weight: bold;">
  43. <ng-container *ngIf="item.illnessState">
  44. <i *ngIf="item.illnessState.value === '2'" class="colorRed icon_transport transport-wei" nz-tooltip
  45. nzTooltipTitle="病危"></i>
  46. <i *ngIf="item.illnessState.value === '3'" class="colorRed icon_transport transport-zhong1"
  47. nz-tooltip nzTooltipTitle="病重"></i>
  48. </ng-container>
  49. <ng-container *ngIf="item.careLevel">
  50. <i *ngIf="item.careLevel.value === '0'" class="icon_transport transport-te1" nz-tooltip
  51. nzTooltipTitle="特级护理"></i>
  52. <i *ngIf="item.careLevel.value === '1'" class="icon_transport transport-Bduanshuzi1" nz-tooltip
  53. nzTooltipTitle="一级护理"></i>
  54. <i *ngIf="item.careLevel.value === '2'" class="icon_transport transport-Bduanshuzi" nz-tooltip
  55. nzTooltipTitle="二级护理"></i>
  56. <i *ngIf="item.careLevel.value === '3'" class="icon_transport transport-Bduanshuzi11" nz-tooltip
  57. nzTooltipTitle="三级护理"></i>
  58. </ng-container>
  59. <span nz-tooltip [nzTooltipTitle]="recentInfo" nzTooltipPlacement="right" [nzMouseEnterDelay]="1"
  60. (mouseenter)="getRecentInfo(item.patientCode)">{{item.patientName}}({{item.bedNum}})</span>
  61. </div>
  62. <div class="checkInfo" nz-row *ngIf="followFlag === '1'">
  63. <span nz-col nzSpan="2" class="icon_transport transport-zhongdianguanzhu" (click)="follow(item)"
  64. [ngStyle]="{color:item.focusPatient === 0?'white':'red'}" nz-tooltip
  65. [nzTooltipTitle]="item.focusPatient === 0?'白色心为非特殊关注,需手动建单后支助人员上门送检':'红色心为特殊关注,患者所有检查会自动建单,支助人员主动上门送检'"></span>
  66. <span nz-col nzSpan="2"></span>
  67. <span nz-col nzSpan="12">{{item.residenceNo}}</span>
  68. <span nz-col nzSpan="6" class="txtR">待检 {{item.watingCount}}</span>
  69. <span nz-col nzSpan="2"></span>
  70. </div>
  71. <div class="checkInfo" nz-row *ngIf="followFlag === '0'">
  72. <span nz-col nzSpan="2"></span>
  73. <span nz-col nzSpan="12">{{item.residenceNo}}</span>
  74. <span nz-col nzSpan="6" class="txtR">待检 {{item.watingCount}}</span>
  75. <span nz-col nzSpan="2"></span>
  76. </div>
  77. <div class="btn" (click)="newPatientOrder(item)">一键建单</div>
  78. </div>
  79. </div>
  80. </overlay-scrollbars>
  81. </div>
  82. <!-- 翻页 -->
  83. <!-- <div class="paging">
  84. <div>
  85. <nz-pagination [(nzPageIndex)]="infoPageIdx" [(nzTotal)]="infoLength" (nzPageIndexChange)="getPatient()"
  86. [nzPageSize]='5' nzSimple>
  87. </nz-pagination>
  88. </div>
  89. </div> -->
  90. </div>
  91. </nz-sider>
  92. <nz-layout class="layout" style="background:#fff;position: relative;">
  93. <nz-header>
  94. <div class="app-header borderB display_flex justify-content_space-between align-items_center">
  95. <div class="nurseTitle display_flex justify-content_space-between align-items_center">
  96. 护士端
  97. <div class="nurseCode" (click)="showNurseCode()">
  98. <i class="nurseCodeIcon icon_transport transport-erweima"></i>二维码
  99. </div>
  100. </div>
  101. <div class="userInfo">
  102. <div class="wel">欢迎您:</div>
  103. <div class="user">
  104. <img src="../../assets/images/icon_keshi.png" alt="">
  105. <span>{{loginUser.dept.dept}}</span>
  106. </div>
  107. <div class="userInfo-wrap">
  108. <div class="logOut" (click)="changeKsNow()">切换科室</div>
  109. <div class="logOut" (click)="logOut()">退出</div>
  110. </div>
  111. </div>
  112. </div>
  113. </nz-header>
  114. <nz-content class="nzContent">
  115. <div class="inner-content">
  116. <div class="mainInfo" nz-row>
  117. <div nz-col nzSpan="17" class="cont">
  118. <div class="top">
  119. <div class="nums borderB" nz-row>
  120. <!-- 标本信息未开通 -->
  121. <div *ngIf="!deptTaskTypeRules.openSpecimen" nz-col nzSpan="13" nz-row class="h100p">
  122. <div class="notAvailable display_flex align-items_center justify-content_flex-center">
  123. <div>
  124. <img src="../../assets/images/icon_jianchakong.png" alt="">
  125. <div>暂未开通</div>
  126. </div>
  127. </div>
  128. <div nz-col nzSpan="20" nz-row class="borderR h100p">
  129. <div nz-col nzSpan="6"
  130. class="borderR alignC display_flex justify-content_flex-center align-items_center h100p">
  131. <img src="../../assets/images/icon_hubiaoben.png" alt="">
  132. </div>
  133. <div nz-col nzSpan="18">
  134. <div class="txtC h33 borderB overAuto">*****</div>
  135. <div nz-row class="h53">
  136. <div nz-col nzSpan="12" class="txtC borderR h100p">
  137. <p>*</p>
  138. <div>急标数量</div>
  139. </div>
  140. <div nz-col nzSpan="12" class="txtC h100p">
  141. <p>*</p>
  142. <div>普标数量</div>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <div nz-col nzSpan="4" class="borderR h100p">
  148. <div class="quick">
  149. <button class="btn txtC">
  150. 一键收取标本
  151. </button>
  152. </div>
  153. </div>
  154. </div>
  155. <!-- 标本信息已开通 -->
  156. <div *ngIf='deptTaskTypeRules.openSpecimen' nz-col nzSpan="13" nz-row class="h100p">
  157. <div nz-col nzSpan="18" nz-row class="borderR h100p">
  158. <div nz-col nzSpan="4"
  159. class="borderR alignC display_flex justify-content_flex-center align-items_center h100p">
  160. <img src="../../assets/images/icon_hubiaoben.png" alt="">
  161. </div>
  162. <div nz-col nzSpan="20">
  163. <div class="txtC h33 borderB overAuto">{{specimenWorkOrderMsg.specimenInfo||''}}</div>
  164. <div nz-row class="h53">
  165. <div nz-col nzSpan="12" class="txtC borderR h100p cur" (click)="changeSpeDetail(1)">
  166. <p>{{specimenWorkOrderMsg.specimenCount?specimenWorkOrderMsg.specimenCount.urgent:0}}</p>
  167. <div>急标数量</div>
  168. </div>
  169. <div nz-col nzSpan="12" class="txtC h100p cur" (click)="changeSpeDetail(0)">
  170. <p>{{specimenWorkOrderMsg.specimenCount?specimenWorkOrderMsg.specimenCount.noUrgent:0}}</p>
  171. <div>普标数量</div>
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. <div nz-col nzSpan="6" class="borderR h100p">
  177. <div class="quick">
  178. <button class="btn txtC" (click)="newShortcutOrder1(bbMsg,'bb')">
  179. 收取所有标本
  180. </button>
  181. <button class="btn txtC" (click)="newShortcutOrder1(bbMsg,'bb',true)">
  182. 收取急查标本
  183. </button>
  184. </div>
  185. </div>
  186. </div>
  187. <!-- 药品/静配信息未开通 -->
  188. <div
  189. *ngIf="!deptTaskTypeRules.openStaticDistribution&&!deptTaskTypeRules.openDrugsBag&&!drugJpLoading"
  190. nz-col nzSpan="11" nz-row class="h100p">
  191. <div class="notAvailable display_flex align-items_center justify-content_flex-center">
  192. <div>
  193. <img src="../../assets/images/icon_jianchakong.png" alt="">
  194. <div>暂未开通</div>
  195. </div>
  196. </div>
  197. <div nz-col nzSpan="6"
  198. class="borderR alignC display_flex justify-content_flex-center align-items_center h100p">
  199. <img src="../../assets/images/icon_hujingpei.png" alt="">
  200. </div>
  201. <div nz-col nzSpan="18" class="h100p">
  202. <div
  203. class="txtC h50p alignC display_flex justify-content_flex-center align-items_center overAuto borderB">
  204. <span>*****</span>
  205. </div>
  206. <div
  207. class="txtC h50p alignC display_flex justify-content_flex-center align-items_center overAuto">
  208. <span>*****</span>
  209. </div>
  210. </div>
  211. </div>
  212. <!-- 药品/静配信息已开通 -->
  213. <div
  214. *ngIf="(deptTaskTypeRules.openStaticDistribution||deptTaskTypeRules.openDrugsBag)&&!drugJpLoading"
  215. nz-col nzSpan="11" nz-row class="h100p">
  216. <div nz-col nzSpan="6"
  217. class="borderR alignC display_flex justify-content_flex-center align-items_center h100p">
  218. <img src="../../assets/images/icon_hujingpei.png" alt="">
  219. </div>
  220. <div nz-col nzSpan="18" class="h100p">
  221. <div class="txtC h50p borderB">
  222. <div class="swiperBox">
  223. <div class="swiper" [ngStyle]="{'top':swiperTop+'px'}"
  224. *ngIf="jpDrugsWKOMsg.drugsInfoList&&jpDrugsWKOMsg.drugsInfoList.length>0">
  225. <div class="item txtC alignC display_flex justify-content_flex-center align-items_center"
  226. *ngFor="let item of jpDrugsWKOMsg.drugsInfoList">
  227. <span>{{item}}</span>
  228. </div>
  229. </div>
  230. <div class="swiper none display_flex justify-content_flex-center align-items_center"
  231. *ngIf="!jpDrugsWKOMsg.drugsInfoList||!jpDrugsWKOMsg.drugsInfoList.length">
  232. <div class="item alignC display_flex justify-content_flex-center align-items_center">
  233. <span>暂无药品配送信息</span>
  234. </div>
  235. </div>
  236. </div>
  237. </div>
  238. <div class="txtC h50p">
  239. <div class="swiperBox">
  240. <div class="swiper" [ngStyle]="{'top':swiperTop1+'px'}"
  241. *ngIf="jpDrugsWKOMsg.jpInfoList&&jpDrugsWKOMsg.jpInfoList.length>0">
  242. <div class="item txtC alignC display_flex justify-content_flex-center align-items_center"
  243. *ngFor="let item of jpDrugsWKOMsg.jpInfoList">
  244. <span>{{item}}</span>
  245. </div>
  246. </div>
  247. <div class="swiper none display_flex justify-content_flex-center align-items_center"
  248. *ngIf="!jpDrugsWKOMsg.jpInfoList||!jpDrugsWKOMsg.jpInfoList.length">
  249. <div class="item alignC display_flex justify-content_flex-center align-items_center">
  250. <!-- <span>暂无静配配送信息</span> -->
  251. <span></span>
  252. </div>
  253. </div>
  254. </div>
  255. </div>
  256. </div>
  257. </div>
  258. <div *ngIf="drugJpLoading" nz-col nzSpan="11" nz-row
  259. class="h100p display_flex justify-content_flex-center align-items_center">
  260. <div class="txtC" style="text-align: center;">
  261. <img src="../../../assets/images/loading.gif" alt="">
  262. <div>加载中...</div>
  263. </div>
  264. </div>
  265. </div>
  266. <div class="tab borderB" nz-row>
  267. <div nz-col nzSpan="6"
  268. [ngClass]="{'txtC':true,'cur':true, 'borderR':true,'checked':checkedTableType=='other'}"
  269. (click)="checkTable('other')">综合日志</div>
  270. <div nz-col nzSpan="6"
  271. [ngClass]="{'txtC':true,'cur':true, 'borderR':true,'checked':checkedTableType=='advice'}"
  272. (click)="checkTable('advice')">意见箱</div>
  273. <div nz-col nzSpan="6"
  274. [ngClass]="{'txtC':true,'cur':true, 'borderR':true,'checked':checkedTableType=='historySpecimen'}"
  275. (click)="checkTable('historySpecimen')">历史标本查询</div>
  276. <div nz-col nzSpan="6"
  277. class="txtC h100p alignR display_flex justify-content_flex-end align-items_center">
  278. <div class="btn txtC" *ngIf="mainRole" (click)="toMain()">回到系统管理</div>
  279. </div>
  280. </div>
  281. </div>
  282. <!-- 综合日志 -->
  283. <div *ngIf="checkedTableType=='other'" style="flex: 1;height: 100%;position: relative;">
  284. <div class="otherBox">
  285. <div class="otherBoxInner">
  286. <div class="otherBox-nav">
  287. <div class="otherBox-nav__head">
  288. <input nz-input placeholder="请输入关键字" [(ngModel)]="otherSearch"
  289. (ngModelChange)="otherSearchChange()" />
  290. </div>
  291. <overlay-scrollbars #osComponentRef2 class="otherBox-nav__main" [ngStyle]="{height:'100%'}">
  292. <div class="otherBox-nav__mainInner" *ngIf="!oLoading&&othersList.length>0">
  293. <div [sortablejs]="othersList" [sortablejsOptions]="othersListOptions" class="w100">
  294. <div class="otherBox-nav__mainItem" *ngFor="let item of othersList"
  295. (click)="otherClick(item)" [ngClass]="{active:selectOtherId == item.id}"
  296. [title]="item.taskName">{{item.taskName}}
  297. </div>
  298. </div>
  299. </div>
  300. <div class="otherBox-nav__mainInner noData" *ngIf="!oLoading&&othersList.length==0">
  301. 暂无数据
  302. </div>
  303. <div class="otherBox-nav__mainInner oLoading" *ngIf="oLoading">
  304. <img src="../../../assets/images/loading.gif" alt="">
  305. <div>加载中...</div>
  306. </div>
  307. </overlay-scrollbars>
  308. </div>
  309. <div class="otherBox-main">
  310. <div class="otherBox-main__main">
  311. <!-- -----------------start------------------ -->
  312. <div class="modalBody_box">
  313. <div class="modalBody">
  314. <div class="modalBody_left" *ngIf="!nLoading&&selectOtherId">
  315. <overlay-scrollbars class="modalBody_left_box" #osComponentRef3
  316. style="height: calc(100vh - 263px);">
  317. <div class="modalBody_left_box">
  318. <div
  319. style="flex:1;display: flex;flex-direction: column;justify-content: center;align-items: center;">
  320. <div class="content txtC"
  321. *ngIf='buildMsg.status==100013||buildMsg.status==100014||buildMsg.status==100015'>
  322. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  323. </div>
  324. <!-- 200 该任务类型运送过程暂未配置 -->
  325. <div class="content txtC" *ngIf="buildMsg.status==200&&buildType=='bb'">
  326. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  327. </div>
  328. <!-- 100009 该任务类型运送过程暂未配置 -->
  329. <div class="content txtC" *ngIf="buildMsg.status==100009">
  330. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  331. </div>
  332. <!-- 100010 系统未查询到该任务类型关联信息 -->
  333. <div class="content txtC" *ngIf="buildMsg.status==100010">
  334. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  335. </div>
  336. <!-- 100012 (护士端一键建单展示策略)直接取msg -->
  337. <div class="content txtC" *ngIf="buildMsg.status==100012">
  338. <div class="defeat" [innerHTML]="buildMsg.msg"></div>
  339. </div>
  340. <!-- 100013 (护士端一键建单展示策略)取起点科室,和mgs值展示 -->
  341. <div class="content" *ngIf='buildMsg.status==100013'>
  342. <div>
  343. <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
  344. <nz-form-item>
  345. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室
  346. </nz-form-label>
  347. <nz-form-control nzErrorTip="请选择起点科室!">
  348. <nz-select class="w100" formControlName="originOffice"
  349. [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
  350. (nzOnSearch)="searchDept('start',buildMsg,$event)"
  351. nzPlaceHolder="请选择起点科室">
  352. <ng-container *ngFor="let option of buildMsg.start.start.list">
  353. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id">
  354. </nz-option>
  355. </ng-container>
  356. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  357. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  358. </nz-option>
  359. </nz-select>
  360. </nz-form-control>
  361. </nz-form-item>
  362. </form>
  363. </div>
  364. </div>
  365. <!-- 100014 (护士端一键建单展示策略)取终点科室和msg 值展示 -->
  366. <div class="content" *ngIf='buildMsg.status==100014'>
  367. <div>
  368. <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
  369. <nz-form-item>
  370. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室
  371. </nz-form-label>
  372. <nz-form-control nzErrorTip="请选择目标科室!">
  373. <nz-select class="w100" formControlName="targetOffice"
  374. [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
  375. (nzOnSearch)="searchDept('target',buildMsg,$event)" nzAllowClear
  376. nzPlaceHolder="请选择目标科室">
  377. <ng-container *ngFor="let option of buildMsg.end.end.list">
  378. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id">
  379. </nz-option>
  380. </ng-container>
  381. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  382. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  383. </nz-option>
  384. </nz-select>
  385. </nz-form-control>
  386. </nz-form-item>
  387. </form>
  388. </div>
  389. </div>
  390. <!-- 100015 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
  391. <div class="content" *ngIf='buildMsg.status==100015'>
  392. <div>
  393. <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
  394. <nz-form-item>
  395. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室
  396. </nz-form-label>
  397. <nz-form-control nzErrorTip="请选择起点科室!">
  398. <nz-select class="w100" formControlName="originOffice"
  399. [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
  400. (nzOnSearch)="searchDept('start',buildMsg,$event)"
  401. nzPlaceHolder="请选择起点科室">
  402. <ng-container *ngFor="let option of buildMsg.start.start.list">
  403. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id">
  404. </nz-option>
  405. </ng-container>
  406. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  407. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  408. </nz-option>
  409. </nz-select>
  410. </nz-form-control>
  411. </nz-form-item>
  412. <nz-form-item>
  413. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室
  414. </nz-form-label>
  415. <nz-form-control nzErrorTip="请选择目标科室!">
  416. <nz-select class="w100" formControlName="targetOffice"
  417. [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
  418. (nzOnSearch)="searchDept('target',buildMsg,$event)"
  419. nzPlaceHolder="请选择目标科室">
  420. <ng-container *ngFor="let option of buildMsg.end.end.list">
  421. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id">
  422. </nz-option>
  423. </ng-container>
  424. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  425. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  426. </nz-option>
  427. </nz-select>
  428. </nz-form-control>
  429. </nz-form-item>
  430. </form>
  431. </div>
  432. </div>
  433. <!-- 工单备注: -->
  434. <div style="width: 100%;margin: 10px auto 0;" *ngIf="buildMsg.remarksSwitch == 1">
  435. <p>工单备注:</p>
  436. <textarea nz-input [placeholder]="workOrderRemarkTips"
  437. [nzAutosize]="{ minRows: 3, maxRows: 5 }" maxlength="100"
  438. [(ngModel)]="workOrderRemark" #remarksEle></textarea>
  439. <p class="mt8 mb8" *ngIf="customRemarks.length">快捷输入:</p>
  440. <div *ngIf="customRemarks.length">
  441. <span class="addRemarks" *ngFor="let item of customRemarks"
  442. (click)="addRemarks(item)">【{{item}}】</span>
  443. </div>
  444. <p class="mt8 mb8" *ngIf="historyCustomRemarks.length">历史输入:</p>
  445. <div *ngIf="historyCustomRemarks.length">
  446. <span class="addRemarks" *ngFor="let item of historyCustomRemarks"
  447. (click)="addRemarks(item)">【{{item}}】</span>
  448. </div>
  449. </div>
  450. </div>
  451. <div *ngIf="selectOtherId" class="btns display_flex justify-content_flex-center">
  452. <button *ngIf="buildMsg.status!=100009&&buildMsg.status!=100010" nz-button
  453. nzType="primary" [nzLoading]="loading5" (click)="confirmShortcut()">确认</button>
  454. </div>
  455. </div>
  456. </overlay-scrollbars>
  457. </div>
  458. <div class="modalBody_left nLoading" *ngIf="nLoading">
  459. <img src="../../../assets/images/loading.gif" alt="">
  460. <div>加载中...</div>
  461. </div>
  462. <div class="modalBody_left noData" *ngIf="!nLoading&&!selectOtherId">
  463. 暂无数据
  464. </div>
  465. <div class="modalBody_right">
  466. <div class="modalBody_right_head">综合日志<span>{{logTime}}秒后自动刷新</span></div>
  467. <overlay-scrollbars class="modalBody_right_box" #osComponentRef9 style="height: 100%;"
  468. *ngIf="!rLoading&&listDeptOrderRecords.length">
  469. <div class="modalBody_right_box">
  470. <div class="modalBody_right_list" *ngFor="let item of listDeptOrderRecords">
  471. {{item.msg}}</div>
  472. </div>
  473. </overlay-scrollbars>
  474. <div class="modalBody_left nLoading w100" *ngIf="rLoading">
  475. <img src="../../../assets/images/loading.gif" alt="">
  476. <div>加载中...</div>
  477. </div>
  478. <div class="modalBody_left noData w100" *ngIf="!rLoading&&!listDeptOrderRecords.length">
  479. 暂无数据
  480. </div>
  481. </div>
  482. </div>
  483. </div>
  484. <!-- -----------------end------------------ -->
  485. </div>
  486. </div>
  487. </div>
  488. </div>
  489. </div>
  490. <!-- 意见箱 -->
  491. <div *ngIf="checkedTableType=='advice'" style="flex: 1;height: 100%;">
  492. <div class="searchBox display_flex align-items_center justify-content_space-between">
  493. <div class="left alignC display_flex justify-content_flex-center align-items_center">
  494. <div>意见内容:</div>
  495. <div><input nz-input placeholder="请输入关键字" [(ngModel)]="adviceSearchInp" /></div>
  496. </div>
  497. <div class="btns">
  498. <button nz-button nzType="primary" nzGhost (click)="getAdvice()">搜索</button>
  499. <button nz-button nzType="primary" (click)="addAdvice()">新增</button>
  500. </div>
  501. </div>
  502. <div class="table">
  503. <div class="box">
  504. <nz-table class="hospitalTable" [nzData]="adviceList" nzSize="middle" [nzShowPagination]="false"
  505. [nzLoading]="adviceLoading">
  506. <thead>
  507. <tr class="thead">
  508. <th nzWidth="7%">序号</th>
  509. <th nzWidth="15%">填写时间</th>
  510. <th nzWidth="36%">意见内容</th>
  511. <th nzWidth="12%">状态</th>
  512. <th nzWidth="30%">操作</th>
  513. </tr>
  514. </thead>
  515. <tbody>
  516. <tr *ngFor="let data of adviceList;let i = index;">
  517. <td>{{i+1}}</td>
  518. <td>{{ data.createTime.slice(0,16) }}</td>
  519. <td>
  520. <span style="overflow: hidden;text-overflow: ellipsis;">
  521. {{ spliceContent(data.content) }}
  522. </span>
  523. </td>
  524. <td>{{ data.replaceFlag==1?'已回复':'未回复' }}</td>
  525. <td>
  526. <div class="coop">
  527. <span (click)="adviceDetail(data.id)">查看</span>
  528. <span *ngIf='data.replaceFlag==0' (click)="addAdvice(data)">编辑</span>
  529. <span *ngIf='data.replaceFlag==0' (click)="delAdvice(data.id)">删除</span>
  530. </div>
  531. </td>
  532. </tr>
  533. </tbody>
  534. </nz-table>
  535. <div class="pagination">
  536. <nz-pagination [(nzPageIndex)]="advicePageIndex" [(nzTotal)]="adviceListLength" nzShowSizeChanger
  537. [(nzPageSize)]="advicePageSize" (nzPageIndexChange)="getAdvice()"
  538. (nzPageSizeChange)="getAdvice()">
  539. </nz-pagination>
  540. </div>
  541. </div>
  542. </div>
  543. </div>
  544. <!-- 历史标本查询 -->
  545. <div *ngIf="checkedTableType=='historySpecimen'" style="flex: 1;height: 100%;">
  546. <div class="searchBox display_flex align-items_center justify-content_space-between">
  547. <div class="left alignC display_flex justify-content_flex-center align-items_center">
  548. <div>标本编码:</div>
  549. <div><input nz-input placeholder="请输入标本编码" [(ngModel)]="historySpecimenCodeSearchInp" /></div>
  550. <div class="ml8">患者信息:</div>
  551. <div><input nz-input placeholder="请输入患者信息" [(ngModel)]="historySpecimenParentSearchInp" /></div>
  552. </div>
  553. <div class="btns">
  554. <button nz-button nzType="primary" nzGhost (click)="getHistorySpecimen(true)">搜索</button>
  555. </div>
  556. </div>
  557. <div class="table">
  558. <div class="box">
  559. <nz-table class="hospitalTable" [nzData]="historySpecimenList" nzSize="middle"
  560. [nzShowPagination]="false" [nzLoading]="hsLoading">
  561. <thead>
  562. <tr class="thead">
  563. <th nzWidth="7%">序号</th>
  564. <th nzWidth="8%">标本类型</th>
  565. <th nzWidth="8%">状态</th>
  566. <th nzWidth="10%">标本编码</th>
  567. <th nzWidth="8%">患者姓名</th>
  568. <th nzWidth="8%">床号</th>
  569. <th nzWidth="12%">收取扫描时间</th>
  570. <th nzWidth="8%">收取人</th>
  571. <th nzWidth="10%">送达目标科室</th>
  572. <th nzWidth="12%">送达到达时间</th>
  573. <th nzWidth="9%"></th>
  574. </tr>
  575. </thead>
  576. <tbody>
  577. <tr *ngFor="let data of historySpecimenList;let i = index;">
  578. <td>{{i+1}}</td>
  579. <td>{{ data.stype?data.stype.name:'-' }}</td>
  580. <td>{{ data.speState?data.speState.name:'-' }}</td>
  581. <td>{{ data.scode||'-' }}</td>
  582. <td>{{ data.patientName||'-' }}</td>
  583. <td>{{ data.bedNum||'-' }}</td>
  584. <td>{{data.arriveTime||'-'}}</td>
  585. <td>{{ data.worker||'-' }}</td>
  586. <td>{{data.checkDept?data.checkDept.dept:'-'}}</td>
  587. <td>{{data.sendTime||'-'}}</td>
  588. <td><button (click)="viewSpecimenHistory(data)">查看</button></td>
  589. </tr>
  590. </tbody>
  591. </nz-table>
  592. <div class="pagination">
  593. <nz-pagination [(nzPageIndex)]="historySpecimenPageIndex" [(nzTotal)]="historySpecimenListLength"
  594. [(nzPageSize)]="historySpecimenPageSize" (nzPageIndexChange)="getHistorySpecimen()"
  595. (nzPageSizeChange)="getHistorySpecimen()">
  596. </nz-pagination>
  597. </div>
  598. </div>
  599. </div>
  600. </div>
  601. </div>
  602. <div nz-col nzSpan="7" class="orders">
  603. <div class="orderTit display_flex justify-content_space-between align-items_center">
  604. <span>工单列表</span>
  605. <div>
  606. <nz-select style="width: 100px;" [(ngModel)]="orderStateSelected"
  607. (ngModelChange)="changeOrderState($event)" nzPlaceHolder="请选择工单状态">
  608. <nz-option nzValue="-1" nzLabel="全部"></nz-option>
  609. <nz-option nzValue="1" nzLabel="执行中"></nz-option>
  610. <nz-option nzValue="2" nzLabel="待评价"></nz-option>
  611. </nz-select>
  612. <nz-select class="ml8" style="width: 100px;" [(ngModel)]="orderSelected"
  613. (ngModelChange)="changeOrderSel(orderSelected)" nzPlaceHolder="请选择任务类型">
  614. <nz-option nzValue="-1" nzLabel="全部"></nz-option>
  615. <nz-option *ngFor="let item of orderSelectList" [nzValue]="item.id" [nzLabel]="item.name">
  616. </nz-option>
  617. </nz-select>
  618. </div>
  619. </div>
  620. <div class="loading display_flex align-items_center justify-content_flex-center" *ngIf="OLoading">
  621. <div>
  622. <img src="../../assets/images/loading.gif" alt="">
  623. <div>加载中...</div>
  624. </div>
  625. </div>
  626. <div class="loading none display_flex align-items_center justify-content_flex-center "
  627. *ngIf="orderLength==0&&!OLoading">
  628. <div>
  629. <div>暂无数据</div>
  630. </div>
  631. </div>
  632. <div class="orderList" *ngIf="orderLength!=0&&!OLoading">
  633. <overlay-scrollbars #osComponentRef1 class="box">
  634. <div class="orderLisBox">
  635. <div class="orderLis">
  636. <div class="loading display_flex align-items_center justify-content_flex-center" *ngIf="OLoading">
  637. <div>
  638. <img src="../../assets/images/loading.gif" alt="">
  639. <div>加载中...</div>
  640. </div>
  641. </div>
  642. <div class="orderItem borderB" *ngFor="let item of orderList">
  643. <div class="info">
  644. <div class="row" nz-row>
  645. <div nz-col nzSpan="12" class="col txtL">{{item.taskType.taskName}}</div>
  646. <div nz-col nzSpan="12" class="col txtR">{{item.gdState.name}}</div>
  647. </div>
  648. <div class="row" nz-row>
  649. <div nz-col nzSpan="12" class="col txtL">
  650. {{(item.endDepts&&item.endDepts[0]&&item.endDepts[0].dept)?item.endDepts[0].dept:''}}
  651. </div>
  652. <div *ngIf="item.showCreateTime" nz-col nzSpan="12" class="col txtR">{{item.showCreateTime}}
  653. </div>
  654. </div>
  655. <div class="row" nz-row>
  656. <div nz-col nzSpan="12" class="col txtL"><span *ngIf="item.worker">{{item.worker.name}}
  657. {{item.worker.phone?'('+item.worker.phone+')':''}}</span></div>
  658. <div nz-col nzSpan="12" class="col txtR toDetail"
  659. (click)='openDetails(item.id,item.taskType.associationType.id)'><span>查看详情>></span>
  660. </div>
  661. </div>
  662. </div>
  663. <div class="process">
  664. <div class="box display_flex">
  665. <div class="steps" *ngFor="let step of item.record">
  666. <div class="step">
  667. <div class="txt">
  668. <i
  669. [ngClass]="{'icon_transport':true, 'transport-icon_liucheng':true,'green':(step.record&&step.record[0]&&step.record[0].operationTime)}"></i>
  670. <p>{{step.operationName}}</p>
  671. <p class="time" *ngIf="step.record&&step.record[0]&&step.record[0].operationTime">
  672. {{step.record[0].operationTime|date:'MM-dd HH:mm'}}</p>
  673. </div>
  674. <div class="line"></div>
  675. </div>
  676. </div>
  677. </div>
  678. </div>
  679. <div class="btns display_flex">
  680. <div class="btn flex_1 appraise" *ngIf="item.gdState.id==73" (click)="showAppraise(item.id)">
  681. 评价</div>
  682. <div
  683. *ngIf="item.gdState.id==69||item.gdState.id==70||item.gdState.id==71||item.gdState.id==433"
  684. class="btn flex_1 revocation borderR" (click)="openRecallModal(item.id)">撤销</div>
  685. <div
  686. *ngIf="(item.gdState.id==69||item.gdState.id==71)&&item.taskType.allowUrgent==1&&!item.urgentDetails"
  687. class="btn flex_1 urgent" (click)="showJiaji(item.id)">加急
  688. </div>
  689. </div>
  690. <img src="../../assets/images/icon_ji.png" class="icon_ji"
  691. *ngIf="item.emergencyType&&item.emergencyType.id==300">
  692. <img src="../../assets/images/icon_jiaji.png" class="icon_ji"
  693. *ngIf="item.emergencyType&&item.emergencyType.id==301">
  694. </div>
  695. </div>
  696. </div>
  697. </overlay-scrollbars>
  698. <!-- 翻页 -->
  699. <div class="pageing">
  700. <div>
  701. <nz-pagination [(nzPageIndex)]="orderIdx" [(nzTotal)]="orderLength"
  702. (nzPageIndexChange)="getOrderList()" [nzPageSize]='10' nzSimple>
  703. </nz-pagination>
  704. </div>
  705. </div>
  706. </div>
  707. </div>
  708. </div>
  709. </div>
  710. </nz-content>
  711. </nz-layout>
  712. </nz-layout>
  713. </div>
  714. <!-- 返回系统按钮 -->
  715. <!-- 右侧悬浮框 -->
  716. <div id="fixedMenu" class="fixed" *ngIf="mainRole">
  717. <div class="right">
  718. <div class="fixedMenu hujiaozhongxin">
  719. <div class="menuItems">
  720. <div class="item">快捷菜单</div>
  721. </div>
  722. </div>
  723. <div class="fixedMenu">
  724. <div class="menuItems">
  725. <div class="others" [ngStyle]="{'height':showLastItems?(mainRole?(35*2)+'px':(35*1)+'px'):0}">
  726. <div [ngClass]="{'item':true,'checked':fixedTab=='back'}" *ngIf="mainRole"
  727. (click)="checkFixedTab('toSystem')">
  728. 返回系统
  729. </div>
  730. </div>
  731. </div>
  732. <div class="arrow" *ngIf="!showLastItems" (click)="fixedMenuXiala()">
  733. <i class="icon_transport transport-xiala2-01"></i>
  734. </div>
  735. <div class="arrow" *ngIf="showLastItems" (click)="fixedMenuShangla()">
  736. <i class="icon_transport transport-shangla-"></i>
  737. </div>
  738. </div>
  739. </div>
  740. <div *ngIf="showLastItems&&fixedTab!=''" (click)="fixedMenuShangla()" class="fixedMark">
  741. </div>
  742. </div>
  743. <!-- 患者信息一键建单模态框 -->
  744. <div class="save display_flex align-items_center justify-content_flex-center patient" *ngIf="patientModal">
  745. <div class="modalBody" style="width: 500px;">
  746. <div class="title">患者送检<i class="icon_transport transport-guanbi" (click)="hidePatientOrder()"></i></div>
  747. <overlay-scrollbars #osComponentRef7 class="content" style="max-height:80vh">
  748. <div class="jiTit borderB" *ngIf="checkedShowMsg.msg">
  749. 提示:您即将创建<b style="color: red;">{{patientMsg.patientName}}</b>患者检查,{{checkedShowMsg.msg}}
  750. </div>
  751. <div class="jiTit borderB" *ngIf="!checkedShowMsg.msg">
  752. 提示:您即将创建<b style="color: red;">{{patientMsg.patientName}}</b>患者检查
  753. </div>
  754. <div class="jiTit borderB jiTitB">
  755. 如患者无预约检查无法进行“当天预约检查时”,可使用“特殊情况送检”进行建单。
  756. </div>
  757. <div>
  758. <form nz-form [formGroup]="patientForm" class="patientForm">
  759. <nz-form-item class="datesControl">
  760. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="checkedType">任务类型</nz-form-label>
  761. <nz-form-control nzErrorTip="请选择任务类型!" class="checkedType">
  762. <nz-radio-group class="radioGroup" formControlName="checkedType" (ngModelChange)="changeCheckedType()">
  763. <label *ngFor="let item of checkTypeLis" nz-radio [nzValue]="item.id">{{item.taskName}}</label>
  764. </nz-radio-group>
  765. </nz-form-control>
  766. </nz-form-item>
  767. <!-- 检查 -->
  768. <nz-form-item *ngIf="checkedShowMsg.status==200">
  769. <nz-form-label [nzSm]="24" [nzXs]="24" nzFor="linkCheck">关联的检查</nz-form-label>
  770. <nz-form-control class="datesGroup" *ngIf="linkCheckLis.length">
  771. <nz-checkbox-group class="linkCheckCheck" formControlName="linkCheck" [(ngModel)]="linkCheckLis"
  772. (ngModelChange)="linkCheckLisChange()">
  773. </nz-checkbox-group>
  774. </nz-form-control>
  775. <div *ngIf="!linkCheckLis.length">暂无关联的检查</div>
  776. </nz-form-item>
  777. <!-- 预约建单时间-患者其他服务 -->
  778. <nz-form-item class="yyTime" [ngClass]="{yyTimeError:!yyTimeZy&&clickYYZyFlag}"
  779. *ngIf="appointmentZyBuildFlag === '1'&&allowUrgent==0">
  780. <nz-form-label [nzSm]="24" [nzXs]="24">预约建单时间</nz-form-label>
  781. <nz-form-control [nzSm]="24" [nzXs]="24">
  782. <nz-time-picker nzFormat="HH:mm" [nzMinuteStep]="30" [nzSecondStep]="60" [(ngModel)]="yyTimeZy"
  783. (ngModelChange)="yyTimeZyChange($event)" [ngModelOptions]="{standalone: true}"
  784. [nzDisabledHours]="disabledHours" [nzDisabledMinutes]="disabledMinutes"></nz-time-picker>
  785. <label *ngIf="yyTimeZy" nz-checkbox [(ngModel)]="nextDayZy" (ngModelChange)="nextDayZyChange($event)"
  786. class="ml8" [ngModelOptions]="{standalone: true}">次日</label>
  787. </nz-form-control>
  788. <div class="red w100" *ngIf="!yyTimeZy&&clickYYZyFlag">请填写预约建单时间!</div>
  789. <div class="red">请您在预约建单时至少在预约检查时间的基础上提前30分钟,以免错过检查!</div>
  790. </nz-form-item>
  791. <!-- 预约建单时间 -->
  792. <nz-form-item class="yyTime" [ngClass]="{yyTimeError:!yyTime&&clickYYFlag}"
  793. *ngIf="linkCheckLis.length&&linkCheckLisTrue&&hasTime&&lessTime&&appointmentBuildFlag === '1'&&allowUrgent==0">
  794. <nz-form-label [nzSm]="24" [nzXs]="24">预约建单时间</nz-form-label>
  795. <nz-form-control [nzSm]="24" [nzXs]="24">
  796. <nz-time-picker nzFormat="HH:mm" [nzMinuteStep]="30" [nzSecondStep]="60" [(ngModel)]="yyTime"
  797. (ngModelChange)="yyTimeChange($event)" [ngModelOptions]="{standalone: true}"
  798. [nzDisabledHours]="disabledHours" [nzDisabledMinutes]="disabledMinutes"></nz-time-picker>
  799. <label *ngIf="yyTime" nz-checkbox [(ngModel)]="nextDay" (ngModelChange)="nextDayChange($event)"
  800. class="ml8" [ngModelOptions]="{standalone: true}">次日</label>
  801. </nz-form-control>
  802. <div class="red w100" *ngIf="!yyTime&&clickYYFlag">请填写预约建单时间!</div>
  803. <div class="red">请您在预约建单时至少在预约检查时间的基础上提前30分钟,以免错过检查!</div>
  804. </nz-form-item>
  805. <!-- 100009 科室任务类型状态码未配置 -->
  806. <nz-form-item *ngIf="(checkedShowMsg.status!=200)&&(checkedShowMsg.status==100009)">
  807. <div class="txtC">{{checkedShowMsg.msg}}</div>
  808. </nz-form-item>
  809. <!-- 100015 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
  810. <nz-form-item
  811. *ngIf="(checkedShowMsg.status!=200)&&(checkedShowMsg.status==100015||checkedShowMsg.status==100013)">
  812. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室</nz-form-label>
  813. <nz-form-control nzErrorTip="请选择起点科室!">
  814. <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  815. nzShowSearch (nzOnSearch)="searchDept('start',checkedShowMsg,$event)" nzPlaceHolder="请选择起点科室">
  816. <ng-container *ngFor="let option of checkedShowMsg.start.start.list">
  817. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  818. </ng-container>
  819. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  820. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  821. </nz-option>
  822. </nz-select>
  823. </nz-form-control>
  824. </nz-form-item>
  825. <!-- 100014 (护士端一键建单展示策略)取终点科室和msg 值展示 -->
  826. <nz-form-item
  827. *ngIf="(checkedShowMsg.status!=200)&&(checkedShowMsg.status==100014||checkedShowMsg.status==100015)">
  828. <!-- <nz-form-item> -->
  829. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
  830. <nz-form-control nzErrorTip="请选择目标科室!">
  831. <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  832. nzShowSearch (nzOnSearch)="searchDept('target',checkedShowMsg,$event)" nzPlaceHolder="请选择目标科室">
  833. <ng-container *ngFor="let option of checkedShowMsg.end.end.list">
  834. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  835. </ng-container>
  836. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  837. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  838. </nz-option>
  839. </nz-select>
  840. </nz-form-control>
  841. </nz-form-item>
  842. <!-- 自动送回 -->
  843. <nz-form-item *ngIf="checkedShowMsg.status!=200&&checkedShowMsg.isRemand == 1">
  844. <nz-form-control>
  845. <label nz-checkbox [(ngModel)]="isRemand" [ngModelOptions]="{standalone: true}">自动送回</label>
  846. </nz-form-control>
  847. </nz-form-item>
  848. <!-- 携带设备 -->
  849. <nz-form-item *ngIf="goodsLis.length">
  850. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="goods" class="goods">携带设备</nz-form-label>
  851. <nz-form-control>
  852. <nz-checkbox-group formControlName="goods" [(ngModel)]="goodsLis">
  853. </nz-checkbox-group>
  854. </nz-form-control>
  855. </nz-form-item>
  856. <!-- 是否加急 -->
  857. <nz-form-item *ngIf="current_allowUrgent">
  858. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="allowUrgent" class="goods">是否加急</nz-form-label>
  859. <nz-form-control>
  860. <nz-radio-group [(ngModel)]="allowUrgent" formControlName="allowUrgent">
  861. <label nz-radio nzValue="1">是</label>
  862. <label nz-radio nzValue="0">否</label>
  863. </nz-radio-group>
  864. </nz-form-control>
  865. </nz-form-item>
  866. <!-- 加急原因 -->
  867. <nz-form-item *ngIf="current_allowUrgent&&allowUrgent == 1">
  868. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="urgentReason" class="goods">加急原因</nz-form-label>
  869. <nz-form-control>
  870. <textarea rows="4" placeholder="请输入加急原因" nz-input [(ngModel)]="urgentReason"
  871. formControlName="urgentReason"></textarea>
  872. </nz-form-control>
  873. </nz-form-item>
  874. </form>
  875. </div>
  876. </overlay-scrollbars>
  877. <div class="btns display_flex justify-content_flex-center">
  878. <button
  879. *ngIf="linkCheckLis.length&&linkCheckLisTrue&&hasTime&&lessTime&&appointmentBuildFlag === '1'&&allowUrgent==0"
  880. nz-button nzType="primary" [nzLoading]="btnLoading1" (click)="confirmPatient1('patient-yuyue')">预约建单</button>
  881. <button *ngIf="appointmentZyBuildFlag === '1'&&allowUrgent==0" nz-button nzType="primary"
  882. [nzLoading]="btnLoading1" (click)="confirmPatient1('patient-zy-yuyue')">预约建单</button>
  883. <button
  884. *ngIf="!(checkedShowMsg.status==200&&!linkCheckLis.length)&&linkCheckLisTrue&&((allowUrgent == 1 && urgentReason.trim() !== '')||allowUrgent == 0)"
  885. nz-button nzType="default" [nzLoading]="btnLoading" (click)="confirmPatient()" class="orderThis">直接建单</button>
  886. <button class="btn cancel" nz-button nzType="default" (click)="hidePatientOrder()">取消</button>
  887. </div>
  888. </div>
  889. </div>
  890. <!-- 标本一键建单模态框 其他-->
  891. <div class="save display_flex align-items_center justify-content_flex-center shortcut" *ngIf="shortcutModal">
  892. <div class="modalBody">
  893. <div class="title">快捷建单<i class="icon_transport transport-guanbi" (click)="hideShortcutOrder()"></i></div>
  894. <!-- 200 该任务类型运送过程暂未配置 -->
  895. <div class="content txtC bb" *ngIf="buildMsg1.status==200&&buildType=='bb'">
  896. <div class="defeat">{{buildMsg1.msg}}</div>
  897. </div>
  898. <!-- 100009 该任务类型运送过程暂未配置 -->
  899. <div class="content txtC" *ngIf="buildMsg1.status==100009">
  900. <div class="defeat">{{buildMsg1.msg}}</div>
  901. </div>
  902. <!-- 100010 系统未查询到该任务类型关联信息 -->
  903. <div class="content txtC" *ngIf="buildMsg1.status==100010">
  904. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  905. <div class="defeat">{{buildMsg1.msg}}</div>
  906. </div>
  907. <!-- 100012 (护士端一键建单展示策略)直接取msg -->
  908. <div class="content txtC" *ngIf="buildMsg1.status==100012">
  909. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  910. <div class="defeat">{{buildMsg1.msg}}</div>
  911. </div>
  912. <!-- 100013 (护士端一键建单展示策略)取起点科室,和mgs值展示 -->
  913. <div class="content" *ngIf='buildMsg1.status==100013'>
  914. <div class="jiTit borderB">
  915. <span>{{buildMsg1.msg}}</span>
  916. </div>
  917. <div>
  918. <form nz-form [formGroup]="shortcutForm1" class="shortcutForm">
  919. <nz-form-item>
  920. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室</nz-form-label>
  921. <nz-form-control nzErrorTip="请选择起点科室!">
  922. <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  923. nzShowSearch (nzOnSearch)="searchDept('start',buildMsg1,$event)" nzPlaceHolder="请选择起点科室">
  924. <ng-container *ngFor="let option of buildMsg1.start.start.list">
  925. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  926. </ng-container>
  927. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  928. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  929. </nz-option>
  930. </nz-select>
  931. </nz-form-control>
  932. </nz-form-item>
  933. </form>
  934. </div>
  935. </div>
  936. <!-- 100014 (护士端一键建单展示策略)取终点科室和msg 值展示 -->
  937. <div class="content" *ngIf='buildMsg1.status==100014'>
  938. <div class="jiTit borderB">
  939. <span>{{buildMsg1.msg}}</span>
  940. </div>
  941. <div>
  942. <form nz-form [formGroup]="shortcutForm1" class="shortcutForm">
  943. <nz-form-item>
  944. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
  945. <nz-form-control nzErrorTip="请选择目标科室!">
  946. <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  947. nzShowSearch (nzOnSearch)="searchDept('target',buildMsg1,$event)" nzAllowClear nzPlaceHolder="请选择目标科室">
  948. <ng-container *ngFor="let option of buildMsg1.end.end.list">
  949. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  950. </ng-container>
  951. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  952. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  953. </nz-option>
  954. </nz-select>
  955. </nz-form-control>
  956. </nz-form-item>
  957. </form>
  958. </div>
  959. </div>
  960. <!-- 100015 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
  961. <div class="content" *ngIf='buildMsg1.status==100015'>
  962. <div class="jiTit borderB">
  963. <span>{{buildMsg1.msg}}</span>
  964. </div>
  965. <div>
  966. <form nz-form [formGroup]="shortcutForm1" class="shortcutForm">
  967. <nz-form-item>
  968. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室</nz-form-label>
  969. <nz-form-control nzErrorTip="请选择起点科室!">
  970. <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  971. nzShowSearch (nzOnSearch)="searchDept('start',buildMsg1,$event)" nzPlaceHolder="请选择起点科室">
  972. <ng-container *ngFor="let option of buildMsg1.start.start.list">
  973. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  974. </ng-container>
  975. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  976. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  977. </nz-option>
  978. </nz-select>
  979. </nz-form-control>
  980. </nz-form-item>
  981. <nz-form-item>
  982. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
  983. <nz-form-control nzErrorTip="请选择目标科室!">
  984. <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch
  985. nzShowSearch (nzOnSearch)="searchDept('target',buildMsg1,$event)" nzPlaceHolder="请选择目标科室">
  986. <ng-container *ngFor="let option of buildMsg1.end.end.list">
  987. <nz-option *ngIf="true" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  988. </ng-container>
  989. <nz-option *ngIf="false" nzDisabled nzCustomContent>
  990. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  991. </nz-option>
  992. </nz-select>
  993. </nz-form-control>
  994. </nz-form-item>
  995. </form>
  996. </div>
  997. </div>
  998. <div class="btns display_flex justify-content_flex-center">
  999. <button *ngIf="buildMsg1.status!=100009&&buildMsg1.status!=100010" nz-button nzType="primary"
  1000. [nzLoading]="btnLoading" (click)="confirmShortcut1()">确认</button>
  1001. <button class="btn cancel" nz-button nzType="default" (click)="hideShortcutOrder()">取消</button>
  1002. </div>
  1003. </div>
  1004. </div>
  1005. <!-- 一键建单确认模态框 -->
  1006. <div class="save display_flex align-items_center justify-content_flex-center shortcut" *ngIf="confirmSub">
  1007. <div class="modalBody sm">
  1008. <div class="title">快捷建单<i class="icon_transport transport-guanbi" (click)="cancel()"></i></div>
  1009. <div class="content txtC">
  1010. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  1011. <div class="defeat">{{confirmInfo}}</div>
  1012. <div class="otherInfo">请谨慎操作,如撤销请点击取消。</div>
  1013. </div>
  1014. <div class="btns display_flex justify-content_flex-center">
  1015. <button nz-button nzType="primary" [nzLoading]="btnLoading3" (click)="confirm()">确认</button>
  1016. <button class="btn cancel" nz-button nzType="default" (click)="cancel()">取消</button>
  1017. </div>
  1018. </div>
  1019. </div>
  1020. <!-- 撤销工单 -->
  1021. <app-dialog-delete [delModal]="recallOrderModal" (hideDelModalEvent)="closeRecallOrderModal()" [btnLoading]="btnLoading"
  1022. (confirmDelEvent)="confirmRec()" content="您确认要撤销工单吗?撤销工单我们会通知服务台、支助人员不再执行此工单,请谨慎操作,如确认撤销请点击确认。"></app-dialog-delete>
  1023. <!-- 评价模态框 -->
  1024. <div class="save display_flex align-items_center justify-content_flex-center appraise" *ngIf="appraiseModal">
  1025. <div class="modalBody">
  1026. <div class="title">评价<i class="icon_transport transport-guanbi" (click)="hideAppraise()"></i></div>
  1027. <div class="content">
  1028. <div class="jiTit borderB">
  1029. 您的评价对我们至关重要,感谢您!
  1030. </div>
  1031. <br />
  1032. <div class="star">
  1033. <div nz-row class="alignC display_flex justify-content_flex-center align-items_center">
  1034. <div nz-col nzSpan='4'>星级:</div>
  1035. <div nz-col nzSpan='20'>
  1036. <nz-rate [(ngModel)]="starNum"></nz-rate>
  1037. </div>
  1038. </div>
  1039. <div nz-row>
  1040. <div nz-col nzSpan='4'>评级:</div>
  1041. <div nz-col nzSpan='20'>
  1042. <textarea rows="4" nz-input [(ngModel)]="appraiseContent"></textarea>
  1043. </div>
  1044. </div>
  1045. </div>
  1046. <br />
  1047. </div>
  1048. <div class="btns display_flex justify-content_flex-center">
  1049. <button nz-button nzType="primary" [nzLoading]="btnLoading" (click)="confirmAppraise()">确认</button>
  1050. <button class="btn cancel" nz-button nzType="default" (click)="hideAppraise()">关闭</button>
  1051. </div>
  1052. </div>
  1053. </div>
  1054. <!-- 意见箱查看 -->
  1055. <div class="save display_flex align-items_center justify-content_flex-center advice" *ngIf="adviceModal">
  1056. <div class="modalBody">
  1057. <div class="title">意见箱-查看<i class="icon_transport transport-guanbi" (click)="hideAdvice()"></i></div>
  1058. <div class="content">
  1059. <div class="conItem">
  1060. <div class="jiTit borderB color3" nz-row>
  1061. <div nz-col nzSpan="11" class="txtL">发起人:{{adviceDetailInfo.createUser?adviceDetailInfo.createUser.name:''}}
  1062. </div>
  1063. <div nz-col nzSpan="13" class="txtR">填写时间:{{adviceDetailInfo.createTime}}</div>
  1064. </div>
  1065. <div class="defeat">意见内容:{{adviceDetailInfo.content}}</div>
  1066. </div>
  1067. <div class="conItem" *ngIf="adviceDetailInfo.replaceFlag==1">
  1068. <div class="jiTit borderB color3" nz-row>
  1069. <div nz-col nzSpan="11" class="txtL">回复人:{{adviceDetailInfo.replyUser?adviceDetailInfo.replyUser.name:''}}
  1070. </div>
  1071. <div nz-col nzSpan="13" class="txtR">填写时间:{{adviceDetailInfo.replyTime}}</div>
  1072. </div>
  1073. <div class="defeat">意见内容:{{adviceDetailInfo.replyContent}}</div>
  1074. </div>
  1075. <div class="conItem noCon" *ngIf="adviceDetailInfo.replaceFlag==0">
  1076. <div class="jiTit color3" nz-row>
  1077. 暂未回复
  1078. </div>
  1079. </div>
  1080. </div>
  1081. <div class="btns display_flex justify-content_flex-center">
  1082. <button class="btn know" nz-button nzType="primary" nzGhost (click)="hideAdvice()">知道了</button>
  1083. </div>
  1084. </div>
  1085. </div>
  1086. <!-- 意见收集 -->
  1087. <div class="save display_flex align-items_center justify-content_flex-center advice" *ngIf="adviceSubModal">
  1088. <div class="modalBody">
  1089. <div class="title">意见收集<i class="icon_transport transport-guanbi" (click)="hideSubAdvice()"></i></div>
  1090. <div class="content">
  1091. <div class="title">意见内容:</div>
  1092. <textarea rows="4" maxlength="255" nz-input [(ngModel)]="adviceSubContent" placeholder="请填写意见内容"></textarea>
  1093. <br /><br />
  1094. </div>
  1095. <div class="btns display_flex justify-content_flex-center">
  1096. <button nz-button nzType="primary" [nzLoading]="btnLoading" (click)="confirmSubAdvice()">确认</button>
  1097. <button class=" btn cancel" nz-button nzType="default" (click)="hideSubAdvice()">取消</button>
  1098. </div>
  1099. </div>
  1100. </div>
  1101. <!-- 加急模态框 -->
  1102. <div class="save display_flex align-items_center justify-content_flex-center jiaji" *ngIf="jiajiModal">
  1103. <div class="modalBody">
  1104. <div class="title">加急<i class="icon_transport transport-guanbi" (click)="hideJiaji()"></i></div>
  1105. <div class="content">
  1106. <div class="jiTit borderB">
  1107. 请填写加急原因,填写后我们会根据您的诉求优先处理
  1108. </div>
  1109. <div class="title">加急原因:</div>
  1110. <textarea rows="4" nz-input [(ngModel)]="jiajiContent" placeholder="请填写加急原因"></textarea>
  1111. <br /><br />
  1112. </div>
  1113. <div class="btns display_flex justify-content_flex-center">
  1114. <button nz-button nzType="primary" [nzLoading]="btnLoading" (click)="confirmJiaji()">确认</button>
  1115. <button class="btn cancel" nz-button nzType="default" (click)="hideJiaji()">取消</button>
  1116. </div>
  1117. </div>
  1118. </div>
  1119. <!-- 查看标本详情模态框 -->
  1120. <div *ngIf="detailModel" [class.detailModel]="detailModel">
  1121. <div class="box">
  1122. <h2 class="title">未取标本详情</h2>
  1123. <div class="table">
  1124. <div class="table-content">
  1125. <table>
  1126. <thead>
  1127. <tr>
  1128. <th>序号</th>
  1129. <th>标本类型</th>
  1130. <th>标本编码</th>
  1131. <th>患者姓名</th>
  1132. <th>床号</th>
  1133. <th>采集时间</th>
  1134. <th>目标科室</th>
  1135. </tr>
  1136. </thead>
  1137. <tbody>
  1138. <overlay-scrollbars #osComponentRef6 style="height: 100%" *ngIf="detailList.length && !loading33">
  1139. <tr *ngFor="let detail of detailList;let i = index;"
  1140. [style]="{ background: i % 2 === 1 ? '#fff' : '#f9fafb' }">
  1141. <td>{{ i + 1 }}</td>
  1142. <td>{{ detail.stype ? detail.stype.name : "-" }}</td>
  1143. <td>{{ detail.scode || "-" }}</td>
  1144. <td>{{ detail.patientName || "-" }}</td>
  1145. <td>{{ detail.bedNum || "-" }}</td>
  1146. <td>
  1147. {{ detail.printDate || "-" }}
  1148. </td>
  1149. <td>
  1150. {{ detail.checkDept ? detail.checkDept.dept : "-" }}
  1151. <div *ngIf="detail.urgent != 0" [class.ji]="detail.urgent == 1"></div>
  1152. </td>
  1153. </tr>
  1154. </overlay-scrollbars>
  1155. <div style="font-size: 18px" *ngIf="!detailList.length && !loading33" class="noData33">
  1156. 暂无数据
  1157. </div>
  1158. <div class="loading33" *ngIf="loading33">
  1159. <img src="./../../assets/images/loading.gif" alt="" />
  1160. <p>正在加载中</p>
  1161. </div>
  1162. </tbody>
  1163. </table>
  1164. </div>
  1165. </div>
  1166. <div class="btns">
  1167. <div class="btn" (click)="hideSpeDetailModel()">知道了</div>
  1168. </div>
  1169. <i class="icon_transport transport-guanbi" (click)="hideSpeDetailModel()"></i>
  1170. </div>
  1171. </div>
  1172. <!-- 删除意见模态框 -->
  1173. <app-dialog-delete [delModal]="delAdviceModal" (hideDelModalEvent)="hideDelAdviceModal()" [btnLoading]="btnLoading"
  1174. (confirmDelEvent)="confirmDelAdvice()" content="您确认要删除此条意见吗?"></app-dialog-delete>
  1175. <!-- 关注模态框 -->
  1176. <div class="commonModal display_flex justify-content_flex-center align-items_center" *ngIf="commonModal">
  1177. <div class="modalBody">
  1178. <div class="title">提示<i class="icon_transport transport-guanbi" (click)="hideCommonModal()"></i></div>
  1179. <div class="content">
  1180. <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
  1181. <div class="defeat">{{tipsMsg1}}</div>
  1182. </div>
  1183. <div class=" display_flex justify-content_flex-center">
  1184. <button nz-button nzType="primary" (click)="confirmCommon()" [nzLoading]="loading4">确认</button>
  1185. <button class="btn cancel " nz-button nzType="default" (click)="hideCommonModal()">取消</button>
  1186. </div>
  1187. </div>
  1188. </div>
  1189. <!-- 消息弹框模板 -->
  1190. <ng-template #msgTemplate let-msg="data">
  1191. <div class="msgTemBox ant-notification-notice-content">
  1192. <div class="borderLeft"></div>
  1193. <div class="ant-notification-notice-with-icon">
  1194. <span class="ant-notification-notice-icon">
  1195. <i class="icon icon_transport transport-shouye9"></i>
  1196. </span>
  1197. <div class="ant-notification-notice-message">{{msg.type==1?'通知':'消息'}}</div>
  1198. <div class="ant-notification-notice-description">{{msg.content}}</div>
  1199. </div>
  1200. </div>
  1201. </ng-template>
  1202. <!-- 操作成功/失败提示框 -->
  1203. <app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
  1204. [info]="promptInfo" [back]="back" (closeModel)="closeModel($event)"></app-prompt-modal>
  1205. <!-- 护士端科室切换提示框 -->
  1206. <app-hs-prompt-modal [changeShow]="changeShow" [closeTime]="closeTime" [show]="hsPromptModalShow"
  1207. (closeModelHs)="closeModelHs($event)" (clearModelHs)="clearModelHs($event)"></app-hs-prompt-modal>
  1208. <!-- 标本历史记录查看 -->
  1209. <app-history-prompt-modal *ngIf="historyPromptModalShow" [show]="historyPromptModalShow" [scode]="scode"
  1210. (closeModelHs)="closeModelHistory($event)"></app-history-prompt-modal>
  1211. <!-- 科室二维码模态框 -->
  1212. <!-- 在模态框所在的 div 添加属性 [appDrag] -->
  1213. <div appDrag class="modal" *ngIf="isShowNurseCode">
  1214. <div class="header drag-title">
  1215. <h2>签到二维码</h2>
  1216. <i class="icon-close icon_transport transport-guanbi1" (click)="closeNurseCode()"></i>
  1217. </div>
  1218. <div class="dialog-center">
  1219. <div class="dialog-code">
  1220. <img [src]="nurseCodeImg" alt="">
  1221. </div>
  1222. </div>
  1223. <div class="dialog-operate">
  1224. <strong class="dialog-refresh" (click)="showNurseCode()">刷新</strong>
  1225. <span>{{refreshQRCodeTime}}s</span>
  1226. </div>
  1227. </div>
  1228. <router-outlet></router-outlet>
  1229. <!-- 遮罩 -->
  1230. <app-mask *ngIf="maskFlag"></app-mask>
  1231. <!-- 是否需要医护陪同检查模态框 -->
  1232. <app-dialog-delete [delModal]="accompanyModal" (hideDelModalEvent)="hideAccompanyModal($event)"
  1233. [btnLoading]="accompanyLoading" [cancenlLoading]="cancenlLoading" (confirmDelEvent)="confirmAccompany()"
  1234. confirmTxt="是" cancelTxt="否" content="您选择的患者是危重或特级护理或一级护理患者,请问是否需要医护陪同检查?"></app-dialog-delete>