HrServies.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528
  1. <?php
  2. declare (strict_types=1);
  3. namespace app\zskk\servies;
  4. use app\admin\model\hospital\Hrpatient;
  5. use app\admin\servies\HrpatientServies;
  6. use app\common\library\Gm;
  7. use app\zskk\model\CallRecord;
  8. use app\zskk\model\HospitalHrpatient;
  9. use app\zskk\model\HrRecord;
  10. use app\zskk\model\Patient;
  11. use think\Exception;
  12. use think\facade\Cache;
  13. use think\facade\Config;
  14. class HrServies
  15. {
  16. public $patientModel = null;
  17. public $hrpatientModel = null;
  18. private $patientServies = null;
  19. private $hrpatientServies = null;
  20. private $hrRecordModel = null;
  21. private $callRecordModel = null;
  22. public function __construct(
  23. PatientServies $patientServies,
  24. Patient $patientModel,
  25. Hrpatient $hrpatientModel,
  26. HrRecord $hrRecordModel,
  27. HrpatientServies $hrpatientServies,
  28. CallRecord $callRecordModel
  29. )
  30. {
  31. // parent::__construct();
  32. $this->patientServies = $patientServies;
  33. $this->patientModel = $patientModel;
  34. $this->hrpatientModel = $hrpatientModel;
  35. $this->hrpatientServies = $hrpatientServies;
  36. $this->hrRecordModel = $hrRecordModel;
  37. $this->callRecordModel = $callRecordModel;
  38. }
  39. public function getShareCheck($ID_CARDNUM, $ORGCODE,$DOCTORCODE,$DEPART,$result,$all=0): bool|array
  40. {
  41. $ID_CARDNUM = Gm::encrypt(Config::get('gm.key'),$ID_CARDNUM);
  42. $data = array();
  43. $patients = $this->patientModel->getPatientsByID_CARDNUM($ID_CARDNUM);
  44. $r = false;
  45. foreach($patients as $patient) {
  46. $return = $this->getRecogViewDetails($patient['PATIENT_CODE'], $ORGCODE,$DOCTORCODE,$DEPART,$result,$all);
  47. $data[] = $return;
  48. if($return)
  49. {
  50. $r = true;
  51. }
  52. }
  53. if($result == 1)
  54. {
  55. return $r;
  56. }
  57. return $data;
  58. }
  59. // public function getRecogData($ID_CARDNUM, $ORGCODE): array {
  60. // $ID_CARDNUM = Gm::encrypt(Config::get('gm.key'),$ID_CARDNUM);
  61. // $data = array();
  62. // $patients = $this->patientModel->getPatientsByID_CARDNUM($ID_CARDNUM);
  63. // foreach($patients as $patient) {
  64. // $data[] = $this->getRecogViewDetailByPATIENT_CODE($patient['PATIENT_CODE'], $ORGCODE);
  65. // }
  66. // return ['DATA'=>$data];
  67. // }
  68. public function getRecogViewDetailByToken($token,$hr=0): array {
  69. $params = Cache::get($token);
  70. if(empty($params))
  71. {
  72. // todo 错误返回 先登录
  73. return [];
  74. }
  75. $ID_CARDNUM = $params['ID_CARDNUM'];
  76. $ID_CARDNUM = Gm::encrypt(Config::get('gm.key'),$ID_CARDNUM);
  77. // $HRORGCODE = $params['ORGCODE'];
  78. $WHERE = [];
  79. if($params['ORGCODE'] ?? '')
  80. {
  81. $WHERE['ORGCODE'] = $params['ORGCODE'];
  82. }
  83. if($params['DOCTORCODE'] ?? '')
  84. {
  85. $WHERE['DOCTORCODE'] = $params['DOCTORCODE'];
  86. }
  87. if($params['DEPART'] ?? '')
  88. {
  89. $WHERE['DEPTNAME'] = $params['DEPART'];
  90. }
  91. $exam_report = [];
  92. $inspect_report = [];
  93. if($params['HR_ITEM_CODE'] ?? '')
  94. {
  95. $exam_report['HR_ITEMNAME_CODE'] = ['in',explode(',',$params['HR_ITEM_CODE'])];
  96. $inspect_report['LAB_HR_ITEMNAME_CODE'] = ['in',explode(',',$params['HR_ITEM_CODE'])];
  97. }
  98. $_data = $this->getRecogViewDetail($ID_CARDNUM, $WHERE,$exam_report,$inspect_report,$hr);
  99. $patient = $_data[0]['PATIENT'];
  100. $data = [
  101. 'patient' => $patient,
  102. 'data' => $_data,
  103. ];
  104. // todo 容错处理
  105. $this->recordTokenRequestTime($token);
  106. $this->recordCallGetRecogViewDetail($params, $patient);
  107. return $data;
  108. }
  109. public function recordTokenRequestTime($token) {
  110. // TODO 记录token请求时间
  111. }
  112. public function recordCallGetRecogViewDetail($params, $patient) {
  113. $data = [
  114. 'MPI'=>$patient['MPI'],
  115. 'MPI_KEY'=>$patient['MPI_KEY'],
  116. 'ID_CARDNUM' => $params['ID_CARDNUM'],
  117. 'ORGCODE'=>$params['ORGCODE'],
  118. 'ORGNAME'=>$params['ORGNAME'],
  119. 'DOCTORNAME'=>$params['DOCTORNAME'],
  120. 'DOCTORCODE'=>$params['DOCTORCODE']
  121. ];
  122. $this->callRecordModel->save($data);
  123. }
  124. public function getRecogViewDetail($ID_CARDNUM, $HRORGCODE,$INSPECT_REPORT,$EXAM_REPORT,$hr): array {
  125. $datas = array();
  126. $patients = $this->patientModel->getPatientsByID_CARDNUM($ID_CARDNUM);
  127. foreach($patients as $patient) {
  128. $data = $this->getRecogViewDetailByPATIENT_CODE($patient['PATIENT_CODE'], $HRORGCODE,$hr);
  129. $data['MEDICAL_INFORMATION']['PATIENT_CODE'] = $patient['PATIENT_CODE'];
  130. $HR_RECORDS = $this->hrpatientServies->_getHrpatientDetailByPATIENT_CODE($patient['PATIENT_CODE'], $HRORGCODE);
  131. $data['HR_RECORDS'] = $HR_RECORDS;
  132. $datas[] = $data;
  133. }
  134. return $datas;
  135. }
  136. public function getRecogViewDetailByPATIENT_CODE($PATIENT_CODE, $HRORGCODE,$hr): array {
  137. $data = null;
  138. $data = $this->patientServies->getHrPatient(['PATIENT_CODE'=> $PATIENT_CODE],$hr);
  139. return $data;
  140. }
  141. public function getRecogViewDetails($PATIENT_CODE,$ORGCODE,$DOCTORCODE,$DEPART,$RESULT,$all): bool|array {
  142. $data = null;
  143. $WHERE = [];
  144. if($ORGCODE)
  145. {
  146. $WHERE['ORGCODE'] = $ORGCODE;
  147. }
  148. if($DOCTORCODE)
  149. {
  150. $WHERE['DOCTORCODE'] = $DOCTORCODE;
  151. }
  152. if($DEPART)
  153. {
  154. $WHERE['DEPTNAME'] = $DEPART;
  155. }
  156. $data = $this->patientServies->getPatientSign(['PATIENT_CODE'=> $PATIENT_CODE],$WHERE,$RESULT,$all);
  157. return $data;
  158. }
  159. public function hanldeHR_RECORDS(&$HR_RECORDS) {
  160. foreach($HR_RECORDS as &$HR_RECORD) {
  161. $HR_RECORD['PATIENT_CODE'] = $this->getPATIENT_CODE($HR_RECORD['ID_CARDNUM'], $HR_RECORD['SERIESNUM'], $HR_RECORD['ORGCODE']);
  162. }
  163. }
  164. public function hanldeHR_RECORDSAndToken(&$HR_RECORDS, $TOKEN) {
  165. $data = Cache::get($TOKEN);
  166. $DOCTORCODE = $data['DOCTORCODE'];
  167. $DOCTORNAME = $data['DOCTORNAME'];
  168. $HRORGNAME = $data['ORGNAME'];
  169. $HRORGCODE = $data['ORGCODE'];
  170. foreach($HR_RECORDS as &$HR_RECORD) {
  171. $HR_RECORD['DOCTORCODE'] = $DOCTORCODE;
  172. $HR_RECORD['DOCTORNAME'] = $DOCTORNAME;
  173. $HR_RECORD['HRORGNAME'] = $HRORGNAME;
  174. $HR_RECORD['HRORGCODE'] = $HRORGCODE;
  175. }
  176. }
  177. public function getPATIENT_CODE($ID_CARDNUM, $SERIESNUM, $HRORGCODE) {
  178. return md5(md5($ID_CARDNUM).$HRORGCODE.$SERIESNUM);
  179. }
  180. public function saveRecogResult($HR_RECORDS): void {
  181. $this->hanldeHR_RECORDS($HR_RECORDS);
  182. $where = $this->_saveRecogViewDetail($HR_RECORDS);
  183. $this->saveHospitalHrPatient($where);
  184. }
  185. public function saveHospitalHrPatient($where)
  186. {
  187. unset($where['REPORTID']);
  188. $data = $this->makeHrPatient($where);
  189. // $hrPatient = $this->hrpatientModel->where($where)->find();
  190. // if(!empty($hrPatient))
  191. // {
  192. // $this->hrpatientModel->where($where)->update($data);
  193. // }else{
  194. // $this->hrpatientModel->insert($data);
  195. // }
  196. // todo
  197. $model= new HospitalHrpatient();
  198. $info = $model->where($where)->find();
  199. if(empty($info))
  200. {
  201. $model->save($data);
  202. }else{
  203. $info->save($data);
  204. }
  205. }
  206. public function makeHrPatient($where) {
  207. // $where
  208. // 'PATIENT_CODE' => $PATIENT_CODE,
  209. // 'ORGCODE' => $ORGCODE,
  210. // 'HRORGCODE' => $HRORGCODE,
  211. // 'REPORTID' => $REPORTID
  212. $arr = [];
  213. $patient = $this->patientModel->getPatient(['PATIENT_CODE'=>$where['PATIENT_CODE']]);
  214. $record = $this->hrRecordModel->where($where)->where('HR_STATUS','<>','0')->select();
  215. $medical = $this->patientModel->getMedical($where['PATIENT_CODE']);
  216. $data = [];
  217. $data['MPI_KEY'] = $patient['MPI_KEY'];
  218. $data['PATIENT_CODE'] = $patient['PATIENT_CODE'];
  219. $data['NAME'] = $patient['NAME'];
  220. $data['GENDER'] = $patient['GENDER'];
  221. $data['AGE'] = $medical['AGE'];
  222. $age_last = substr( $data['AGE'], -1);
  223. $age_num = substr( $data['AGE'], 0,-1);
  224. $last = match ($age_last) {
  225. 'Y' => '365',
  226. 'M' => '30',
  227. 'W' => '7',
  228. 'D' => '1',
  229. default => $age_last,
  230. };
  231. $data['AGE_DAY'] = $last*$age_num;
  232. $data['ID_CARDNUM'] = $patient['ID_CARDNUM'];
  233. $data['MPI'] = $patient['MPI'];
  234. $data['ENCOUNTER_DATE'] = $medical['ENCOUNTER_DATE']; // 就诊时间
  235. $data['CHIEFCOMPLAINT'] = $medical['CHIEFCOMPLAINT']; //主诉
  236. $data['DIAGNOSENAME'] = $medical['DIAGNOSENAME']; //诊断
  237. $data['INSUR_CARD_NO'] = $patient['INSUR_CARD_NO'];
  238. $data['ID_CARD_CODE'] = $patient['ID_CARD_CODE'];
  239. $data['ID_CARD'] = $patient['ID_CARD'];
  240. $data['GENDER_CODE'] = $patient['GENDER_CODE'];
  241. $data['BIRTH_DATE'] = $patient['BIRTH_DATE'];
  242. $data['MARITAL_STATUS_CODE'] = $patient['MARITAL_STATUS_CODE'];
  243. $data['MARITAL_STATUS'] = $patient['MARITAL_STATUS'];
  244. $data['ADDRESS'] = $patient['ADDRESS'];
  245. $data['ECARD_NO'] = $patient['ECARD_NO'];
  246. $data['SERIESNUM'] = $medical['SERIESNUM'];
  247. $data['CLASS_CODE'] = $medical['CLASS_CODE'];
  248. $data['CLASS'] = $medical['CLASS'];
  249. $data['ENCOUNTER_CARD_NO'] = $medical['ENCOUNTER_CARD_NO'];
  250. $data['RECORD_CODE'] = $medical['RECORD_CODE'];
  251. $data['HOS_EMPI'] = $medical['HOS_EMPI'];
  252. $data['DEPTNAME'] = $medical['DEPTNAME'];
  253. $data['DIAGNOSECODE'] = $medical['DIAGNOSECODE'];
  254. $data['ORGCODE'] = $record[0]['ORGCODE'];
  255. $data['ORGNAME'] = $record[0]['ORGNAME'];
  256. $data['HRORGNAME'] = $record[0]['HRORGNAME'];
  257. $data['HRORGCODE'] = $record[0]['HRORGCODE'];
  258. $data['create_time'] = $record[0]['HRTIME'];
  259. // $exam = $this->patientModel->getExam($where['PATIENT_CODE']);
  260. // $examCode = [];
  261. // $examItem = [];
  262. // $recordCode = array_column($record,'ITEMNAMECODE');
  263. // if(!empty($exam))
  264. // {
  265. // $examCode = array_column($exam,'HR_ITEMNAME_CODE');
  266. // $examItem = array_column($exam,'EXAM_ITEMNAME');
  267. // $hrExamCode = array_column($exam,'HR_ITEMNAME_CODE');
  268. // $hrExam = array_column($exam,'HR_ITEMNAME');
  269. // }
  270. // $medical = $this->patientModel->getMedical($where['PATIENT_CODE']);
  271. // $medicalCode = [];
  272. // $medicalItem = [];
  273. // if(!empty($medical))
  274. // {
  275. // $medicalCode = array_column($medical,'LAB_HR_ITEMNAME_CODE');
  276. // $medicalItem = array_column($medical,'LAB_ITEMNAME');
  277. // $hrInspectCode = array_column($exam,'LAB_HR_ITEMNAME_CODE');
  278. // $hrInspectExam = array_column($exam,'LAB_HR_ITEMNAME');
  279. // }
  280. $exam = [];
  281. $examCode = [];
  282. $lab = [];
  283. $labCode = [];
  284. $hrExam = [];
  285. $hrExamCode = [];
  286. $bhrExam = [];
  287. $bhrExamCode = [];
  288. $hrInspect = [];
  289. $hrInspectCode = [];
  290. $bhrInspect = [];
  291. $bhrInspectCode = [];
  292. foreach ($record as $v)
  293. {
  294. $data['HR_CODE'] = md5($v['ORGCODE'].$v['HRORGCODE'].$patient['PATIENT_CODE']);
  295. if($v['HR_STATUS'] == 1)
  296. {
  297. $status = '是';
  298. }elseif ($v['HR_STATUS'] == 2)
  299. {
  300. $status = '否';
  301. }else{
  302. continue;
  303. }
  304. if($v['ITEMNAMETYPE'] == 1)
  305. {
  306. //检查
  307. $exam[] = $v['ITEMNAME'].'('.$status.')'; //检查项目
  308. $examCode[] = $v['ITEMNAMECODE'].'('.$v['HR_STATUS'].')';
  309. if($v['HR_STATUS'] == 1)
  310. {
  311. $hrExam[] = $v['ITEMNAME'];
  312. $hrExamCode[] = $v['ITEMNAMECODE'];
  313. }elseif ($v['HR_STATUS'] == 2)
  314. {
  315. $bhrExam[] = $v['ITEMNAME'];
  316. $bhrExamCode[] = $v['ITEMNAMECODE'];
  317. }
  318. }else{
  319. //检验
  320. $lab[] = $v['ITEMNAME'].'('.$status.')';; //检验项目
  321. $labCode[] = $v['ITEMNAMECODE'].'('.$v['HR_STATUS'].')';
  322. if($v['HR_STATUS'] == 1)
  323. {
  324. $hrInspect[] = $v['ITEMNAME'];
  325. $hrInspectCode[] = $v['ITEMNAMECODE'];
  326. }elseif ($v['HR_STATUS'] == 2)
  327. {
  328. $bhrInspect[] = $v['ITEMNAME'];
  329. $bhrInspectCode[] = $v['ITEMNAMECODE'];
  330. }
  331. }
  332. $data['HRORGCODE'] = $v['HRORGCODE'];
  333. }
  334. if(!empty($exam))
  335. {
  336. $data['EXAM_ITEMNAME'] = implode(',',$exam);
  337. $data['EXAM_ITEMNAME_CODE'] = implode(',',$examCode);
  338. }
  339. if(!empty($lab))
  340. {
  341. $data['LAB_ITEMNAME'] = implode(',',$lab);
  342. $data['LAB_ITEMNAME_CODE'] = implode(',',$labCode);
  343. }
  344. if(!empty($hrExam))
  345. {
  346. $data['HR_EXAM_ITEMNAME'] = implode(',',$hrExam);
  347. $data['HR_EXAM_ITEMNAME_CODE'] = implode(',',$hrExamCode);
  348. }
  349. if(!empty($bhrExam))
  350. {
  351. $data['BHR_EXAM_ITEMNAME'] = implode(',',$bhrExam);
  352. $data['BHR_EXAM_ITEMNAME_CODE'] = implode(',',$bhrExamCode);
  353. }
  354. if(!empty($hrInspect))
  355. {
  356. $data['HR_LAB_ITEMNAME'] = implode(',',$hrInspect);
  357. $data['HR_LAB_ITEMNAME_CODE'] = implode(',',$hrInspectCode);
  358. }
  359. if(!empty($bhrInspect))
  360. {
  361. $data['BHR_LAB_ITEMNAME'] = implode(',',$bhrInspect);
  362. $data['BHR_LAB_ITEMNAME_CODE'] = implode(',',$bhrInspectCode);
  363. }
  364. return $data;
  365. }
  366. public function saveRecogViewDetail($HR_RECORDS, $TOKEN) {
  367. $this->hanldeHR_RECORDSAndToken($HR_RECORDS, $TOKEN);
  368. // 获取token请求时间和PATIENT_CODE删除时间和内容做对比
  369. $this->_saveRecogViewDetail($HR_RECORDS);
  370. }
  371. public function _saveRecogViewDetail($HR_RECORDS)
  372. {
  373. $data = $this->checkHR_RECORDS($HR_RECORDS);
  374. $where = $data['where'];
  375. // 删除 hr_record表
  376. $this->hrRecordModel->where($where)->delete();
  377. $news = $data['news'];
  378. // 存储hr_record表
  379. $this->hrRecordModel->saveAll($news);
  380. return $where;
  381. }
  382. /**
  383. * @throws Exception
  384. */
  385. public function checkHR_RECORDS($HR_RECORDS): array {
  386. if(count($HR_RECORDS) === 0) {
  387. //抛出异常 未传入互认数据
  388. throw new Exception('未传入互认数据');
  389. }
  390. $PATIENT_CODE = $HR_RECORDS[0]['PATIENT_CODE'];
  391. $ORGCODE = $HR_RECORDS[0]['ORGCODE'];
  392. $HRORGCODE = $HR_RECORDS[0]['HRORGCODE'];
  393. $REPORTID = array();
  394. $news = array();
  395. foreach($HR_RECORDS as $HR_RECORD) {
  396. $this->checkPATIENT_CODE($PATIENT_CODE, $HR_RECORD['PATIENT_CODE']);
  397. $this->checkORGCODE($ORGCODE, $HR_RECORD['ORGCODE'], $HR_RECORD['ORGNAME']);
  398. $this->checkHRORGCODE($HRORGCODE, $HR_RECORD['HRORGCODE'], $HR_RECORD['HRORGNAME']);
  399. $this->checkITEMNAME($HR_RECORD['REPORTID'], $HR_RECORD['ITEMNAME'], $HR_RECORD['ITEMNAMECODE'], $HR_RECORD['ITEMNAMETYPE']);
  400. $this->checkBHR_CODE($HR_RECORD['HR_STATUS'], $HR_RECORD['BHR_CODE'], $HR_RECORD['BHR_REASON']);
  401. $new = [
  402. 'DOCTORNAME' => $HR_RECORD['DOCTORNAME'],
  403. 'DOCTORCODE' => $HR_RECORD['DOCTORCODE'],
  404. 'REPORTID' => $HR_RECORD['REPORTID'],
  405. 'PATIENT_CODE' => $HR_RECORD['PATIENT_CODE'],
  406. 'ORGNAME' => $HR_RECORD['ORGNAME'],
  407. 'HRORGNAME' => $HR_RECORD['HRORGNAME'],
  408. 'ORGCODE' => $HR_RECORD['ORGCODE'],
  409. 'HRORGCODE' => $HR_RECORD['HRORGCODE'],
  410. 'ITEMNAME' => $HR_RECORD['ITEMNAME'],
  411. 'ITEMNAMECODE' => $HR_RECORD['ITEMNAMECODE'],
  412. 'HR_STATUS' => $HR_RECORD['HR_STATUS'],
  413. 'BHR_CODE' => $HR_RECORD['BHR_CODE'],
  414. 'ITEMNAMETYPE' => $HR_RECORD['ITEMNAMETYPE'],
  415. 'BHR_REASON' => $HR_RECORD['BHR_REASON'],
  416. 'HRTIME' => $HR_RECORD['HRTIME'] ?? date('Y-m-d H:i:s'),
  417. ];
  418. $news[] = $new;
  419. $REPORTID[] = $HR_RECORD['REPORTID'];
  420. }
  421. $where = [
  422. 'PATIENT_CODE' => $PATIENT_CODE,
  423. 'ORGCODE' => $ORGCODE,
  424. 'HRORGCODE' => $HRORGCODE,
  425. 'REPORTID' => $REPORTID
  426. ];
  427. // PATIENT_CODE
  428. // ORGNAME
  429. // HRORGNAME
  430. // ORGCODE
  431. // HRORGCODE
  432. // ITEMNAME
  433. // ITEMNAMECODE
  434. // HR_STATUS
  435. // BHR_CODE
  436. // ITEMNAMETYPE
  437. // BHR_REASON
  438. return [
  439. 'where' => $where,
  440. 'news' => $news,
  441. ];
  442. }
  443. /**
  444. * @throws Exception
  445. */
  446. public function checkPATIENT_CODE($_PATIENT_CODE, $PATIENT_CODE): void {
  447. if($_PATIENT_CODE !== $PATIENT_CODE) {
  448. //抛出患者标识不一致异常
  449. throw new Exception('患者标识不一致');
  450. }
  451. }
  452. /**
  453. * @throws Exception
  454. */
  455. public function checkORGCODE($_ORGCODE, $ORGCODE, $ORGNAME): void {
  456. if($_ORGCODE !== $ORGCODE) {
  457. // 抛出互认机构不一致异常
  458. throw new Exception('互认机构不一致');
  459. }
  460. // todo 校验医院编码和医院名称是否一致
  461. }
  462. /**
  463. * @throws Exception
  464. */
  465. public function checkHRORGCODE($_HRORGCODE, $HRORGCODE, $HRORGNAME): void {
  466. if($_HRORGCODE !== $HRORGCODE) {
  467. // 抛出就诊机构不一致异常
  468. throw new Exception('就诊机构不一致');
  469. }
  470. // todo 校验医院编码和医院名称是否一致 去机构名称校验
  471. }
  472. /**
  473. * @throws Exception
  474. */
  475. public function checkITEMNAME($REPORT_CODE, $ITEMNAME, $ITEMNAMECODE, $ITEMNAMETYPE): void {
  476. // todo 校验项目编码 项目名称 项目类型是否一致
  477. if(true)
  478. {
  479. // todo 类型-》检验、检查
  480. }else{
  481. throw new Exception('校验项目编码 项目名称 项目类型是否一致');
  482. }
  483. }
  484. /**
  485. * @throws Exception
  486. */
  487. public function checkBHR_CODE($HR_STATUS, $BHR_CODE, $BHR_REASON): void {
  488. // todo 校验互认状态 不互认编码 不互认原因是否一致和合法
  489. }
  490. }