CommonServies.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. <?php
  2. declare (strict_types=1);
  3. namespace app\zskk\servies;
  4. use app\common\library\Gm;
  5. use app\common\library\Handle;
  6. use app\zskk\model\CallRecord;
  7. use app\zskk\model\Patient;
  8. use think\facade\Config;
  9. class CommonServies
  10. {
  11. public $patientModel = null;
  12. public $callRecordModel = null;
  13. public function __construct(Patient $patientModel, CallRecord $callRecord)
  14. {
  15. $this->patientModel = $patientModel;
  16. $this->callRecordModel = $callRecord;
  17. }
  18. public function getMpiModel($idCard)
  19. {
  20. $mpiIdCard = Gm::encrypt(Config::get('gm.key'),$idCard);
  21. $mpiModel = $this->patientModel->getMpi($mpiIdCard);
  22. if($mpiModel) {
  23. return $mpiModel;
  24. }
  25. $mpiKey = Handle::makeMpiKey($idCard);
  26. $mpi = Handle::makeMpi();
  27. $this->patientModel->saveMpi($mpi, $idCard, $mpiKey);
  28. return [
  29. 'MPI' => $mpi,
  30. 'ID_CARDNUM' => $idCard,
  31. 'MPI_KEY' => $mpiKey
  32. ];
  33. }
  34. public function handlePATIENT($data, $MEDICAL_INFORMATION)
  35. {
  36. // 姓名
  37. // 证件类型
  38. // 证件号码
  39. // 性别
  40. // 出生日期
  41. $NAME = $data['NAME'];
  42. $ID_CARD_CODE = $data['ID_CARD_CODE'];
  43. $ID_CARDNUM = $data['ID_CARDNUM'];
  44. $GENDER_CODE = $data['GENDER_CODE'];
  45. $BIRTH_DATE = $data['BIRTH_DATE'];
  46. $ID_CARD = $this->getID_CARDByCode($ID_CARD_CODE);
  47. $GENDER = $this->getGENDERByCode($GENDER_CODE);
  48. $MPI_MODEL = $this->getMpiModel($ID_CARDNUM);
  49. $MPI_KEY = $MPI_MODEL['MPI_KEY'];
  50. $MPI = $MPI_MODEL['MPI'];
  51. $PATIENT_CODE = $this->getPATIENT_CODE($MPI_KEY, $MEDICAL_INFORMATION['ORGCODE'], $MEDICAL_INFORMATION['SERIESNUM']);
  52. $PATIENT = [
  53. 'NAME' => $NAME,
  54. 'PATIENT_CODE' => $PATIENT_CODE,
  55. 'ID_CARD_CODE' => $ID_CARD_CODE,
  56. 'ID_CARD' => $ID_CARD,
  57. 'ID_CARDNUM' => $ID_CARDNUM,
  58. 'GENDER_CODE' => $GENDER_CODE,
  59. 'GENDER' => $GENDER,
  60. 'BIRTH_DATE' => $BIRTH_DATE,
  61. 'MPI_KEY' => $MPI_KEY,
  62. 'MPI' => $MPI,
  63. 'create_time' => $MEDICAL_INFORMATION['ENCOUNTER_DATE'],
  64. 'PHONE' => $data['PHONE'],
  65. ];
  66. return $PATIENT;
  67. }
  68. public function handleMEDICAL_INFORMATION($data, $PATIENT) {
  69. // 就诊类型
  70. // 就诊卡号
  71. // 就诊号
  72. // 医院主索引
  73. // 就诊时间
  74. // 就诊科室名称
  75. // 主诉
  76. // 年龄
  77. // 机构编码
  78. // 机构名称
  79. // 诊断编码
  80. // 诊断名称
  81. // 接诊医生名称
  82. // 接诊医生编号
  83. $CLASS_CODE = $data['CLASS_CODE'];
  84. $ENCOUNTER_CARD_NO = $data['ENCOUNTER_CARD_NO'];
  85. $SERIESNUM = $data['SERIESNUM'];
  86. $HOS_EMPI = $data['HOS_EMPI'] ?? '';
  87. $ENCOUNTER_DATE = $data['ENCOUNTER_DATE'];
  88. $DEPTNAME = $data['DEPTNAME'];
  89. $CHIEFCOMPLAINT = $data['CHIEFCOMPLAINT'];
  90. $AGE = $data['AGE'];
  91. $ORGCODE = $data['ORGCODE'];
  92. $ORGNAME = $data['ORGNAME'];
  93. $DIAGNOSECODE = $data['DIAGNOSECODE'];
  94. $DIAGNOSENAME = $data['DIAGNOSENAME'];
  95. $DOCTORNAME = $data['DOCTORNAME'];
  96. $DOCTORCODE = $data['DOCTORCODE'];
  97. $PATIENT_CODE = $PATIENT['PATIENT_CODE'];
  98. $CLASS = $this->getCLASSByCode($CLASS_CODE);
  99. $NAME = $PATIENT['NAME'];
  100. $GENDER = $PATIENT['GENDER'];
  101. $GENDER_CODE = $PATIENT['GENDER_CODE'];
  102. $MPI = $PATIENT['MPI'];
  103. $MPI_KEY = $PATIENT['MPI_KEY'];
  104. $CALL_FLAG = $this->getCALL_FLAG($DOCTORNAME, $ORGNAME, $MPI_KEY);
  105. $MEDICAL_INFORMATION = [
  106. 'PATIENT_CODE' => $PATIENT_CODE,
  107. 'CLASS_CODE' => $CLASS_CODE,
  108. 'ENCOUNTER_CARD_NO' => $ENCOUNTER_CARD_NO,
  109. 'SERIESNUM' => $SERIESNUM,
  110. 'HOS_EMPI' => $HOS_EMPI,
  111. 'ENCOUNTER_DATE' => $ENCOUNTER_DATE,
  112. 'DEPTNAME' => $DEPTNAME,
  113. 'CHIEFCOMPLAINT' => $CHIEFCOMPLAINT,
  114. 'AGE' => $AGE,
  115. 'ORGCODE' => $ORGCODE,
  116. 'ORGNAME' => $ORGNAME,
  117. 'DIAGNOSECODE' => $DIAGNOSECODE,
  118. 'DIAGNOSENAME' => $DIAGNOSENAME,
  119. 'CLASS' => $CLASS,
  120. 'NAME' => $NAME,
  121. 'GENDER' => $GENDER,
  122. 'GENDER_CODE' => $GENDER_CODE,
  123. 'MPI' => $MPI,
  124. 'MPI_KEY' => $MPI_KEY,
  125. 'DOCTORNAME' => $DOCTORNAME,
  126. 'DOCTORCODE' => $DOCTORCODE,
  127. 'CALL_FLAG' => $CALL_FLAG,
  128. ];
  129. return $MEDICAL_INFORMATION;
  130. }
  131. public function getCALL_FLAG($DOCTORCODE, $ORGNAME, $MPI_KEY) {
  132. // $res = $this->callRecordModel->field('ID')
  133. // ->where('DOCTORCODE', '=', $DOCTORCODE)
  134. // ->where('ORGNAME', '=', $ORGNAME)
  135. // ->where('MPI_KEY', '=', $MPI_KEY)
  136. // ->find();
  137. // if($res) {
  138. // return 1;
  139. // }
  140. // return 0;
  141. return rand(0, 1);
  142. }
  143. public function handleEXAM($data, $MEDICAL_INFORMATION) {
  144. $EXAM_APPLICATIONS = array();
  145. $EXAM_REPORTS = array();
  146. $MPI = $MEDICAL_INFORMATION['MPI'];
  147. $MPI_KEY = $MEDICAL_INFORMATION['MPI_KEY'];
  148. $PATIENT_CODE = $MEDICAL_INFORMATION['PATIENT_CODE'];
  149. $NAME = $MEDICAL_INFORMATION['NAME'];
  150. $SERIESNUM = $MEDICAL_INFORMATION['SERIESNUM'];
  151. $GENDER = $MEDICAL_INFORMATION['GENDER'];
  152. $GENDER_CODE = $MEDICAL_INFORMATION['GENDER_CODE'];
  153. $AGE = $MEDICAL_INFORMATION['AGE'];
  154. // foreach($datas as $data) {
  155. // 申请单编号/医嘱编号
  156. // 报告单编号
  157. // 检查类型
  158. // 检查项目名称
  159. // 检查项目编码
  160. // 检查部位
  161. // 检查所见/影像所见
  162. // 影像诊断/意见
  163. // 检查结果类别
  164. // 互认范围
  165. // 互认项目编码
  166. // 报告机构
  167. // 报告机构编码
  168. // 报告科室名称
  169. // 报告医生姓名
  170. // 审核医师姓名
  171. // 报告时间
  172. // 检查时间
  173. // 报告单内容
  174. // 互认项目
  175. // REQUESTID
  176. // REPORTID
  177. // DEVICETYPE_CODE
  178. // EXAM_ITEMNAME
  179. // EXAM_ITEMNAME_CODE
  180. // BODYSITE
  181. // OBSERVATIONS_COMMENT
  182. // OBSERVATIONS_RESULT
  183. // RESULT_STATUS_CODE
  184. // HR_RANGE
  185. // HR_ITEMNAME_CODE
  186. // ORGNAME
  187. // ORGCODE
  188. // DEPTNAME
  189. // PRACTITIONERNAME
  190. // AUDITNAME
  191. // REPORTTIME
  192. // STUDYTIME
  193. // REPORT
  194. // HR_ITEMNAME
  195. $REQUESTID = $data['REQUESTID'];
  196. $REPORTID = $data['REPORTID'];
  197. $DEVICETYPE_CODE = $data['DEVICETYPE_CODE'];
  198. $EXAM_ITEMNAME = $data['EXAM_ITEMNAME'];
  199. $EXAM_ITEMNAME_CODE = $data['EXAM_ITEMNAME_CODE'];
  200. $BODYSITE = $data['BODYSITE'];
  201. // $OBSERVATIONS_COMMENT = $data['OBSERVATIONS_COMMENT'];
  202. // $OBSERVATIONS_RESULT = $data['OBSERVATIONS_RESULT'];
  203. // $RESULT_STATUS_CODE = $data['RESULT_STATUS_CODE'];
  204. // $HR_RANGE = $data['HR_RANGE'];
  205. $HR_ITEMNAME_CODE = $data['HR_ITEMNAME_CODE'];
  206. $ORGNAME = $MEDICAL_INFORMATION['ORGNAME'];
  207. $ORGCODE = $MEDICAL_INFORMATION['ORGCODE'];
  208. $DEPTNAME = $MEDICAL_INFORMATION['DEPTNAME'];
  209. // $PRACTITIONERNAME = $data['PRACTITIONERNAME'];
  210. // $AUDITNAME = $data['AUDITNAME'];
  211. // $REPORTTIME = $data['REPORTTIME'];
  212. $STUDYTIME = $data['STUDYTIME'];
  213. // $REPORT = $data['REPORT'];
  214. $HR_ITEMNAME = $data['HR_ITEMNAME'];
  215. $RECOG_STATUS = '';
  216. if(!empty($HR_ITEMNAME_CODE) && $HR_ITEMNAME_CODE !='-')
  217. {
  218. $DICT_DATA = $this->patientModel->getExamDict(['XM_CODE'=>$HR_ITEMNAME_CODE],'XM');
  219. if($DICT_DATA['XM'] == $HR_ITEMNAME)
  220. {
  221. $RECOG_STATUS = '*';
  222. }
  223. }
  224. // $RECOG_STATUS = $data['RECOG_STATUS'];
  225. $EXAM_APPLICATION_CODE = $this->getEXAM_APPLICATION_CODE($PATIENT_CODE, $REQUESTID);
  226. $EXAM_REPORT_CODE = $this->getEXAM_REPORT_CODE($PATIENT_CODE, $REPORTID);
  227. // $RESULT_STATUS = $this->getRESULT_STATUSByCode($RESULT_STATUS_CODE);
  228. $DEVICETYPE = $this->getDEVICETYPEByCode($DEVICETYPE_CODE);
  229. // $RECOG_STATUS = $this->getRECOG_STATUS($RECOG_STATUS_CODE);
  230. // $EXAM_APPLICATION = [];
  231. $EXAM_REPORT = [
  232. 'MPI' => $MPI,
  233. 'MPI_KEY' => $MPI_KEY,
  234. 'PATIENT_CODE' => $PATIENT_CODE,
  235. 'NAME' => $NAME,
  236. 'SERIESNUM' => $SERIESNUM,
  237. 'GENDER' => $GENDER,
  238. 'GENDER_CODE' => $GENDER_CODE,
  239. 'AGE' => $AGE,
  240. 'REQUESTID' => $REQUESTID,
  241. 'REPORTID' => $REPORTID,
  242. 'DEVICETYPE_CODE' => $DEVICETYPE_CODE,
  243. 'EXAM_ITEMNAME' => $EXAM_ITEMNAME,
  244. 'EXAM_ITEMNAME_CODE' => $EXAM_ITEMNAME_CODE,
  245. 'BODYSITE' => $BODYSITE,
  246. // 'OBSERVATIONS_COMMENT' => $OBSERVATIONS_COMMENT,
  247. // 'OBSERVATIONS_RESULT' => $OBSERVATIONS_RESULT,
  248. // 'RESULT_STATUS_CODE' => $RESULT_STATUS_CODE,
  249. // 'HR_RANGE' => $HR_RANGE,
  250. 'HR_ITEMNAME_CODE' => $HR_ITEMNAME_CODE,
  251. 'ORGNAME' => $ORGNAME,
  252. 'ORGCODE' => $ORGCODE,
  253. 'DEPTNAME' => $DEPTNAME,
  254. // 'PRACTITIONERNAME' => $PRACTITIONERNAME,
  255. // 'AUDITNAME' => $AUDITNAME,
  256. // 'REPORTTIME' => $REPORTTIME,
  257. 'STUDYTIME' => $STUDYTIME,
  258. // 'REPORT' => $REPORT,
  259. 'EXAM_APPLICATION_CODE' => $EXAM_APPLICATION_CODE,
  260. 'EXAM_REPORT_CODE' => $EXAM_REPORT_CODE,
  261. // 'RESULT_STATUS' => $RESULT_STATUS,
  262. 'DEVICETYPE' => $DEVICETYPE,
  263. 'HR_ITEMNAME' => $HR_ITEMNAME,
  264. 'DOCTORNAME' => $MEDICAL_INFORMATION['DOCTORNAME'],
  265. 'DOCTORCODE' => $MEDICAL_INFORMATION['DOCTORCODE'],
  266. 'CALL_FLAG' => $MEDICAL_INFORMATION['CALL_FLAG'],
  267. 'RECOG_STATUS' => $RECOG_STATUS,
  268. // todo
  269. 'create_time' => date('Y-m-d H:i:s')
  270. ];
  271. // $EXAM_APPLICATIONS[] = $EXAM_APPLICATION;
  272. $EXAM_REPORTS[] = $EXAM_REPORT;
  273. // }
  274. return [
  275. // 'EXAM_APPLICATIONS' => $EXAM_APPLICATIONS,
  276. 'EXAM_REPORTS' => $EXAM_REPORTS,
  277. ];
  278. }
  279. public function handleINSPECT_REPORTS($params, $MEDICAL_INFORMATION) {
  280. $data = $params['INSPECT_REPORTS'];
  281. $INSPECT_REPORTS = array();
  282. $INSPECT_REPORT_ITEMS = array();
  283. $MPI = $MEDICAL_INFORMATION['MPI'];
  284. $MPI_KEY = $MEDICAL_INFORMATION['MPI_KEY'];
  285. $PATIENT_CODE = $MEDICAL_INFORMATION['PATIENT_CODE'];
  286. $NAME = $MEDICAL_INFORMATION['NAME'];
  287. $SERIESNUM = $MEDICAL_INFORMATION['SERIESNUM'];
  288. $GENDER = $MEDICAL_INFORMATION['GENDER'];
  289. $GENDER_CODE = $MEDICAL_INFORMATION['GENDER_CODE'];
  290. $AGE = $MEDICAL_INFORMATION['AGE'];
  291. // 报告单编号
  292. // 标本类别
  293. // 检验项目名称
  294. // 检测项目类型
  295. // 报告医生姓名
  296. // 审核医师姓名
  297. // 报告机构
  298. // 报告机构编码
  299. // 报告科室名称
  300. // 报告评语
  301. // 报告时间
  302. // 报告单
  303. // 互认项目编码
  304. // 互认范围
  305. // 互认项目
  306. // REPORTID
  307. // SPECIMEN_TYPE
  308. // LAB_ITEMNAME
  309. // LAB_ITEMNAME_TYPE_CODE
  310. // PRACTITIONERNAME
  311. // AUDITNAME
  312. // ORGNAME
  313. // ORGCODE
  314. // DEPTNAME
  315. // REPORT_COMMENT
  316. // REPORTTIME
  317. // REPORT
  318. // LAB_HR_ITEMNAME_CODE
  319. // HR_RANGE
  320. // LAB_HR_ITEMNAME
  321. // foreach($datas as $data) {
  322. $REPORTID = $data['REPORTID'];
  323. $SPECIMEN_TYPE = $data['SPECIMEN_TYPE'];
  324. $LAB_ITEMNAME = $data['LAB_ITEMNAME'];
  325. $LAB_ITEMNAME_TYPE_CODE = $data['LAB_ITEMNAME_TYPE_CODE'];
  326. $PRACTITIONERNAME = $data['PRACTITIONERNAME'];
  327. $AUDITNAME = $data['AUDITNAME'];
  328. $ORGNAME = $MEDICAL_INFORMATION['ORGNAME'];
  329. $ORGCODE = $MEDICAL_INFORMATION['ORGCODE'];
  330. $DEPTNAME = $MEDICAL_INFORMATION['DEPTNAME'];
  331. $REPORT_COMMENT = $data['REPORT_COMMENT'];
  332. $REPORTTIME = $data['REPORTTIME'];
  333. $REPORT = $data['REPORT'];
  334. $LAB_HR_ITEMNAME_CODE = $data['LAB_HR_ITEMNAME_CODE'];
  335. $LAB_HR_ITEMNAME = $data['LAB_HR_ITEMNAME'];
  336. $RECOG_STATUS = '';
  337. $itemLabDict = $this->patientModel->getItemLab(['BSYBBM'=>$LAB_HR_ITEMNAME_CODE],'ITEMTYPE,XMMC');
  338. if($LAB_HR_ITEMNAME_CODE != '-' && !empty($LAB_HR_ITEMNAME_CODE))
  339. {
  340. if(($itemLabDict['XMMC'] ?? '') == $LAB_HR_ITEMNAME)
  341. {
  342. $RECOG_STATUS = '*';
  343. }
  344. }
  345. $itemType = $itemLabDict['ITEMTYPE'] ?? '';
  346. // $HR_RANGE = $data['HR_RANGE'];
  347. // $SPECIMEN_TYPE = $this->getSPECIMEN_TYPEByCode($SPECIMEN_TYPE_CODE);
  348. $LAB_ITEMNAME_TYPE = $this->getLAB_ITEMNAME_TYPEByCode($LAB_ITEMNAME_TYPE_CODE);
  349. $INSPECT_REPORT_CODE = $this->getINSPECT_REPORT_CODE($PATIENT_CODE, $REPORTID);
  350. // $RECOG_STATUS = $data['RECOG_STATUS'];
  351. // $RECOG_STATUS_CODE = $data['RECOG_STATUS_CODE'];
  352. // $RECOG_STATUS = $this->getRECOG_STATUS($RECOG_STATUS_CODE);
  353. $INSPECT_REPORT = [
  354. 'MPI' => $MPI,
  355. 'MPI_KEY' => $MPI_KEY,
  356. 'PATIENT_CODE' => $PATIENT_CODE,
  357. 'NAME' => $NAME,
  358. 'SERIESNUM' => $SERIESNUM,
  359. 'GENDER' => $GENDER,
  360. 'GENDER_CODE' => $GENDER_CODE,
  361. 'AGE' => $AGE,
  362. 'REPORTID' => $REPORTID,
  363. // 'SPECIMEN_TYPE_CODE' => $SPECIMEN_TYPE_CODE,
  364. 'LAB_ITEMNAME' => $LAB_ITEMNAME,
  365. 'LAB_ITEMNAME_TYPE_CODE' => $LAB_ITEMNAME_TYPE_CODE,
  366. 'LAB_ITEMNAME_TYPE' => $LAB_ITEMNAME_TYPE,
  367. 'PRACTITIONERNAME' => $PRACTITIONERNAME,
  368. 'AUDITNAME' => $AUDITNAME,
  369. 'ORGNAME' => $ORGNAME,
  370. 'ORGCODE' => $ORGCODE,
  371. 'DEPTNAME' => $DEPTNAME,
  372. 'REPORT_COMMENT' => $REPORT_COMMENT,
  373. 'REPORTTIME' => $REPORTTIME,
  374. 'REPORT' => $REPORT,
  375. 'LAB_HR_ITEMNAME_CODE' => $LAB_HR_ITEMNAME_CODE,
  376. 'ITEMTYPE'=>$itemType,
  377. // 'HR_RANGE' => $HR_RANGE,
  378. 'LAB_HR_ITEMNAME' => $LAB_HR_ITEMNAME,
  379. 'SPECIMEN_TYPE' => $SPECIMEN_TYPE,
  380. 'INSPECT_REPORT_CODE' => $INSPECT_REPORT_CODE,
  381. // 'RECOG_STATUS_CODE' => $RECOG_STATUS_CODE,
  382. 'RECOG_STATUS' => $RECOG_STATUS,
  383. 'DOCTORNAME' => $MEDICAL_INFORMATION['DOCTORNAME'],
  384. 'DOCTORCODE' => $MEDICAL_INFORMATION['DOCTORCODE'],
  385. 'CALL_FLAG' => $MEDICAL_INFORMATION['CALL_FLAG'],
  386. // TODO
  387. 'create_time' => $REPORTTIME,
  388. ];
  389. $this->handleINSPECT_REPORT_ITEMS($INSPECT_REPORT_ITEMS, $params['INSPECT_REPORT_ITEMS'],[
  390. 'REPORTID' => $REPORTID,
  391. 'INSPECT_REPORT_CODE' => $INSPECT_REPORT_CODE,
  392. 'ORGCODE' => $ORGCODE,
  393. ]);
  394. $INSPECT_REPORTS[] = $INSPECT_REPORT;
  395. // }
  396. return [
  397. 'INSPECT_REPORT_ITEMS' => $INSPECT_REPORT_ITEMS,
  398. 'INSPECT_REPORTS' => $INSPECT_REPORTS,
  399. ];
  400. }
  401. public function handleINSPECT_REPORT_ITEMS(&$INSPECT_REPORT_ITEMS, $datas, $INSPECT_REPORT): void {
  402. // 检验细项名称/抗生素
  403. // 检验细项缩写/英文
  404. // *检验细项序号(1-2)
  405. // 检验细项测量值(1)
  406. // 检验细项结果计量单位(1)
  407. // 检验细项结果/微生物鉴定结果
  408. // 药敏结果(2)
  409. // 参考值范围(1)
  410. // 检测方法(1)
  411. // KB*(2)
  412. // MIC*(2)
  413. // 敏感度(2)
  414. // 互认项目编码(1-2)
  415. // 互认范围(1-2)
  416. // 互认标识(1-2)
  417. // 互认项目
  418. // LAB_ITEMDETAILNAME
  419. // LAB_ITEMDETAILNAME_EN
  420. // LAB_ITEMDETAILNAME_NUMBER
  421. // LAB_ITEMDETAILVALUE
  422. // LAB_ITEMDETAILSPEC
  423. // LAB_ITEMDETAILINTERPRETATION
  424. // LAB_ITEMDETAILINTERPRETATION_BIA
  425. // LAB_ITEMDETAILRANGE
  426. // LAB_METHOD
  427. // KB
  428. // MIC
  429. // LAB_ITEMDETAILINTERPRE
  430. // LAB_HR_ITEMDETAILNAME_CODE
  431. // HR_RANGE
  432. // RECOG_STATUS
  433. // LAB_HR_ITEMDETAILNAME
  434. $INSPECT_REPORT_CODE = $INSPECT_REPORT['INSPECT_REPORT_CODE'];
  435. $REPORTID = $INSPECT_REPORT['REPORTID'];
  436. $ORGCODE = $INSPECT_REPORT['ORGCODE'];
  437. foreach($datas as $data) {
  438. $LAB_ITEMDETAILNAME = $data['LAB_ITEMDETAILNAME'];
  439. $LAB_ITEMDETAILNAME_EN = $data['LAB_ITEMDETAILNAME_EN'];
  440. $LAB_ITEMDETAILNAME_NUMBER = $data['LAB_ITEMDETAILNAME_NUMBER'];
  441. $LAB_ITEMDETAILVALUE = $data['LAB_ITEMDETAILVALUE'];
  442. $LAB_ITEMDETAILSPEC = $data['LAB_ITEMDETAILSPEC'];
  443. $LAB_ITEMDETAILINTERPRETATION = $data['LAB_ITEMDETAILINTERPRETATION'];
  444. $LAB_ITEMDETAILINTERPRETATION_BIA = $data['LAB_ITEMDETAILINTERPRETATION_BIA'] ?? '';
  445. $LAB_ITEMDETAILRANGE = $data['LAB_ITEMDETAILRANGE'];
  446. $LAB_METHOD = $data['LAB_METHOD'];
  447. $KB = $data['KB'];
  448. $MIC = $data['MIC'];
  449. $LAB_ITEMDETAILINTERPRE = $data['LAB_ITEMDETAILINTERPRE'];
  450. $LAB_HR_ITEMDETAILNAME_CODE = $data['LAB_HR_ITEMDETAILNAME_CODE'];
  451. // $HR_RANGE = $data['HR_RANGE'];
  452. // $RECOG_STATUS = $data['RECOG_STATUS'];
  453. $LAB_HR_ITEMDETAILNAME = $data['LAB_HR_ITEMDETAILNAME'];
  454. $RECOG_STATUS = '';
  455. if(!empty($LAB_HR_ITEMDETAILNAME_CODE) && $LAB_HR_ITEMDETAILNAME_CODE != '-')
  456. {
  457. $DICT_DATA = $this->patientModel->getItemLab(['BSYBBM'=>$LAB_HR_ITEMDETAILNAME_CODE],'XMMC');
  458. if(($DICT_DATA['XMMC'] ?? '') == $LAB_HR_ITEMDETAILNAME)
  459. {
  460. $RECOG_STATUS = '*';
  461. }
  462. }
  463. $INSPECT_REPORT_ITEM = [
  464. 'REPORTID' => $REPORTID,
  465. 'INSPECT_REPORT_CODE' => $INSPECT_REPORT_CODE,
  466. 'ORGCODE' => $ORGCODE,
  467. 'LAB_ITEMDETAILNAME' => $LAB_ITEMDETAILNAME,
  468. 'LAB_ITEMDETAILNAME_EN' => $LAB_ITEMDETAILNAME_EN,
  469. 'LAB_ITEMDETAILNAME_NUMBER' => $LAB_ITEMDETAILNAME_NUMBER,
  470. 'LAB_ITEMDETAILVALUE' => $LAB_ITEMDETAILVALUE,
  471. 'LAB_ITEMDETAILSPEC' => $LAB_ITEMDETAILSPEC,
  472. 'LAB_ITEMDETAILINTERPRETATION' => $LAB_ITEMDETAILINTERPRETATION,
  473. 'LAB_ITEMDETAILINTERPRETATION_BIA' => $LAB_ITEMDETAILINTERPRETATION_BIA,
  474. 'LAB_ITEMDETAILRANGE' => $LAB_ITEMDETAILRANGE,
  475. 'LAB_METHOD' => $LAB_METHOD,
  476. 'KB' => $KB,
  477. 'MIC' => $MIC,
  478. 'LAB_ITEMDETAILINTERPRE' => $LAB_ITEMDETAILINTERPRE,
  479. 'LAB_HR_ITEMDETAILNAME_CODE' => $LAB_HR_ITEMDETAILNAME_CODE,
  480. // 'HR_RANGE' => $HR_RANGE,
  481. 'RECOG_STATUS' => $RECOG_STATUS,
  482. 'LAB_HR_ITEMDETAILNAME' => $LAB_HR_ITEMDETAILNAME,
  483. ];
  484. $INSPECT_REPORT_ITEMS[] = $INSPECT_REPORT_ITEM;
  485. }
  486. }
  487. public function getINSPECT_REPORT_CODE($PATIENT_CODE, $REPORTID): string {
  488. return md5($PATIENT_CODE.$REPORTID);
  489. }
  490. public function getEXAM_APPLICATION_CODE($PATIENT_CODE, $EXAM_REQUESTID): string {
  491. return md5($PATIENT_CODE.$EXAM_REQUESTID);
  492. }
  493. public function getEXAM_REPORT_CODE($PATIENT_CODE, $REPORTID): string {
  494. return md5($PATIENT_CODE.$REPORTID);
  495. }
  496. public function getPATIENT_CODE($MPI_KEY, $ORGCODE, $SERIESNUM): string {
  497. return md5($MPI_KEY.$ORGCODE.$SERIESNUM);
  498. }
  499. public function getID_CARDByCode($code) {
  500. return $this->patientModel->getDictNameByCode($code, '3');
  501. }
  502. public function getGENDERByCode($code) {
  503. return $this->patientModel->getDictNameByCode($code, '1');
  504. }
  505. public function getCLASSByCode($code) {
  506. return $this->patientModel->getDictNameByCode($code, '5');
  507. }
  508. public function getRESULT_STATUSByCode($code) {
  509. return $this->patientModel->getDictNameByCode($code, '11');
  510. }
  511. public function getDEVICETYPEByCode($code) {
  512. return $this->patientModel->getDictNameByCode($code, '10');
  513. }
  514. public function getLAB_ITEMNAME_TYPEByCode($code) {
  515. return $this->patientModel->getDictNameByCode($code, '12');
  516. }
  517. }