pathology-sample.component.html 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635
  1. <div class="pharmacy">
  2. <!-- 头部 start -->
  3. <div class="pharmacy-header">
  4. <div class="pharmacy-logo">
  5. <div class="pharmacy-name__title">一站式服务管理平台</div>
  6. </div>
  7. <div class="pharmacy-name">
  8. <div class="pharmacy-title">门诊病理采样端</div>
  9. <div class="pharmacy-name__total">
  10. <nz-input-group nzSize="large">
  11. <input type="text" id="Binput" (keydown.enter)="onEnterPress()" (ngModelChange)="specimenCodeChange($event)" [(ngModel)]="barCode" nz-input placeholder="请输入患者信息" />
  12. </nz-input-group>
  13. <!-- <ng-template #suffixButton>
  14. <button nz-button nzType="primary" nzSize="large" nzSearch (click)="searchSpecimen()">搜索</button>
  15. </ng-template> -->
  16. </div>
  17. <div>
  18. <div class="error-class">{{searchMsg}}</div>
  19. </div>
  20. </div>
  21. <div class="right">
  22. <div class="userInfo dropdown">
  23. <div class="user" (mouseenter)="showDropdown = true" (mouseleave)="showDropdown = false">
  24. <img src="../../assets/images/icon_keshi.png" alt="">
  25. <span><ng-container *ngIf="loginUser.dept">{{deptDisplay == 2 ? loginUser.dept.deptalias : loginUser.dept.dept}}-</ng-container>{{loginUser.name}}</span>
  26. <i class="icon_transport transport-xiala1 ml8"></i>
  27. </div>
  28. <div class="dropdown-content r8" [hidden]="!showDropdown" (mouseenter)="showDropdown = true" (mouseleave)="showDropdown = false">
  29. <div class="dropdownItem" (click)="changeKsNow()">切换科室</div>
  30. <div class="dropdownItem" (click)="toMain()">回到系统管理</div>
  31. <div class="dropdownItem" (click)="logOut()">退出</div>
  32. </div>
  33. </div>
  34. </div>
  35. </div>
  36. <div class="pharmacy-main">
  37. <div class="left" *ngIf="adviceList">
  38. <div class="top" *ngIf="adviceList.patientDTO">
  39. <div>{{adviceList.patientDTO.patientName}} {{adviceList.patientDTO.gender?adviceList.patientDTO.gender.name:'-'}} ({{adviceList.patientDTO.age||'-'}}岁)</div>
  40. <div class="border">{{adviceList.patientDTO.residenceNo?adviceList.patientDTO.residenceNo:adviceList.patientDTO.patientCode}}</div>
  41. </div>
  42. <div class="left-content" [ngClass]="{'noAddAppClass': !ifAddapplication, 'beAddAppClass': ifAddapplication}">
  43. <div class="content" *ngFor="let item of adviceList.pathologyFormDTOS;let index=index;" (click)="listClick(item,index)" [ngClass]="{'activeLeftClass': index == leftIndex}">
  44. <div class="list list-df">
  45. <div class="code">{{item.applyCode ? item.applyCode : '无'}}</div>
  46. <div class="form-title">{{item.status?item.status.name:'无'}}</div>
  47. <div class="del-class">
  48. <i (click)="delItem($event,item)" class="icon_transport transport-lajitong specimen-icon"></i>
  49. </div>
  50. </div>
  51. <div class="list">项目:{{item.project.length>0 ? item.project.join('、') :'无'}}</div>
  52. <div class="list">部位:{{item.takePart ? item.takePart : '无'}}</div>
  53. <div class="list">诊断:{{item.diagnose ? item.diagnose : '无'}}</div>
  54. <div class="list">开单时间:{{item.createTime | date:'yyyy-MM-dd HH:mm:ss'}}</div>
  55. </div>
  56. </div>
  57. <div *ngIf="ifAddapplication && adviceList" class="center-box">
  58. <button nz-button nzType="primary" class="btn txtC mr8" (click)="addPathology(0)" [nzLoading]="addLoading">新增病理申请单</button>
  59. </div>
  60. </div>
  61. <div class="center" *ngIf="adviceList && adviceList.pathologyFormDTOS.length>0 && detailsData && viewType!='add'">
  62. <div class="pathology-content" *ngIf="viewType=='edit'">
  63. <div class="title">病理检查申请单</div>
  64. <div class="content">
  65. <form nz-form [formGroup]="validateForm" class="addForm">
  66. <div class="content-item">
  67. <nz-form-item class="form-title-box">
  68. <div class="form-title"><span class="font-weight-500">申请单号:</span>{{detailsData.applyCode}}</div>
  69. <div class="form-title" *ngIf="detailsData.pathologyFormType==null">申请单类型:无</div>
  70. <div class="form-title" *ngIf="detailsData.pathologyFormType==1">申请单类型:术中快速病理检查申请单</div>
  71. <div class="form-title" *ngIf="detailsData.pathologyFormType==0">申请单类型:病理检查申请单</div>
  72. <div class="form-title" *ngIf="detailsData.pathologyFormType==2">申请单类型:病理细胞学申请单</div>
  73. <div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status?detailsData.status.name:'-'}}</div>
  74. </nz-form-item>
  75. <nz-form-item>
  76. <div class="form-title width-100 font-weight-500">病历摘要:</div>
  77. <div class="indent" [ngClass]="{'height-200': isShowMove, 'height-100': !isShowMove && detailsData.medicalRecords}">{{detailsData.medicalRecords||'无'}}</div>
  78. <div (click)="showLook()" class="cursor" *ngIf="medicalRecordsLength>10">
  79. <i *ngIf="isShowMove" nz-icon nzType="caret-down" nzTheme="outline"></i>
  80. <i *ngIf="!isShowMove" nz-icon nzType="caret-up" nzTheme="outline"></i>
  81. </div>
  82. </nz-form-item>
  83. <nz-form-item>
  84. <div class="form-title width-100 font-weight-500">临床诊断:</div>
  85. <div>
  86. {{detailsData.diagnose||'无'}}
  87. </div>
  88. </nz-form-item>
  89. <nz-form-item class="form-item">
  90. <nz-form-label nzFor="surgicalPlan" [nzSm]="24" [nzXs]="24">手术诊断</nz-form-label>
  91. <nz-form-control nzErrorTip="请输入手术诊断" [nzSm]="24" [nzXs]="24">
  92. <input nz-input formControlName="surgicalPlan" placeholder="请输入手术诊断"/>
  93. </nz-form-control>
  94. </nz-form-item>
  95. <nz-form-item class="form-item">
  96. <nz-form-label nzFor="intraoperativeFindings" [nzSm]="24" [nzXs]="24">术中所见</nz-form-label>
  97. <nz-form-control nzErrorTip="请输入术中所见" [nzSm]="24" [nzXs]="24">
  98. <input nz-input formControlName="intraoperativeFindings" placeholder="请输入术中所见"/>
  99. </nz-form-control>
  100. </nz-form-item>
  101. <nz-form-item class="form-item" *ngIf="syncFlag==0">
  102. <nz-form-label nzRequired nzFor="project" [nzSm]="4" [nzXs]="24">检验项目</nz-form-label>
  103. <nz-form-control nzErrorTip="请选择检验项目!" [nzSm]="20" [nzXs]="24">
  104. <nz-input-group>
  105. <nz-select nzSearch nzShowSearch nzPlaceHolder="请选择检验项目" formControlName="project">
  106. <ng-container *ngFor="let option of projectData">
  107. <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
  108. </ng-container>
  109. </nz-select>
  110. </nz-input-group>
  111. </nz-form-control>
  112. </nz-form-item>
  113. <div class="form-list" *ngIf="syncFlag==1">
  114. <div class="form-title"><span class="font-weight-500">检验项目:</span>{{project||'无'}}</div>
  115. </div>
  116. <div class="df-sb">
  117. <nz-form-item class="form-item">
  118. <nz-form-label nzRequired nzFor="specimenGenre">标本类型</nz-form-label>
  119. <nz-form-control nzErrorTip="请选择标本类型!">
  120. <nz-input-group>
  121. <nz-select nzSearch nzShowSearch nzPlaceHolder="请选择标本类型" formControlName="specimenGenre">
  122. <ng-container *ngFor="let option of specimenData">
  123. <nz-option *ngIf="!isDeptLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
  124. </ng-container>
  125. <nz-option *ngIf="isDeptLoading" nzDisabled nzCustomContent>
  126. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  127. </nz-option>
  128. </nz-select>
  129. </nz-input-group>
  130. </nz-form-control>
  131. </nz-form-item>
  132. <nz-form-item class="form-item-right">
  133. <nz-form-label nzRequired nzFor="specimenNum">标本数量</nz-form-label>
  134. <nz-form-control nzErrorTip="请输入标本数量!">
  135. <input nz-input formControlName="specimenNum" placeholder="请输入标本数量" nzSize="default" />
  136. </nz-form-control>
  137. </nz-form-item>
  138. </div>
  139. <nz-form-item class="form-item">
  140. <nz-form-label nzRequired nzFor="takePart" [nzSm]="4" [nzXs]="24">采取部位</nz-form-label>
  141. <nz-form-control nzErrorTip="请输入采取部位!" [nzSm]="20" [nzXs]="24">
  142. <input nz-input formControlName="takePart" placeholder="请输入采取部位" nzSize="default" />
  143. </nz-form-control>
  144. </nz-form-item>
  145. <nz-form-item class="form-item">
  146. <nz-form-label nzRequired [nzSm]="3" [nzXs]="24">标本</nz-form-label>
  147. <div class="add-icon-class" (click)='openSpecimen()'>
  148. <span class="icon_transport transport-tag27fuben form-icon"></span>
  149. </div>
  150. </nz-form-item>
  151. <div class="specimen-list">
  152. <div *ngFor="let item of specimenList;let index=index;" class="specimen-item">
  153. <div class="specimen-name" (click)="specimenEdit($event,item,index)">
  154. <span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
  155. </div>
  156. <span class="icon_transport transport-lajitong specimen-icon" (click)="specimenDel($event,item,index)"></span>
  157. </div>
  158. </div>
  159. </div>
  160. </form>
  161. </div>
  162. <div class="display_flex justify-content_flex-center bottom-btn">
  163. <button *ngIf="statusValue==1" class="btn btn-right" nz-button nzType="primary" (click)="submitForm('print')" [nzLoading]="btnLoading">标本打印</button>
  164. <button *ngIf="statusValue==2 || statusValue==3" class="btn btn-right" nz-button nzType="primary" (click)="superaddition()" [nzLoading]="zjLoading">追加打印</button>
  165. <button *ngIf="statusValue==2 || statusValue==3" class="btn" nz-button nzType="primary" nzGhost (click)="submitForm('all')" [nzLoading]="btnLoading">全量打印</button>
  166. </div>
  167. </div>
  168. <div class="pathology-content" *ngIf="detailsData && viewType=='view'">
  169. <div class="title">病理检查申请单</div>
  170. <div class="content">
  171. <div class="viewForm">
  172. <div class="content-item">
  173. <div class="form-list form-title-box">
  174. <div class="form-title"><span class="font-weight-500">申请单号:</span>{{detailsData.applyCode}}</div>
  175. <div class="form-title" *ngIf="detailsData.pathologyFormType==null">申请单类型:无</div>
  176. <div class="form-title" *ngIf="detailsData.pathologyFormType==1">申请单类型:术中快速病理检查申请单</div>
  177. <div class="form-title" *ngIf="detailsData.pathologyFormType==0">申请单类型:病理检查申请单</div>
  178. <div class="form-title" *ngIf="detailsData.pathologyFormType==2">申请单类型:病理细胞学申请单</div>
  179. <div class="form-title"><span class="font-weight-500">状态:</span>{{detailsData.status?detailsData.status.name:'-'}}</div>
  180. </div>
  181. <div class="form-list">
  182. <div class="form-title width-100 font-weight-500">病历摘要:</div>
  183. <div class="indent" [ngClass]="{'height-200': isShowMove, 'height-100': !isShowMove && detailsData.medicalRecords}">{{detailsData.medicalRecords||'无'}}</div>
  184. <div (click)="showLook()" class="cursor" *ngIf="medicalRecordsLength>10">
  185. <i *ngIf="isShowMove" nz-icon nzType="caret-down" nzTheme="outline"></i>
  186. <i *ngIf="!isShowMove" nz-icon nzType="caret-up" nzTheme="outline"></i>
  187. </div>
  188. </div>
  189. <div class="form-list">
  190. <div class="form-title font-weight-500">临床诊断:</div>
  191. <div class="indent">
  192. {{detailsData.diagnose||'无'}}
  193. </div>
  194. </div>
  195. <div class="form-list">
  196. <div class="form-title font-weight-500">手术诊断:</div>
  197. <div class="indent">{{detailsData.surgicalPlan||'无'}}</div>
  198. </div>
  199. <div class="form-list">
  200. <div class="form-title font-weight-500">术中所见:</div>
  201. <div class="indent">{{detailsData.intraoperativeFindings||'无'}}</div>
  202. </div>
  203. <div class="form-list">
  204. <div class="form-title"><span class="font-weight-500">检验项目:</span>{{project||'无'}}</div>
  205. </div>
  206. <div class="form-list">
  207. <div class="form-title"><span class="font-weight-500">标本类型:</span>{{detailsData.specimenType.name||'无'}}</div>
  208. </div>
  209. <div class="form-list form-title-box">
  210. <div class="form-title"><span class="font-weight-500">采取部位:</span>{{detailsData.takePart||'无'}}</div>
  211. <div class="form-title"><span class="font-weight-500">标本数量:</span>{{detailsData.specimenNum||'无'}}</div>
  212. </div>
  213. <div class="form-list">
  214. <div class="form-title font-weight-500">标本:</div>
  215. <div class="form-title-box-detail">
  216. <div class="form-title cursors" *ngFor="let item of specimenList" (click)="specimenView(item)">
  217. <span *ngIf="item.partSource && item.partSource.value!=1">{{item.partSource?item.partSource.name:''}}</span>{{item.specimenName}}({{item.specimenCode}})
  218. </div>
  219. </div>
  220. </div>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. <div class="content-item-right" *ngIf="adviceList && adviceList.pathologyFormDTOS.length>0 && pathologyLogs.length && (viewType=='view' || viewType=='edit')">
  227. <div class="step-title">病理闭环</div>
  228. <nz-steps [nzCurrent]="stepLength" nzDirection="vertical" nzSize="small">
  229. <ng-container *ngFor="let item of pathologyLogs; let index = index">
  230. <nz-step
  231. [nzDescription]="tpl"
  232. >
  233. </nz-step>
  234. <ng-template #tpl>
  235. <div *ngIf="index==pathologyLogs.length-1" class="step-size">
  236. <div style="color: #49B856;">{{item.operationType.name}} {{item.handoverUserDto?item.handoverUserDto.name:''}}</div>
  237. <div style="color:#333;">{{item.createTime|date:'yyyy-MM-dd HH:mm:ss'}} {{item.operationUserDto?item.operationUserDto.name:''}}</div>
  238. </div>
  239. <div *ngIf="index!=pathologyLogs.length-1" class="step-size">
  240. <div>{{item.operationType.name}} {{item.handoverUserDto?item.handoverUserDto.name:''}}</div>
  241. <div>{{item.createTime|date:'yyyy-MM-dd HH:mm:ss'}} {{item.operationUserDto?item.operationUserDto.name:''}}</div>
  242. </div>
  243. </ng-template>
  244. </ng-container>
  245. </nz-steps>
  246. </div>
  247. <div class="pathology-content-btn" *ngIf="viewType=='add'">
  248. <button class="btn" nz-button nzType="primary" (click)="addPathology(1)" [nzLoading]="addLoading">新增病理申请单</button>
  249. </div>
  250. </div>
  251. </div>
  252. <!-- 科室切换提示框 -->
  253. <app-hs-prompt-modal
  254. [changeShow]="changeShow"
  255. [closeTime]="closeTime"
  256. [closeTimeFlag]="closeTimeFlag"
  257. [show]="hsPromptModalShow"
  258. (closeModelHs)="closeModelHs($event)"
  259. (clearModelHs)="clearModelHs($event)"
  260. deptType="nurse"
  261. >
  262. <!-- 返回系统按钮 -->
  263. <!-- 右侧悬浮框 -->
  264. <div id="fixedMenu" class="fixed" *ngIf="mainRole">
  265. <div class="right">
  266. <div class="fixedMenu hujiaozhongxin">
  267. <div class="menuItems">
  268. <div class="item">快捷菜单</div>
  269. </div>
  270. </div>
  271. <div class="fixedMenu">
  272. <div class="menuItems">
  273. <div
  274. class="others"
  275. [ngStyle]="{
  276. height: showLastItems
  277. ? mainRole
  278. ? 35 * 2 + 'px'
  279. : 35 * 1 + 'px'
  280. : 0
  281. }"
  282. >
  283. <div
  284. [ngClass]="{ item: true, checked: fixedTab == 'back' }"
  285. *ngIf="mainRole"
  286. (click)="checkFixedTab('toSystem')"
  287. >
  288. 返回系统
  289. </div>
  290. </div>
  291. </div>
  292. <div class="arrow" *ngIf="!showLastItems" (click)="fixedMenuXiala()">
  293. <i class="icon_transport transport-xiala2-01"></i>
  294. </div>
  295. <div class="arrow" *ngIf="showLastItems" (click)="fixedMenuShangla()">
  296. <i class="icon_transport transport-shangla-"></i>
  297. </div>
  298. </div>
  299. </div>
  300. <div
  301. *ngIf="showLastItems && fixedTab != ''"
  302. (click)="fixedMenuShangla()"
  303. class="fixedMark"
  304. ></div>
  305. </div>
  306. </app-hs-prompt-modal>
  307. <!-- 操作成功/失败提示框 -->
  308. <app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
  309. [info]="promptInfo" (closeModel)="closeModel()"></app-prompt-modal>
  310. <!-- 病理申请单 -->
  311. <!-- <app-pathology-add *ngIf="pathologyModal" [surgeryId]="surgeryDataId" [patientId]="patientId" [detailId]="detailId" [applicationType]="applicationType" (pathologyCancel)="pathologyCancel($event)"></app-pathology-add> -->
  312. <!-- 选择标本 -->
  313. <div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="specimenModal">
  314. <div class="modalBody">
  315. <div class="title">新增病理标本<i class="icon_transport transport-guanbi" (click)="hideSpecimenModal()"></i>
  316. </div>
  317. <div class="content">
  318. <form nz-form [formGroup]="validateSpecimenForm" class="addForm" (ngSubmit)="submitSpecimen()">
  319. <nz-form-item class="form-item" *ngIf="!selectType">
  320. <nz-form-label nzRequired [nzSm]="2" [nzXs]="24">位置来源</nz-form-label>
  321. <div class="specimen-list">
  322. <div>
  323. <div *ngFor="let item of placeList;let index=index;" class="select-item"
  324. [ngClass]="{'activeClass': index == placeIndex}" (click)="placeClick($event,item,index)" class="select-item">{{item.name}}</div>
  325. </div>
  326. </div>
  327. </nz-form-item>
  328. <nz-form-item class="form-item" *ngIf="!selectType">
  329. <nz-form-label nzRequired [nzSm]="2" [nzXs]="24">系统</nz-form-label>
  330. <div class="specimen-list">
  331. <div *ngFor="let item of systemList;let index=index;" class="select-item"
  332. [ngClass]="{'activeClass': index == systemIndex}" (click)="systemClick($event,item,index)">
  333. {{item.name}}
  334. </div>
  335. </div>
  336. </nz-form-item>
  337. <nz-form-item class="form-item" *ngIf="!selectType">
  338. <nz-form-label nzRequired [nzSm]="2" [nzXs]="24">器官</nz-form-label>
  339. <div class="specimen-list">
  340. <div *ngFor="let item of apparatusList;let index=index;" class="select-item"
  341. [ngClass]="{'activeClass': index == apparatusIndex}" (click)="apparatusClick($event,item,index)">
  342. {{item.name}}
  343. </div>
  344. </div>
  345. </nz-form-item>
  346. <nz-form-item class="form-item">
  347. <nz-form-label [nzSm]="4" [nzXs]="24">标本名称快捷选择</nz-form-label>
  348. <div class="specimen-list">
  349. <div *ngFor="let item of specimenNameList;let index=index;" class="select-item"
  350. [ngClass]="{'activeClass': index == specimenNameIndex}" (click)="specimenNameClick($event,item,index)">
  351. {{item.name}}
  352. </div>
  353. </div>
  354. </nz-form-item>
  355. <!-- <nz-form-item class="form-item">
  356. <nz-form-label [nzSm]="4" [nzXs]="24">快捷键入</nz-form-label>
  357. <div class="specimen-list">
  358. <div *ngFor="let item of fastList;let index=index;" class="select-item"
  359. [ngClass]="{'activeClass': index == fastIndex}" (click)="fastClick($event,item,index)">
  360. {{item.name}}
  361. </div>
  362. </div>
  363. </nz-form-item> -->
  364. <nz-form-item class="form-item">
  365. <nz-form-label nzRequired nzFor="specimenName" [nzSm]="3" [nzXs]="24">标本名称</nz-form-label>
  366. <div class="specimen-tip" [ngClass]="{'isSpecumen':placeName}">{{placeName?placeName:''}}</div>
  367. <nz-form-control nzErrorTip="请输入标本名称" [(nzSm)]="nzSmNum" [nzXs]="24">
  368. <input nz-input maxlength="20" (ngModelChange)="specimenInput($event)" formControlName="specimenName" placeholder="请输入标本名称"/>
  369. </nz-form-control>
  370. <div class="empty-box" [ngClass]="{'beSpecumenEmpty':placeName, 'noSpecumenEmpty':!placeName}">
  371. <span class="name">{{specimenNameLength}}/20</span>
  372. <span class="empty" (click)="emptData($event)">清空</span>
  373. </div>
  374. </nz-form-item>
  375. <nz-form-item class="form-item">
  376. <nz-form-label nzFor="remark" [nzSm]="3" [nzXs]="24">备注</nz-form-label>
  377. <nz-form-control nzErrorTip="请输入备注" [nzSm]="21" [nzXs]="24">
  378. <textarea rows="3" nz-input formControlName="remark" placeholder="请输入备注"></textarea>
  379. </nz-form-control>
  380. </nz-form-item>
  381. </form>
  382. </div>
  383. <div class="display_flex justify-content_flex-center bottom-btn">
  384. <button class="btn btn-right" nz-button nzType="primary" (click)="submitSpecimen(1)" [nzLoading]="btnSpLoading">确定</button>
  385. <button class="btn btn-right" nz-button nzType="primary" (click)="submitSpecimen(2)">新增下一个标本</button>
  386. <button class="btn cancel" nz-button nzType="default" (click)="hideSpecimenModal()">取消</button>
  387. </div>
  388. </div>
  389. </div>
  390. <app-prompt-modal *ngIf="specimenModalShow" [content]="promptContent" [success]="ifSuccess" [show]="specimenModalShow"
  391. [info]="promptInfo" (closeModel)="closeSpecimenModel()"></app-prompt-modal>
  392. <!-- 新增下一个标本 -->
  393. <app-dialog-delete [delModal]="addMadal" (hideDelModalEvent)="hideAddModal()" [btnLoading]="addSpLoading"
  394. (confirmDelEvent)="confirmAdd()" content="您确认要新增下一个标本吗?"></app-dialog-delete>
  395. <!-- 删除模态框 -->
  396. <app-dialog-delete [delModal]="delModal" (hideDelModalEvent)="hideDelModal()" [btnLoading]="btnLoading"
  397. (confirmDelEvent)="confirmDel()" content="您确认要删除标本吗?"></app-dialog-delete>
  398. <!-- 删除申请单 -->
  399. <app-dialog-delete [delModal]="delAdviceModal" (hideDelModalEvent)="hideAdviceModal()" [btnLoading]="btnDelLoading"
  400. (confirmDelEvent)="confirmAdvice()" content="您确认要删除申请单吗?"></app-dialog-delete>
  401. <!-- 查看标本 -->
  402. <div class="look">
  403. <div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="specimenViewDialog">
  404. <div class="modalBody modalBody-ga">
  405. <div class="title">查看标本<i class="icon_transport transport-guanbi" (click)="closeSpecimenModal()"></i>
  406. </div>
  407. <overlay-scrollbars #osComponentRef1 class="content">
  408. <div class="list-template__bottom">
  409. <nz-table class="list-template__nzTable" [nzData]="viewData" nzSize="middle" [nzShowPagination]="false"
  410. [nzLoading]="loading1">
  411. <thead>
  412. <tr class="thead">
  413. <th>标本名称</th>
  414. <th>编码</th>
  415. <th>备注</th>
  416. <th>离体时间</th>
  417. <th>离体操作人</th>
  418. <th>固定时间</th>
  419. <th>固定操作人</th>
  420. </tr>
  421. </thead>
  422. <tbody>
  423. <tr *ngFor="let data of viewData">
  424. <td>{{ data.specimenName }}</td>
  425. <td>{{ data.specimenCode }}</td>
  426. <td>{{ data.remark ? data.remark : '无' }}</td>
  427. <td>{{ data.inVitroTime ? (data.inVitroTime|date:'yyyy-MM-dd HH:mm:ss') : '-' }}</td>
  428. <td>{{ data.inVitroOperator ? data.inVitroOperator.name : '-' }}</td>
  429. <td>{{ data.fixationTime ? (data.fixationTime|date:'yyyy-MM-dd HH:mm:ss') : '-' }}</td>
  430. <td>{{ data.fixationOperator ? data.fixationOperator.name : '-' }}</td>
  431. </tr>
  432. </tbody>
  433. </nz-table>
  434. </div>
  435. </overlay-scrollbars>
  436. <div class="display_flex justify-content_flex-center">
  437. <button class="btn" nz-button nzType="primary" (click)="closeSpecimenModal()">知道了</button>
  438. </div>
  439. </div>
  440. </div>
  441. </div>
  442. <!-- 离体并固定 -->
  443. <div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="notModal">
  444. <div class="modalBody no-width">
  445. <div class="title">{{ifImmobilization?'离体并固定':'离体'}}<i class="icon_transport transport-guanbi" (click)="hideNotModal()"></i>
  446. </div>
  447. <div class="content">
  448. <!-- <div class="content-title">本次需要记录离体标本<span class="reds">{{specimenNum}}</span>份,本申请单共<span class="reds">{{totalNum}}</span>份标本</div> -->
  449. <form nz-form [formGroup]="validatePrintForm" class="addForm" (ngSubmit)="submitPrintForm()">
  450. <nz-form-item>
  451. <nz-form-label nzRequired [nzSpan]="6" nzFor="inVitroTime">离体时间</nz-form-label>
  452. <nz-form-control style="display: flex;align-items: center;" [nzSpan]="18" nzErrorTip="请选择离体时间!">
  453. <nz-input-group style="display: flex;gap: 10px">
  454. <!-- <nz-date-picker formControlName="inVitroTime"
  455. [nzShowTime]="{ nzFormat: 'yyyy-MM-dd HH:mm:ss' }" nzFormat="yyyy-MM-dd HH:mm:ss"
  456. (ngModelChange)="inVitroTimeChange($event)"></nz-date-picker> -->
  457. <nz-date-picker formControlName="inVitroDate" (ngModelChange)="inVitroDateChange($event)"></nz-date-picker>
  458. <nz-time-picker formControlName="inVitroTimes" nzFormat="HH:mm" (ngModelChange)="inVitroTimeChange($event)"></nz-time-picker>
  459. </nz-input-group>
  460. </nz-form-control>
  461. </nz-form-item>
  462. <nz-form-item *ngIf="ifImmobilization">
  463. <nz-form-label nzRequired [nzSpan]="6" nzFor="fixationTime">固定时间</nz-form-label>
  464. <nz-form-control style="display: flex;align-items: center;" [nzSpan]="18" nzErrorTip="请选择固定时间!">
  465. <nz-input-group style="display: flex;gap: 10px">
  466. <!-- <nz-date-picker formControlName="fixationTime"
  467. [nzShowTime]="{ nzFormat: 'yyyy-MM-dd HH:mm:ss' }" nzFormat="yyyy-MM-dd HH:mm:ss"
  468. (ngModelChange)="formChangeDate($event)"></nz-date-picker> -->
  469. <nz-date-picker formControlName="fixationDate" (ngModelChange)="fixationDateChange($event)"></nz-date-picker>
  470. <nz-time-picker formControlName="fixationTimes" nzFormat="HH:mm" (ngModelChange)="fixationTimeChange($event)"></nz-time-picker>
  471. </nz-input-group>
  472. </nz-form-control>
  473. </nz-form-item>
  474. <nz-form-item *ngIf="ifImmobilization">
  475. <nz-form-label nzRequired [nzSpan]="8" nzFor="fixative">固定液类型</nz-form-label>
  476. <nz-form-control [nzSpan]="16" nzErrorTip="请选择固定液类型!">
  477. <nz-input-group>
  478. <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzPlaceHolder="请选择固定液类型" formControlName="fixative">
  479. <ng-container *ngFor="let option of fixativeData">
  480. <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
  481. </ng-container>
  482. </nz-select>
  483. </nz-input-group>
  484. </nz-form-control>
  485. </nz-form-item>
  486. <nz-form-item>
  487. <nz-form-label nzRequired [nzSpan]="5" nzFor="jobNumber">工号</nz-form-label>
  488. <nz-form-control [nzSpan]="19" nzErrorTip="请输入工号!">
  489. <input nz-input (ngModelChange)="numberChange($event)" formControlName="jobNumber" placeholder="请输入工号" nzSize="default" />
  490. </nz-form-control>
  491. </nz-form-item>
  492. <nz-form-item>
  493. <nz-form-label nzRequired [nzSpan]="5" nzFor="name">姓名</nz-form-label>
  494. <nz-form-control [nzSpan]="19" nzErrorTip="请输入姓名!">
  495. <input nz-input disabled formControlName="name" placeholder="请输入姓名" nzSize="default" />
  496. </nz-form-control>
  497. </nz-form-item>
  498. </form>
  499. </div>
  500. <div class="display_flex justify-content_flex-center bottom-btn">
  501. <button class="btn btn-right" nz-button nzType="primary" (click)="submitVerificationForm()" [nzLoading]="printLoading">确定</button>
  502. <button class="btn cancel" nz-button nzType="default" (click)="hideNotModal()">取消</button>
  503. </div>
  504. </div>
  505. </div>
  506. <!-- 打印 -->
  507. <div id="report" style="display: none;">
  508. <div class="monad">
  509. <!-- 大尺寸 80*60-->
  510. <div style="font-size: 12px;" *ngIf="outpatientPathologyLabelSizeType==1 && printData && printData.specimenList && printData.specimenList.length>0">
  511. <div *ngFor="let data of printData.specimenList; let index=index;">
  512. <div>
  513. <div style="display: flex;align-items: center;flex-wrap: nowrap;height: 70px;padding: 0 1px;">
  514. <div style="width: 60%;height: 70px;text-align: center;">
  515. <img style="max-width: 90%;height: 80%;" [src]="data.barCode" alt="">
  516. <div>标本号:{{data.specimenCode}}</div>
  517. </div>
  518. <div style="width: 40%;height: 100%;text-align: center;display: flex;align-items: center;">
  519. <img style="max-width: 100%;max-height: 100%;" [src]="tool.logoUrl" alt="">
  520. </div>
  521. </div>
  522. <div style="display: flex;justify-content: space-between;">
  523. <div style="width: 70%;margin-right:15px;">
  524. <div style="display: flex; justify-content: space-between; margin-top:10px;">
  525. <div>患者: {{data.patientName}}</div>
  526. <div>性别: {{data.patientGender}}</div>
  527. </div>
  528. <div style="margin-top:10px;">
  529. <div>门诊号: {{data.patientNo}}</div>
  530. </div>
  531. <div style="margin-top:10px;">
  532. <div>科室: {{data.patientDept}}</div>
  533. </div>
  534. <div style="margin-top:10px;">
  535. <div>日期: {{data.inVitroTime|date:'yyyy-MM-dd'}}</div>
  536. </div>
  537. <div style="margin-top:10px;">
  538. <div style="width: 98%;height: 32px;overflow: hidden;">部位: {{data.partSource}}{{data.specimenName}}</div>
  539. </div>
  540. </div>
  541. <div style="width: 30%;">
  542. <div style="margin-top:10px;">年龄: {{data.patientAge}}岁</div>
  543. <div style="margin-top:10px;">床号: {{data.patientBedNum}}床</div>
  544. <div style="margin-top:10px;" *ngIf="operation == 'addPrint'">标本数: {{index+1}}/{{printData.specimenNum}}</div>
  545. <div style="margin-top:10px;" *ngIf="operation != 'addPrint'">标本数: {{index+1}}/{{printData.specimenList.length}}</div>
  546. <div style="width: 100%;height: 60px;display: flex;margin-top: 5px;">
  547. <div style="height: 50px;width: 50px;">
  548. <img style="max-width: 100%;max-height: 100%;position: relative;left: -2px;" [src]="printData.applyBarCode" alt="">
  549. <div style="position: relative;left: -18px;">{{printData.applyCode}}</div>
  550. </div>
  551. <div style="width: 12px;position: relative; top: 2px;">申请单</div>
  552. </div>
  553. </div>
  554. </div>
  555. </div>
  556. <div style="height: 26px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && index+1 < printData.specimenList.length"></div>
  557. </div>
  558. </div>
  559. <!-- 小尺寸 20*30-->
  560. <div style="font-size: 12px;" *ngIf="outpatientPathologyLabelSizeType==2 && printData && printData.specimenList && printData.specimenList.length>0">
  561. <div *ngFor="let data of printData.specimenList; let index=index;">
  562. <div style="width: 100%;display: flex;margin-top: 5px;padding: 0 7px;">
  563. <div style="width: 35%;">
  564. <div style="display: flex;">
  565. <div style="width: 50px;height: 50px;">
  566. <img style="max-width: 100%;max-height: 100%;position: relative;left: -2px;" [src]="data.barCode" alt="">
  567. </div>
  568. <!-- <div style="width: 12px;">申请单</div> -->
  569. </div>
  570. <div>{{printData.applyCode}}</div>
  571. </div>
  572. <div style="width: 5%;"></div>
  573. <div style="width: 60%;position: relative;left: -5px;">
  574. <div style="display: flex;flex-wrap: nowrap;">住院号: {{data.residenceNo}}</div>
  575. <div style="margin-top:9px;">患者: {{data.patientName}}</div>
  576. <div style="margin-top:9px;margin-left: 30px;">性别: {{data.patientGender}}</div>
  577. </div>
  578. </div>
  579. <div style="margin-top:3px;padding-left: 7px;">
  580. <div style="width: 98%;overflow: hidden;">部位: {{data.partSource}}{{data.specimenName}}</div>
  581. </div>
  582. <div style="margin-top:3px;padding-left: 7px;">
  583. <div style="width: 98%;">日期: {{data.inVitroTime|date:'yyyy-MM-dd'}}</div>
  584. </div>
  585. <div style="height: 18px;" *ngIf="printData && printData.specimenList && printData.specimenList.length>1 && index+1 < printData.specimenList.length"></div>
  586. </div>
  587. </div>
  588. </div>
  589. </div>
  590. <div class="mask-style" *ngIf="isSpinning">
  591. <nz-spin nzSimple class="spin-style"></nz-spin>
  592. </div>