specimen-room-view.component.html 34 KB

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