patient-search.component.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. <div class="list-template">
  2. <div class="list-template__content">
  3. <div class="list-template__top" nz-row>
  4. <div nz-col nzXl='16' class="list-template__searchBox">
  5. <div class="list-template__searchItem">
  6. <span class="label">院区:</span>
  7. <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzPlaceHolder="请选择院区" [(ngModel)]="searchCriteria.hosId" (ngModelChange)="changeHospitalSearch($event)">
  8. <ng-container *ngFor="let option of hospitalSearchList">
  9. <nz-option *ngIf="!isLoading" [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
  10. </ng-container>
  11. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  12. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  13. </nz-option>
  14. </nz-select>
  15. </div>
  16. <div class="list-template__searchItem">
  17. <span class="label">患者姓名:</span>
  18. <input nz-input class="formItem" placeholder="请输入患者姓名" [(ngModel)]="searchCriteria.patientName" />
  19. </div>
  20. <div class="list-template__searchItem">
  21. <span class="label">当前科室:</span>
  22. <nz-select [nzDropdownMatchSelectWidth]="false" class="formItem" nzServerSearch nzShowSearch nzAllowClear nzPlaceHolder="请选择当前科室" [(ngModel)]="searchCriteria.department" (nzOnSearch)="changeInp($event, 'departmentSearch')" (nzOpenChange)="openDepartmentSearch($event)">
  23. <ng-container *ngFor="let data of deptSearchList">
  24. <nz-option *ngIf="!isLoading" [nzLabel]="data.dept" [nzValue]="data.id"></nz-option>
  25. </ng-container>
  26. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  27. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  28. </nz-option>
  29. </nz-select>
  30. </div>
  31. <div class="list-template__searchItem">
  32. <span class="label">患者类别:</span>
  33. <nz-select [nzDropdownMatchSelectWidth]="false" class="formItem" nzAllowClear nzPlaceHolder="请选择患者类别" [(ngModel)]="searchCriteria.patientType">
  34. <ng-container *ngFor="let data of patientTypeList">
  35. <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
  36. </ng-container>
  37. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  38. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  39. </nz-option>
  40. </nz-select>
  41. </div>
  42. <div class="list-template__searchItem">
  43. <span class="label">护理等级:</span>
  44. <nz-select [nzDropdownMatchSelectWidth]="false" class="formItem" nzAllowClear nzPlaceHolder="请选择护理等级" [(ngModel)]="searchCriteria.careLevel">
  45. <ng-container *ngFor="let data of careLevelList">
  46. <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
  47. </ng-container>
  48. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  49. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  50. </nz-option>
  51. </nz-select>
  52. </div>
  53. <div class="list-template__searchItem">
  54. <span class="label">病情级别:</span>
  55. <nz-select [nzDropdownMatchSelectWidth]="false" class="formItem" nzAllowClear nzPlaceHolder="请选择病情级别" [(ngModel)]="searchCriteria.illnessState">
  56. <ng-container *ngFor="let data of illnessStateList">
  57. <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
  58. </ng-container>
  59. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  60. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  61. </nz-option>
  62. </nz-select>
  63. </div>
  64. </div>
  65. <div nz-col nzXl="8" class="list-template__btns">
  66. <button nz-button class="btn default" (click)='reset()'>重置</button>
  67. <button nz-button class="btn default ml8" (click)='getList(1)'>搜索</button>
  68. <button nz-button *ngIf="coopBtns.add" class="btn ml8 default" (click)="showModal()">新增</button>
  69. </div>
  70. </div>
  71. <div class="list-template__bottom">
  72. <nz-table class="list-template__nzTable" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false"
  73. [nzLoading]="loading1">
  74. <thead>
  75. <tr class="thead">
  76. <th nzWidth="8%">患者类别</th>
  77. <th nzWidth="10%">患者姓名(床号)</th>
  78. <th nzWidth="10%">患者标识</th>
  79. <th nzWidth="10%">住院号|条码号</th>
  80. <th nzWidth="10%">院区|当前科室</th>
  81. <th nzWidth="10%">护理等级</th>
  82. <th nzWidth="8%">病情级别</th>
  83. <th nzWidth="8%">性别、年龄</th>
  84. <th nzWidth="12%">陪检方式|注意事项</th>
  85. <th nzWidth="14%">操作</th>
  86. </tr>
  87. </thead>
  88. <tbody>
  89. <tr *ngFor="let data of listOfData;let i = index">
  90. <td>{{ data.patientType?.name }}</td>
  91. <td>{{ data.patientName }}({{ data.bedNum }})</td>
  92. <td>{{ data.patientCode }}</td>
  93. <td>{{ data.residenceNo }}<br>{{ data.barCode }}</td>
  94. <td>{{ data.hospitalDTO?.hosName }}<br>{{ data.department?.dept }}</td>
  95. <td>{{ data.careLevel?.name }}</td>
  96. <td>{{ data.illnessState?.name }}</td>
  97. <td>{{ data.gender?.name }}、{{ data.age }}</td>
  98. <td>{{ data.tripTypeDTO?.inspectMode }}<br>{{ data.remark }}</td>
  99. <td>
  100. <div class="coop">
  101. <span *ngIf="coopBtns.edit" (click)="edit(data)">编辑</span>
  102. <span *ngIf="coopBtns.removeSign" (click)="showDelModal(data, '您确认要清空标记吗?','清空标记','clearSign')">清空标记</span>
  103. <span *ngIf="coopBtns.lookLog" (click)="showLogs(data)">查看日志</span>
  104. </div>
  105. </td>
  106. </tr>
  107. </tbody>
  108. </nz-table>
  109. <div class="list-template__pagination">
  110. <nz-pagination [(nzPageIndex)]="pageIndex" [(nzTotal)]="listLength" [(nzPageSize)]="pageSize"
  111. (nzPageIndexChange)="getList(0)" (nzPageSizeChange)="getList(0)">
  112. </nz-pagination>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. <!-- 新增/编辑模态框 -->
  118. <div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="modal" (click)="clickExtra($event)">
  119. <div class="modalBody">
  120. <div class="title">{{add?"新增":"编辑"}}<i class="icon_transport transport-guanbi" (click)="hideModal()"></i>
  121. </div>
  122. <overlay-scrollbars #osComponentRef1 class="content">
  123. <form nz-form [formGroup]="validateForm" class="addForm" (ngSubmit)="submitForm()">
  124. <nz-form-item>
  125. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="patientName">患者姓名</nz-form-label>
  126. <nz-form-control nzErrorTip="请填写患者姓名!">
  127. <nz-input-group>
  128. <input type="text" nz-input formControlName="patientName" placeholder="请填写患者姓名" />
  129. </nz-input-group>
  130. </nz-form-control>
  131. </nz-form-item>
  132. <nz-form-item>
  133. <nz-form-label style="line-height:40px;" [nzSm]="3" [nzXs]="24" nzFor="gender">性别</nz-form-label>
  134. <nz-form-control nzErrorTip="请选择性别!">
  135. <nz-radio-group type="gender" formControlName="gender">
  136. <label nz-radio [nzValue]="data.id" *ngFor="let data of genderList">{{data.name}}</label>
  137. </nz-radio-group>
  138. </nz-form-control>
  139. </nz-form-item>
  140. <nz-form-item>
  141. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="age">年龄</nz-form-label>
  142. <nz-form-control nzErrorTip="请填写年龄!">
  143. <nz-input-group>
  144. <nz-input-number class="w100" formControlName="age" placeholder="请填写年龄" [nzMin]="0" [nzStep]="1" [nzPrecision]="0"></nz-input-number>
  145. </nz-input-group>
  146. </nz-form-control>
  147. </nz-form-item>
  148. <nz-form-item>
  149. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="patientCode">患者标识</nz-form-label>
  150. <nz-form-control nzErrorTip="请填写患者标识!">
  151. <nz-input-group>
  152. <input type="text" nz-input formControlName="patientCode" placeholder="请填写患者标识" />
  153. </nz-input-group>
  154. </nz-form-control>
  155. </nz-form-item>
  156. <nz-form-item>
  157. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="residenceNo">住院号</nz-form-label>
  158. <nz-form-control nzErrorTip="请填写住院号!">
  159. <nz-input-group>
  160. <input type="text" nz-input formControlName="residenceNo" placeholder="请填写住院号" />
  161. </nz-input-group>
  162. </nz-form-control>
  163. </nz-form-item>
  164. <nz-form-item>
  165. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="barCode">条码号</nz-form-label>
  166. <nz-form-control nzErrorTip="请填写条码号!">
  167. <nz-input-group>
  168. <input type="text" nz-input formControlName="barCode" placeholder="请填写条码号" />
  169. </nz-input-group>
  170. </nz-form-control>
  171. </nz-form-item>
  172. <nz-form-item>
  173. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="bedNum">床号</nz-form-label>
  174. <nz-form-control nzErrorTip="请填写床号!">
  175. <nz-input-group>
  176. <input type="text" nz-input formControlName="bedNum" placeholder="请填写床号" />
  177. </nz-input-group>
  178. </nz-form-control>
  179. </nz-form-item>
  180. <nz-form-item>
  181. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="hosId">院区</nz-form-label>
  182. <nz-form-control nzErrorTip="请选择院区!">
  183. <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzPlaceHolder="请选择院区" formControlName="hosId" (ngModelChange)="changeHospital($event)">
  184. <ng-container *ngFor="let option of hospitalList">
  185. <nz-option *ngIf="!isLoading" [nzLabel]="option.hosName" [nzValue]="option.id"></nz-option>
  186. </ng-container>
  187. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  188. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  189. </nz-option>
  190. </nz-select>
  191. </nz-form-control>
  192. </nz-form-item>
  193. <nz-form-item>
  194. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="department">当前科室</nz-form-label>
  195. <nz-form-control nzErrorTip="请选择当前科室!">
  196. <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="department" nzShowSearch nzAllowClear nzPlaceHolder="请选择当前科室" nzServerSearch (nzOnSearch)="changeInp($event, 'department')" (nzOpenChange)="openDepartment($event)">
  197. <ng-container *ngFor="let data of deptList">
  198. <nz-option *ngIf="!isLoading" [nzLabel]="data.dept" [nzValue]="data.id">
  199. </nz-option>
  200. </ng-container>
  201. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  202. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  203. </nz-option>
  204. </nz-select>
  205. </nz-form-control>
  206. </nz-form-item>
  207. <nz-form-item>
  208. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="careLevel">护理等级</nz-form-label>
  209. <nz-form-control nzErrorTip="请选择护理等级!">
  210. <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="careLevel" nzAllowClear nzPlaceHolder="请选择护理等级">
  211. <ng-container *ngFor="let data of careLevelList">
  212. <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id">
  213. </nz-option>
  214. </ng-container>
  215. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  216. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  217. </nz-option>
  218. </nz-select>
  219. </nz-form-control>
  220. </nz-form-item>
  221. <nz-form-item>
  222. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="illnessState">病情级别</nz-form-label>
  223. <nz-form-control nzErrorTip="请选择病情级别!">
  224. <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="illnessState" nzAllowClear nzPlaceHolder="请选择病情级别">
  225. <ng-container *ngFor="let data of illnessStateList">
  226. <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id">
  227. </nz-option>
  228. </ng-container>
  229. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  230. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  231. </nz-option>
  232. </nz-select>
  233. </nz-form-control>
  234. </nz-form-item>
  235. <nz-form-item>
  236. <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="patientType">患者类别</nz-form-label>
  237. <nz-form-control nzErrorTip="请选择患者类别!">
  238. <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="patientType" nzAllowClear nzPlaceHolder="请选择患者类别">
  239. <ng-container *ngFor="let data of patientTypeList">
  240. <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id">
  241. </nz-option>
  242. </ng-container>
  243. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  244. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  245. </nz-option>
  246. </nz-select>
  247. </nz-form-control>
  248. </nz-form-item>
  249. <nz-form-item>
  250. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="tripType">陪检方式</nz-form-label>
  251. <nz-form-control nzErrorTip="请选择陪检方式!">
  252. <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="tripType" nzAllowClear nzPlaceHolder="请选择陪检方式" (nzOpenChange)="openTripType($event)">
  253. <ng-container *ngFor="let data of tripTypeList">
  254. <nz-option *ngIf="!isLoading" [nzLabel]="data.inspectMode" [nzValue]="data.id">
  255. </nz-option>
  256. </ng-container>
  257. <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
  258. <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
  259. </nz-option>
  260. </nz-select>
  261. </nz-form-control>
  262. </nz-form-item>
  263. <nz-form-item>
  264. <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="remark">注意事项</nz-form-label>
  265. <nz-form-control nzErrorTip="请选择注意事项!">
  266. <div class="noteSign">
  267. <textarea formControlName="remark" class="noteFocus mt8" id="noteFocus" (focus)="focusNote()" nz-input rows="5" placeholder="请填写注意事项" #remarkEle></textarea>
  268. <div class="noteList" id="noteList" *ngIf="isShowNoteList">
  269. <ng-container *ngIf="!noteLoading && noteList.length">
  270. <div class="noteItem ellipsis-oneline" *ngFor="let item of noteList" [title]="item.name" (click)="selectNote(item.name)">{{item.name}}</div>
  271. </ng-container>
  272. <div *ngIf="!noteLoading && !noteList.length" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
  273. <nz-empty></nz-empty>
  274. </div>
  275. <div *ngIf="noteLoading" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
  276. <nz-spin nzSimple></nz-spin>
  277. </div>
  278. </div>
  279. </div>
  280. </nz-form-control>
  281. </nz-form-item>
  282. </form>
  283. </overlay-scrollbars>
  284. <div class="display_flex justify-content_flex-center">
  285. <button nzType="primary" nz-button (click)="submitForm()" [nzLoading]="btnLoading">确认</button>
  286. <button class="btn cancel" nz-button nzType="default" (click)="hideModal()">取消</button>
  287. </div>
  288. </div>
  289. </div>
  290. <!-- 删除模态框 -->
  291. <app-dialog-delete [delModal]="delModal" (hideDelModalEvent)="hideDelModal()" [btnLoading]="btnLoading"
  292. (confirmDelEvent)="confirmDel()" [content]="tipsMsg1"></app-dialog-delete>
  293. <!-- 操作成功/失败提示框 -->
  294. <app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
  295. [info]="promptInfo"></app-prompt-modal>
  296. <!-- 查看日志 -->
  297. <app-patient-log-prompt-modal *ngIf="logPromptModalShow" [show]="logPromptModalShow" [id]="patientId" (closeModelHs)="closeModelLog($event)"></app-patient-log-prompt-modal>