specimen-room-view.component.html 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815
  1. <div class="pharmacy">
  2. <!-- 头部 start -->
  3. <div class="pharmacy-header">
  4. <div class="pharmacy-logo">
  5. <!-- <img
  6. [src]="tool.logoUrl"
  7. class="pharmacy-logo__img"
  8. [alt]="tool.logoTitle"
  9. />
  10. <h1 class="pharmacy-logo__name">{{tool.logoTitle}}</h1> -->
  11. <h2 class="pharmacy-name__title">
  12. <span>标本间</span>
  13. <!-- <span class="currentDate">{{ time | date: "yyyy年MM月dd日" }}</span> -->
  14. </h2>
  15. </div>
  16. <div class="pharmacy-name">
  17. <div class="pharmacy-name__total">
  18. <div class="pharmacy-title">标本条码:</div>
  19. <nz-input-group nzSize="large">
  20. <input type="text" id="Binput" (ngModelChange)="specimenCodeChange($event)" [(ngModel)]="barCode" nz-input placeholder="请输入条码" />
  21. </nz-input-group>
  22. <!-- <ng-template #suffixButton>
  23. <button nz-button nzType="primary" nzSize="large" nzSearch (click)="searchSpecimen()">搜索</button>
  24. </ng-template> -->
  25. </div>
  26. <div>
  27. <div class="error-class">{{searchMsg}}</div>
  28. </div>
  29. <button class="right-btn" nz-button nzType="primary" (click)="specimenCheck()">标本核对</button>
  30. </div>
  31. <div class="right">
  32. <div class="userInfo dropdown">
  33. <div class="user" (mouseenter)="showDropdown = true" (mouseleave)="showDropdown = false">
  34. <img src="../../assets/images/icon_keshi.png" alt="">
  35. <span><ng-container *ngIf="loginUser.dept">{{deptDisplay == 2 ? loginUser.dept.deptalias : loginUser.dept.dept}}-</ng-container>{{loginUser.name}}</span>
  36. <i class="icon_transport transport-xiala1 ml8"></i>
  37. </div>
  38. <div class="dropdown-content r8" [hidden]="!showDropdown" (mouseenter)="showDropdown = true" (mouseleave)="showDropdown = false">
  39. <div class="dropdownItem" (click)="setSpecimen()">切换科室</div>
  40. <div class="dropdownItem" (click)="distributionRecord()">配送记录</div>
  41. <div class="dropdownItem" (click)="toMain()">回到系统管理</div>
  42. <div class="dropdownItem" (click)="logOut()">退出</div>
  43. </div>
  44. </div>
  45. </div>
  46. <!-- <div class="userInfo">
  47. <div class="wel">欢迎您:</div>
  48. <div class="user">
  49. <img src="../../assets/images/icon_keshi.png" alt="" />
  50. <span *ngIf="deptDisplay">{{
  51. deptDisplay == 2 ? loginUser.dept.deptalias : loginUser.dept.dept
  52. }}</span>
  53. </div>
  54. <div class="userInfo-wrap">
  55. <div class="logOut" (click)="setSpecimen()">切换科室</div>
  56. <div class="logOut" (click)="logOut()">退出</div>
  57. </div>
  58. </div> -->
  59. </div>
  60. <!-- 头部 end -->
  61. <!-- 主体部分 start -->
  62. <div class="pharmacy-main">
  63. <!-- 手术间标本start -->
  64. <div class="pharmacy-main__list pharmacy-main__print">
  65. <!-- 标题 start -->
  66. <div class="pharmacy-main__title">
  67. <strong>手术间标本</strong>
  68. <span *ngIf="otherData1">{{otherData1.pathologyFormNum}}申请单 {{otherData1.specimenNum}}标本</span>
  69. <span class="autoUpdate">{{ logTime }}秒</span>
  70. </div>
  71. <!-- 标题 end -->
  72. <!-- 搜索框 start -->
  73. <div class="pharmacy-main__search">
  74. <div class="pharmacy-main__searchInput">
  75. <input
  76. nz-input
  77. placeholder="请输入关键字"
  78. [(ngModel)]="printPharmacySearchKey"
  79. />
  80. <div class="pharmacy-main__searchText" (click)="searchKeyHandle('surgeryDept')">
  81. <i nz-icon nzType="search"></i>
  82. <span>搜索</span>
  83. </div>
  84. </div>
  85. </div>
  86. <!-- 搜索框 end -->
  87. <!-- 列表 start -->
  88. <div #osComponentRef1 class="pharmacy-main__selectionWrap">
  89. <div *ngIf="!loading1" style="height: 100%">
  90. <div
  91. class="pharmacy-main__selection noPointer"
  92. *ngFor="let item of printPharmacyList"
  93. (click)="viewDetail(item,1)"
  94. >
  95. <div class="pharmacy-main__selectionInfo">
  96. <div class="pharmacy-main__selectionItem">
  97. <span title="住院号" class="weight">
  98. <span class="sign-red" *ngIf="item.pathologyFormType==1">速</span>
  99. <span *ngIf="item.pathologyFormType==0">普</span>
  100. <span *ngIf="item.pathologyFormType==2">细</span>
  101. {{item.applyCode || '无'}}
  102. </span>
  103. <span title="姓名" class="weight text-right">{{item.patientDTO.patientName || '无'}}</span>
  104. </div>
  105. <div class="pharmacy-main__selectionItem">
  106. <span class="text-left" [title]="item.takePart">部位:{{item.takePart || '无'}}</span>
  107. <span class="text-right" title="标本数">标本数:{{item.specimenNum || '无'}}</span>
  108. </div>
  109. <div class="pharmacy-main__selectionItem">
  110. <span title="手术间">手术间:{{item.surgeryDeptDTO.dept || '无'}}</span>
  111. <span class="text-right" title="离体时间">离体时间:{{item.inVitroTime?(item.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</span>
  112. </div>
  113. </div>
  114. </div>
  115. <div
  116. class="pharmacy-main__selection pharmacy-main__selection--noData"
  117. *ngIf="printPharmacyList.length === 0"
  118. >
  119. <img src="./../../assets/images/image_kongbaiye.png" alt="" />
  120. </div>
  121. <!-- <div
  122. (click)="loadMore(1)"
  123. class="pharmacy-main__selection pharmacy-main__selection--more"
  124. *ngIf="printPharmacyFlag"
  125. >
  126. <div class="pharmacy-main__selectionInfo">
  127. <i
  128. nz-icon
  129. nzType="loading"
  130. nzTheme="outline"
  131. class="pharmacy-main__selection--icon"
  132. *ngIf="printPharmacyLoad"
  133. ></i
  134. >查看更多
  135. </div>
  136. </div> -->
  137. </div>
  138. <div
  139. *ngIf="loading1"
  140. style="height: calc(100vh - 212px); min-height: 556px"
  141. >
  142. <div
  143. class="loadingFull display_flex justify-content_flex-center align-items_center"
  144. >
  145. <div class="loadingFullInner">
  146. <img src="../../../assets/images/loading.gif" alt="" />
  147. <div>加载中...</div>
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. <!-- 列表 end -->
  153. </div>
  154. <!-- 标本间标本 start -->
  155. <div class="pharmacy-main__list pharmacy-main__waitDelivery">
  156. <!-- 标题 start -->
  157. <div class="pharmacy-main__title">
  158. <strong>标本间标本</strong>
  159. <span *ngIf="otherData2">{{otherData2.pathologyFormNum}}申请单 {{otherData2.specimenNum}}标本</span>
  160. <span class="autoUpdate">{{ logTime }}秒</span>
  161. </div>
  162. <!-- 标题 end -->
  163. <!-- 搜索框 start -->
  164. <div class="pharmacy-main__search">
  165. <div class="pharmacy-main__searchInput">
  166. <input
  167. nz-input
  168. placeholder="请输入关键字"
  169. [(ngModel)]="waitPharmacySearchKey"
  170. />
  171. <div class="pharmacy-main__searchText" (click)="searchKeyHandle('specimenDept')">
  172. <i nz-icon nzType="search"></i>
  173. <span>搜索</span>
  174. </div>
  175. </div>
  176. </div>
  177. <!-- 搜索框 end -->
  178. <!-- 列表 start -->
  179. <div #osComponentRef2 class="pharmacy-main__selectionWrap">
  180. <div *ngIf="!loading2" style="height: 100%">
  181. <div
  182. class="pharmacy-main__selection"
  183. *ngFor="let item of waitPharmacyList; let i = index"
  184. (click)="viewDetail(item,2)"
  185. >
  186. <div class="pharmacy-main__selectionInfo">
  187. <div class="pharmacy-main__selectionItem">
  188. <span title="住院号" class="weight">
  189. <span class="sign-red" *ngIf="item.pathologyFormType==1">速</span>
  190. <span *ngIf="item.pathologyFormType==0">普</span>
  191. <span *ngIf="item.pathologyFormType==2">细</span>
  192. {{item.applyCode || '无'}}
  193. </span>
  194. <span title="姓名" class="weight text-right">{{item.patientDTO.patientName || '无'}}</span>
  195. </div>
  196. <div class="pharmacy-main__selectionItem">
  197. <span class="text-left" [title]="item.takePart">部位:{{item.takePart || '无'}}</span>
  198. <span class="text-right" title="标本数">标本数:{{item.specimenNum || '无'}}</span>
  199. </div>
  200. <div class="pharmacy-main__selectionItem">
  201. <span title="离体时间">离体时间:{{item.inVitroTime?(item.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</span>
  202. <span class="text-right" title="固定时间">固定时间:{{item.fixationTime?(item.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</span>
  203. </div>
  204. </div>
  205. </div>
  206. <div
  207. class="pharmacy-main__selection pharmacy-main__selection--noData"
  208. *ngIf="waitPharmacyList.length === 0"
  209. >
  210. <img src="./../../assets/images/image_kongbaiye.png" alt="" />
  211. </div>
  212. <!-- <div
  213. (click)="loadMore(2)"
  214. class="pharmacy-main__selection pharmacy-main__selection--more"
  215. *ngIf="waitPharmacyFlag"
  216. >
  217. <div class="pharmacy-main__selectionInfo">
  218. <i
  219. nz-icon
  220. nzType="loading"
  221. nzTheme="outline"
  222. class="pharmacy-main__selection--icon"
  223. *ngIf="waitPharmacyLoad"
  224. ></i
  225. >查看更多
  226. </div>
  227. </div> -->
  228. </div>
  229. <div
  230. *ngIf="loading2"
  231. style="height: calc(100vh - 212px); min-height: 556px"
  232. >
  233. <div
  234. class="loadingFull display_flex justify-content_flex-center align-items_center"
  235. >
  236. <div class="loadingFullInner">
  237. <img src="../../../assets/images/loading.gif" alt="" />
  238. <div>加载中...</div>
  239. </div>
  240. </div>
  241. </div>
  242. </div>
  243. <!-- 列表 end -->
  244. </div>
  245. <!-- 今日离科标本 start -->
  246. <div class="pharmacy-main__list pharmacy-main__delivery">
  247. <!-- 标题 start -->
  248. <div class="pharmacy-main__title">
  249. <strong>今日离科标本</strong>
  250. <span *ngIf="otherData3">{{otherData3.pathologyFormNum}}申请单 {{otherData3.specimenNum}}标本</span>
  251. <span class="autoUpdate">{{ logTime }}秒</span>
  252. </div>
  253. <!-- 标题 end -->
  254. <!-- 搜索框 start -->
  255. <div class="pharmacy-main__search">
  256. <div class="pharmacy-main__searchInput">
  257. <input
  258. nz-input
  259. placeholder="请输入关键字"
  260. [(ngModel)]="pharmacySearchKey"
  261. />
  262. <div class="pharmacy-main__searchText" (click)="searchKeyHandle('leavedDept')">
  263. <i nz-icon nzType="search"></i>
  264. <span>搜索</span>
  265. </div>
  266. </div>
  267. </div>
  268. <!-- 搜索框 end -->
  269. <!-- 列表 start -->
  270. <div #osComponentRef3 class="pharmacy-main__selectionWrap">
  271. <div *ngIf="!loading3" style="height: 100%">
  272. <div
  273. class="pharmacy-main__selection"
  274. *ngFor="let item of pharmacyList; let i = index"
  275. (click)="viewDetail(item,3)"
  276. >
  277. <div class="pharmacy-main__selectionInfo">
  278. <div class="pharmacy-main__selectionItem">
  279. <span title="住院号" class="weight">
  280. <span class="sign-red" *ngIf="item.pathologyFormType==1">速</span>
  281. <span *ngIf="item.pathologyFormType==0">普</span>
  282. <span *ngIf="item.pathologyFormType==2">细</span>
  283. {{item.applyCode || '无'}}
  284. </span>
  285. <span title="姓名" class="weight text-right">{{item.patientDTO.patientName || '无'}}</span>
  286. </div>
  287. <div class="pharmacy-main__selectionItem">
  288. <span class="text-left" [title]="item.takePart">部位:{{item.takePart || '无'}}</span>
  289. <span class="text-right" title="标本数">标本数:{{item.specimenNum || '无'}}</span>
  290. </div>
  291. <div class="pharmacy-main__selectionItem">
  292. <span title="离体时间">离体时间:{{item.inVitroTime?(item.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</span>
  293. <span class="text-right" title="固定时间">固定时间:{{item.fixationTime?(item.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</span>
  294. </div>
  295. <div class="pharmacy-main__selectionItem">
  296. <span title="配送人">配送人:{{item.deliveryUserDTO?item.deliveryUserDTO.name:'无'}}</span>
  297. <span class="text-right" title="离科时间">离科时间:{{item.leaveDeptTime?(item.leaveDeptTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</span>
  298. </div>
  299. </div>
  300. </div>
  301. <div
  302. class="pharmacy-main__selection pharmacy-main__selection--noData"
  303. *ngIf="pharmacyList.length === 0"
  304. >
  305. <img src="./../../assets/images/image_kongbaiye.png" alt="" />
  306. </div>
  307. <!-- <div
  308. (click)="loadMore(3)"
  309. class="pharmacy-main__selection pharmacy-main__selection--more"
  310. *ngIf="pharmacyFlag"
  311. >
  312. <div class="pharmacy-main__selectionInfo">
  313. <i
  314. nz-icon
  315. nzType="loading"
  316. nzTheme="outline"
  317. class="pharmacy-main__selection--icon"
  318. *ngIf="pharmacyLoad"
  319. ></i
  320. >查看更多
  321. </div>
  322. </div> -->
  323. </div>
  324. <div
  325. *ngIf="loading3"
  326. style="height: calc(100vh - 212px); min-height: 556px"
  327. >
  328. <div
  329. class="loadingFull display_flex justify-content_flex-center align-items_center"
  330. >
  331. <div class="loadingFullInner">
  332. <img src="../../../assets/images/loading.gif" alt="" />
  333. <div>加载中...</div>
  334. </div>
  335. </div>
  336. </div>
  337. </div>
  338. <!-- 列表 end -->
  339. </div>
  340. </div>
  341. <!-- 主体部分 end -->
  342. <router-outlet></router-outlet>
  343. </div>
  344. <!-- 科室切换提示框 -->
  345. <app-hs-prompt-modal
  346. [changeShow]="changeShow"
  347. [closeTime]="closeTime"
  348. [closeTimeFlag]="closeTimeFlag"
  349. [show]="hsPromptModalShow"
  350. (closeModelHs)="closeModelHs($event)"
  351. (clearModelHs)="clearModelHs($event)"
  352. deptType="nurse"
  353. >
  354. <!-- 返回系统按钮 -->
  355. <!-- 右侧悬浮框 -->
  356. <div id="fixedMenu" class="fixed" *ngIf="mainRole">
  357. <div class="right">
  358. <div class="fixedMenu hujiaozhongxin">
  359. <div class="menuItems">
  360. <div class="item">快捷菜单</div>
  361. </div>
  362. </div>
  363. <div class="fixedMenu">
  364. <div class="menuItems">
  365. <div
  366. class="others"
  367. [ngStyle]="{
  368. height: showLastItems
  369. ? mainRole
  370. ? 35 * 2 + 'px'
  371. : 35 * 1 + 'px'
  372. : 0
  373. }"
  374. >
  375. <div
  376. [ngClass]="{ item: true, checked: fixedTab == 'back' }"
  377. *ngIf="mainRole"
  378. (click)="checkFixedTab('toSystem')"
  379. >
  380. 返回系统
  381. </div>
  382. </div>
  383. </div>
  384. <div class="arrow" *ngIf="!showLastItems" (click)="fixedMenuXiala()">
  385. <i class="icon_transport transport-xiala2-01"></i>
  386. </div>
  387. <div class="arrow" *ngIf="showLastItems" (click)="fixedMenuShangla()">
  388. <i class="icon_transport transport-shangla-"></i>
  389. </div>
  390. </div>
  391. </div>
  392. <div
  393. *ngIf="showLastItems && fixedTab != ''"
  394. (click)="fixedMenuShangla()"
  395. class="fixedMark"
  396. ></div>
  397. </div>
  398. </app-hs-prompt-modal>
  399. <!-- 标本历史记录查看 -->
  400. <!-- <app-history-prompt-modal
  401. *ngIf="logPromptModalShow"
  402. [show]="logPromptModalShow"
  403. [scode]="scode"
  404. (closeModelHs)="closeModelLog($event)"
  405. ></app-history-prompt-modal> -->
  406. <!-- 标本列表查看 -->
  407. <!-- <app-spe-prompt-modal
  408. *ngIf="spePromptModalShow"
  409. [show]="spePromptModalShow"
  410. [checkDeptId]="checkDeptId"
  411. [pharmacySearchKey]="pharmacySearchKey"
  412. [printDate]="printDate"
  413. (closeModelHs)="closeModelSpe($event)"
  414. ></app-spe-prompt-modal> -->
  415. <!-- 工单列表查看 -->
  416. <!-- <app-order-prompt-modal
  417. *ngIf="orderPromptModalShow"
  418. [show]="orderPromptModalShow"
  419. [workId]="workId"
  420. (closeModelHs)="closeModelOrder($event)"
  421. ></app-order-prompt-modal> -->
  422. <!-- 关联标本/手术室 -->
  423. <div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="relevanceModal">
  424. <div class="modalBody">
  425. <div class="title">关联科室</div>
  426. <overlay-scrollbars #osComponentRef1 class="content">
  427. <form nz-form [formGroup]="validateForm" class="addForm" (ngSubmit)="submitForm()">
  428. <nz-form-item>
  429. <nz-form-label nzRequired nzFor="specimen" [nzSm]="5" [nzXs]="24">关联标本间</nz-form-label>
  430. <nz-form-control nzErrorTip="请选择标本间!" [nzSm]="19" [nzXs]="24">
  431. <nz-input-group>
  432. <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzPlaceHolder="请选择标本间" formControlName="specimen">
  433. <ng-container *ngFor="let option of specimenData">
  434. <nz-option [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  435. </ng-container>
  436. </nz-select>
  437. </nz-input-group>
  438. </nz-form-control>
  439. </nz-form-item>
  440. <nz-form-item>
  441. <nz-form-label nzRequired nzFor="operation" [nzSm]="5" [nzXs]="24">关联手术间</nz-form-label>
  442. <nz-form-control nzErrorTip="请选择手术间!" [nzSm]="19" [nzXs]="24">
  443. <nz-input-group>
  444. <nz-select class="formItem" nzMode="multiple" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzPlaceHolder="请选择请选择手术间" formControlName="operation">
  445. <ng-container *ngFor="let option of operationData">
  446. <nz-option [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
  447. </ng-container>
  448. </nz-select>
  449. </nz-input-group>
  450. </nz-form-control>
  451. </nz-form-item>
  452. <nz-form-item>
  453. <nz-form-label nzRequired nzFor="generate">标本是否直接生成配送单</nz-form-label>
  454. <nz-form-control nzErrorTip="请选择!">
  455. <nz-radio-group formControlName="generate">
  456. <label nz-radio [nzValue]="1">是</label>
  457. <label nz-radio [nzValue]="0">否</label>
  458. </nz-radio-group>
  459. </nz-form-control>
  460. </nz-form-item>
  461. <nz-form-item>
  462. <nz-form-label nzRequired nzFor="showFrozen">标本是否显示速冻</nz-form-label>
  463. <nz-form-control nzErrorTip="请选择!">
  464. <nz-radio-group formControlName="showFrozen">
  465. <label nz-radio [nzValue]="1">是</label>
  466. <label nz-radio [nzValue]="0">否</label>
  467. </nz-radio-group>
  468. </nz-form-control>
  469. </nz-form-item>
  470. </form>
  471. </overlay-scrollbars>
  472. <div class="display_flex justify-content_flex-center">
  473. <button class="btn" nz-button nzType="primary" (click)="submitForm()" [nzLoading]="btnLoading">确定</button>
  474. <button class="btn mar-left" nz-button nzType="primary" nzGhost (click)="hideModal()">
  475. 取消
  476. </button>
  477. </div>
  478. </div>
  479. </div>
  480. <!-- 标本接收 -->
  481. <div class="pathology-box display_flex align-items_center justify-content_flex-center" *ngIf="fixationModal">
  482. <div class="pathology-content width-80">
  483. <div class="title">标本接收及固定
  484. <i class="icon_transport transport-guanbi" (click)="hideSpecimenModal()"></i></div>
  485. <div class="content">
  486. <div class="content-item boder-right">
  487. <nz-form-item class="form-title-box">
  488. <div class="form-title">申请单类型:{{codeData.pathologyFormType==1?'术中快速病理检查申请单':'病理检查申请单'}}</div>
  489. <div class="form-title"><span class="font-weight-500">状态:</span>{{codeData.status?codeData.status.name:'-'}}</div>
  490. </nz-form-item>
  491. <nz-form-item class="form-title-box">
  492. <div class="form-title"><span class="font-weight-500">申请单号:</span>{{codeData.applyCode}}</div>
  493. <div class="form-title over-class"><span class="font-weight-500">申请科室:</span>{{codeData.patientDTO.department.dept}}</div>
  494. </nz-form-item>
  495. <nz-form-item class="form-title-box">
  496. <div class="form-title">手术间:{{codeData.surgeryDeptDTO.dept}}</div>
  497. <div class="form-title">取材医生:{{codeData.surgeryDoctorDTO?codeData.surgeryDoctorDTO.name : '-'}}</div>
  498. </nz-form-item>
  499. <nz-form-item class="form-title-box">
  500. <div class="form-title mar-ri-20"><span class="font-weight-500">患者信息:</span>{{codeData.patientDTO.patientName}} ({{codeData.patientDTO.bedNum}}床)</div>
  501. <div class="form-title mar-ri-20"><span class="font-weight-500">年龄:</span>{{codeData.patientDTO.age||'-'}}</div>
  502. <div class="form-title mar-ri-20"><span class="font-weight-500">性别:</span>{{codeData.patientDTO.gender?codeData.patientDTO.gender.name:'-'}}</div>
  503. <div class="form-title mar-ri-20"><span class="font-weight-500">住院号:</span>{{codeData.patientDTO.patientCode}}</div>
  504. </nz-form-item>
  505. <div class="form-title-box">
  506. <div class="form-title"><span class="font-weight-500">检验项目:</span>{{project||'无'}}</div>
  507. </div>
  508. <div class="form-list">
  509. <div class="form-title font-weight-500">诊断:</div>
  510. <div class="indent">
  511. {{codeData.diagnose||'无'}}
  512. </div>
  513. </div>
  514. <div class="form-list">
  515. <div class="form-title font-weight-500">病历摘要:</div>
  516. <div class="indent">{{codeData.medicalRecords||'无'}}</div>
  517. </div>
  518. <div class="form-list">
  519. <div class="form-title font-weight-500">手术方案:</div>
  520. <div class="indent">{{codeData.surgicalPlan||'无'}}</div>
  521. </div>
  522. <div class="form-list">
  523. <div class="form-title font-weight-500">术中所见:</div>
  524. <div class="indent">{{codeData.intraoperativeFindings||'无'}}</div>
  525. </div>
  526. <div class="form-title-box">
  527. <div class="form-title"><span class="font-weight-500">标本类型:</span>{{codeData.specimenType?codeData.specimenType.name:'无'}}</div>
  528. <div class="form-title"><span class="font-weight-500">标本数量:</span>{{codeData.specimenNum?codeData.specimenNum:'无'}}</div>
  529. </div>
  530. <div class="form-title-box">
  531. <div class="form-title"><span class="font-weight-500">部位:</span>{{codeData.takePart||'无'}}</div>
  532. </div>
  533. </div>
  534. <div class="content-item">
  535. <!-- <div class="center">提示:本申请单内共有<span class="red">{{totalNum}}</span>只标本固定,已固定<span class="red">{{fixationNum}}</span>份还需固定<span class="red">{{specimenNum}}</span>份</div> -->
  536. <div class="center">提示:本申请单内共有<span class="red">{{codeData.specimenNum}}</span>只标本</div>
  537. <div class="disp-fl">
  538. <div class="width-120">标本条码:</div>
  539. <input nz-input id="specimen" [(ngModel)]="specimenCode" (ngModelChange)="codeChange($event)"/>
  540. </div>
  541. <div class="error-fix">{{fixationError}}</div>
  542. <div class="list-template">
  543. <div class="list-template__content">
  544. <div class="list-template__bottom" style="padding: 0 !important;">
  545. <nz-table class="list-template__nzTable" [nzData]="codeDataSpecimenList" nzSize="middle" [nzShowPagination]="false"
  546. [nzLoading]="tableLoading">
  547. <thead>
  548. <tr class="thead">
  549. <th nzWidth="10%">序号</th>
  550. <th>条码号</th>
  551. <th>标本名称</th>
  552. </tr>
  553. </thead>
  554. <tbody>
  555. <tr *ngFor="let data of codeDataSpecimenList let index = index">
  556. <td>{{index+1}}</td>
  557. <td>{{ data.specimenCode}}</td>
  558. <td>
  559. <span *ngIf="data.partSource && data.partSource.value!=1">{{data.partSource?data.partSource.name:''}}</span>{{data.specimenName}}
  560. </td>
  561. </tr>
  562. </tbody>
  563. </nz-table>
  564. </div>
  565. </div>
  566. </div>
  567. </div>
  568. </div>
  569. <div class="display_flex justify-content_flex-center bottom-btn">
  570. <!-- <button class="btn btn-right" [disabled]="codeData.specimenNum != codeDataSpecimenList.length" nz-button nzType="primary" (click)="submitFixationForm()" [nzLoading]="btnLoading">确定</button> -->
  571. <button class="btn btn-right" nz-button nzType="primary" (click)="submitFixationForm()" [nzLoading]="btnLoading">确定</button>
  572. <button class="btn cancel" nz-button nzType="default" (click)="hideSpecimenModal()">取消</button>
  573. </div>
  574. </div>
  575. </div>
  576. <!-- 操作成功/失败提示框 -->
  577. <app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
  578. [info]="promptInfo" (closeModel)="closeModel()"></app-prompt-modal>
  579. <!-- 标本固定信息 -->
  580. <div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="verificationMoadl">
  581. <div class="modalBody no-width">
  582. <div class="title">{{!ifFixType?'标本固定信息':'标本接受收信息'}}<i class="icon_transport transport-guanbi" (click)="hideVerificationModal()"></i>
  583. </div>
  584. <div class="content">
  585. <form nz-form [formGroup]="validateVerificationForm" class="addForm" (ngSubmit)="submitVerificationForm()">
  586. <nz-form-item *ngIf="!ifFixType">
  587. <nz-form-label nzRequired [nzSpan]="6" nzFor="fixationTime">固定时间</nz-form-label>
  588. <!-- <nz-form-control [nzSpan]="18" nzErrorTip="请选择固定时间!">
  589. <nz-input-group>
  590. <nz-date-picker formControlName="fixationTime"
  591. [nzShowTime]="{ nzFormat: 'yyyy-MM-dd HH:mm:ss' }" nzFormat="yyyy-MM-dd HH:mm:ss"
  592. (ngModelChange)="formChangeDate($event)"></nz-date-picker>
  593. </nz-input-group>
  594. </nz-form-control> -->
  595. <nz-form-control style="display: flex;align-items: center;" [nzSpan]="18" nzErrorTip="请选择固定时间!">
  596. <nz-input-group style="display: flex;gap: 10px">
  597. <nz-date-picker formControlName="fixationDate" (ngModelChange)="fixationDateChange($event)"></nz-date-picker>
  598. <nz-time-picker formControlName="fixationTimes" nzFormat="HH:mm" (ngModelChange)="fixationTimeChange($event)"></nz-time-picker>
  599. </nz-input-group>
  600. </nz-form-control>
  601. </nz-form-item>
  602. <nz-form-item>
  603. <nz-form-label nzRequired [nzSpan]="6" nzFor="jobNumber">医生工号</nz-form-label>
  604. <nz-form-control [nzSpan]="18" nzErrorTip="请输入医生工号!">
  605. <input nz-input (keydown.enter)="onEnterPress()" (ngModelChange)="numberChange($event,1)" formControlName="jobNumber" placeholder="请输入医生工号" nzSize="default" />
  606. </nz-form-control>
  607. </nz-form-item>
  608. <nz-form-item>
  609. <nz-form-label nzRequired [nzSpan]="6" nzFor="name">医生姓名</nz-form-label>
  610. <nz-form-control [nzSpan]="18" nzErrorTip="请输入医生姓名!">
  611. <input nz-input disabled formControlName="name" placeholder="请输入医生姓名" nzSize="default" />
  612. </nz-form-control>
  613. </nz-form-item>
  614. <!-- <nz-form-item>
  615. <nz-form-label nzRequired [nzSpan]="6" nzFor="nurseJobNumber">护士工号</nz-form-label>
  616. <nz-form-control [nzSpan]="18" nzErrorTip="请输入护士工号!">
  617. <input nz-input (ngModelChange)="numberChange($event,2)" formControlName="nurseJobNumber" placeholder="请输入护士工号" nzSize="default" />
  618. </nz-form-control>
  619. </nz-form-item>
  620. <nz-form-item>
  621. <nz-form-label nzRequired [nzSpan]="6" nzFor="nurseName">护士姓名</nz-form-label>
  622. <nz-form-control [nzSpan]="18" nzErrorTip="请输入护士姓名!">
  623. <input nz-input disabled formControlName="nurseName" placeholder="请输入护士姓名" nzSize="default" />
  624. </nz-form-control>
  625. </nz-form-item> -->
  626. <nz-form-item *ngIf="!ifFixType">
  627. <nz-form-label nzRequired [nzSpan]="6" nzFor="fixative">固定液类型</nz-form-label>
  628. <nz-form-control [nzSpan]="18" nzErrorTip="请选择固定液类型!">
  629. <nz-input-group>
  630. <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzPlaceHolder="请选择固定液类型" formControlName="fixative">
  631. <ng-container *ngFor="let option of fixativeData">
  632. <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
  633. </ng-container>
  634. </nz-select>
  635. </nz-input-group>
  636. </nz-form-control>
  637. </nz-form-item>
  638. </form>
  639. </div>
  640. <div class="display_flex justify-content_flex-center bottom-btn">
  641. <button class="btn btn-right" nz-button nzType="primary" (click)="submitVerificationForm()" [nzLoading]="btnInfoLoading">确定</button>
  642. <button class="btn cancel" nz-button nzType="default" (click)="hideVerificationModal()">取消</button>
  643. </div>
  644. </div>
  645. </div>
  646. <!-- 标本查看详情-->
  647. <div class="pathology-box display_flex align-items_center justify-content_flex-center" *ngIf="detailMoadl">
  648. <div class="pathology-content">
  649. <div class="title">查看详情
  650. <i class="icon_transport transport-guanbi" (click)="closeDetailMoadl()"></i></div>
  651. <div class="content">
  652. <div class="content-item boder-right">
  653. <nz-form-item class="form-title-box">
  654. <div class="form-title">申请单类型:{{detailsData.pathologyFormType==1?'术中快速病理检查申请单' : detailsData.pathologyFormType==2 ? '病理细胞学申请单' : '病理检查申请单'}}</div>
  655. <div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status?detailsData.status.name:'-'}}</div>
  656. </nz-form-item>
  657. <nz-form-item class="form-title-box">
  658. <div class="form-title"><span class="font-weight-500">申请单号:</span>{{detailsData.applyCode}}</div>
  659. <div class="form-title over-class"><span class="font-weight-500">申请科室:</span>{{detailsData.patientDTO.department.dept}}</div>
  660. </nz-form-item>
  661. <nz-form-item class="form-title-box">
  662. <div class="form-title">手术间:{{detailsData.surgeryDeptDTO.dept}}</div>
  663. <div class="form-title">取材医生:{{detailsData.surgeryDoctorDTO?detailsData.surgeryDoctorDTO.name : '-'}}</div>
  664. </nz-form-item>
  665. <nz-form-item class="form-title-box">
  666. <div class="form-title"><span class="font-weight-500">患者信息:</span>{{detailsData.patientDTO.patientName}} ({{detailsData.patientDTO.bedNum}}床)</div>
  667. <div class="form-title"><span class="font-weight-500">年龄:</span>{{detailsData.patientDTO.age||'-'}}</div>
  668. <div class="form-title"><span class="font-weight-500">性别:</span>{{detailsData.patientDTO.gender?detailsData.patientDTO.gender.name:'-'}}</div>
  669. <div class="form-title"><span class="font-weight-500">住院号:</span>{{detailsData.patientDTO.patientCode}}</div>
  670. </nz-form-item>
  671. <div class="form-title-box">
  672. <div class="form-title"><span class="font-weight-500">检验项目:</span>{{project||'无'}}</div>
  673. </div>
  674. <div class="form-list">
  675. <div class="form-title font-weight-500">诊断:</div>
  676. <div class="indent">
  677. {{detailsData.diagnose||'无'}}
  678. </div>
  679. </div>
  680. <div class="form-list">
  681. <div class="form-title font-weight-500">病历摘要:</div>
  682. <div class="indent">{{detailsData.medicalRecords||'无'}}</div>
  683. </div>
  684. <div class="form-list">
  685. <div class="form-title font-weight-500">手术方案:</div>
  686. <div class="indent">{{detailsData.surgicalPlan||'无'}}</div>
  687. </div>
  688. <div class="form-list">
  689. <div class="form-title font-weight-500">术中所见:</div>
  690. <div class="indent">{{detailsData.intraoperativeFindings||'无'}}</div>
  691. </div>
  692. <div class="form-title-box">
  693. <div class="form-title"><span class="font-weight-500">标本类型:</span>{{detailsData.specimenType.name||'无'}}</div>
  694. <div class="form-title"><span class="font-weight-500">标本数量:</span>{{detailsData.specimenNum||'无'}}</div>
  695. </div>
  696. <div class="form-title-box">
  697. <div class="form-title"><span class="font-weight-500">部位:</span>{{detailsData.takePart||'无'}}</div>
  698. <!-- <div class="form-title"><span class="font-weight-500">离体时间:</span>{{detailsData.inVitroTime?(detailsData.inVitroTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
  699. <!-- <div class="form-title"><span class="font-weight-500">固定时间:</span>{{detailsData.fixationTime?(detailsData.fixationTime|date:'yyyy-MM-dd HH:mm:ss'):'无'}}</div> -->
  700. </div>
  701. <div class="form-list">
  702. <div class="form-title font-weight-500">标本:</div>
  703. <div class="form-title specimen-list">
  704. <div *ngFor="let item of specimenList" class="specimen-item-class" (click)="specimenView(item)">
  705. <span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
  706. </div>
  707. </div>
  708. </div>
  709. </div>
  710. <div class="content-item-right">
  711. <div class="step-title">病理闭环</div>
  712. <nz-steps [nzCurrent]="stepLength" nzDirection="vertical" nzSize="small">
  713. <ng-container *ngFor="let item of pathologyLogs; let index = index">
  714. <nz-step
  715. [nzDescription]="tpl"
  716. >
  717. </nz-step>
  718. <ng-template #tpl>
  719. <div *ngIf="index==pathologyLogs.length-1" class="step-size">
  720. <div style="color: #49B856;" *ngIf="item.doctorDTO"> {{item.operationType?item.operationType.name:''}} {{item.doctorDTO?item.doctorDTO.name:''}} {{item.nurseDTO?item.nurseDTO.name:''}} </div>
  721. <div style="color: #49B856;" *ngIf="!item.doctorDTO">{{item.operationType?item.operationType.name:''}} {{item.handoverUserDto?item.handoverUserDto.name:''}}</div>
  722. <div style="color:#333;">{{item.createTime|date:'yyyy-MM-dd HH:mm:ss'}} {{item.operationUserDto?item.operationUserDto.name:''}}</div>
  723. </div>
  724. <div *ngIf="index!=pathologyLogs.length-1" class="step-size">
  725. <div *ngIf="item.doctorDTO">{{item.operationType?item.operationType.name:''}} {{item.doctorDTO?item.doctorDTO.name:''}} {{item.nurseDTO?item.nurseDTO.name:''}}</div>
  726. <div *ngIf="!item.doctorDTO">{{item.operationType?item.operationType.name:''}} {{item.handoverUserDto?item.handoverUserDto.name:''}}</div>
  727. <div>{{item.createTime|date:'yyyy-MM-dd HH:mm:ss'}} {{item.operationUserDto?item.operationUserDto.name:''}}</div>
  728. </div>
  729. </ng-template>
  730. </ng-container>
  731. </nz-steps>
  732. </div>
  733. </div>
  734. <div class="display_flex justify-content_flex-center bottom-btn">
  735. <button class="btn btn-right" nz-button nzType="primary" (click)="closeDetailMoadl()">知道了</button>
  736. <!-- <button class="btn cancel" nz-button nzType="default" (click)="closeDetailMoadl()">取消</button> -->
  737. </div>
  738. </div>
  739. </div>
  740. <!-- 查看标本 -->
  741. <div class="look">
  742. <div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="specimenViewDialog">
  743. <div class="modalBody modalBody-ga">
  744. <div class="title">查看标本<i class="icon_transport transport-guanbi" (click)="closeSpecimenModal()"></i>
  745. </div>
  746. <overlay-scrollbars #osComponentRef1 class="content">
  747. <div class="list-template__bottom">
  748. <nz-table class="list-template__nzTable" [nzData]="viewData" nzSize="middle" [nzShowPagination]="false"
  749. [nzLoading]="loading1">
  750. <thead>
  751. <tr class="thead">
  752. <th>标本名称</th>
  753. <th>系统</th>
  754. <th>部位</th>
  755. <th>编码</th>
  756. <th>备注</th>
  757. <th>离体时间</th>
  758. <th>离体操作人</th>
  759. <th>固定时间</th>
  760. <th>固定操作人</th>
  761. </tr>
  762. </thead>
  763. <tbody>
  764. <tr *ngFor="let data of viewData">
  765. <td>{{ data.specimenName }}</td>
  766. <td>{{ data.system ? data.system.name : '-' }}</td>
  767. <td>{{ data.organ ? data.organ.name : '-' }}</td>
  768. <td>{{ data.specimenCode }}</td>
  769. <td>{{ data.remark ? data.remark : '无' }}</td>
  770. <td>{{ data.inVitroTime ? (data.inVitroTime|date:'yyyy-MM-dd HH:mm:ss') : '-' }}</td>
  771. <td>{{ data.inVitroOperator ? data.inVitroOperator.name : '-' }}</td>
  772. <td>{{ data.fixationTime ? (data.fixationTime|date:'yyyy-MM-dd HH:mm:ss') : '-' }}</td>
  773. <td>{{ data.fixationOperator ? data.fixationOperator.name : '-' }}</td>
  774. </tr>
  775. </tbody>
  776. </nz-table>
  777. </div>
  778. </overlay-scrollbars>
  779. <div class="display_flex justify-content_flex-center">
  780. <button class="btn" nz-button nzType="primary" (click)="closeSpecimenModal()">知道了</button>
  781. </div>
  782. </div>
  783. </div>
  784. </div>
  785. <div class="mask-style" *ngIf="isSpinning">
  786. <nz-spin nzSimple class="spin-style"></nz-spin>
  787. </div>