Browse Source

Merge branch 'master' of http://code.pacsonline.cn/zskk_bg/guochanhua

luyun 1 month ago
parent
commit
c74794be11
34 changed files with 537 additions and 278 deletions
  1. 15 0
      .idea/encodings.xml
  2. 19 128
      .idea/guochanhua.iml
  3. 1 1
      .idea/php.xml
  4. 5 0
      .idea/vcs.xml
  5. 13 0
      jcjyhr/app/admin/controller/Index.php
  6. 2 2
      jcjyhr/app/admin/controller/auth/Admin.php
  7. 4 4
      jcjyhr/app/admin/controller/auth/Group.php
  8. 9 9
      jcjyhr/app/admin/controller/institution/Institution.php
  9. 7 7
      jcjyhr/app/admin/controller/user/User.php
  10. 9 10
      jcjyhr/app/admin/library/Auth.php
  11. 6 6
      jcjyhr/app/admin/model/Admin.php
  12. 3 3
      jcjyhr/app/admin/model/AdminLog.php
  13. 15 13
      jcjyhr/app/admin/servies/bi/BaseDataBiServies.php
  14. 6 1
      jcjyhr/app/common/controller/ApiController.php
  15. 64 12
      jcjyhr/app/zskk/controller/Api.php
  16. 12 1
      jcjyhr/app/zskk/controller/Patient.php
  17. 60 5
      jcjyhr/app/zskk/model/Patient.php
  18. 63 14
      jcjyhr/app/zskk/servies/CommonServies.php
  19. 2 2
      jcjyhr/app/zskk/servies/EmpowerServies.php
  20. 2 2
      jcjyhr/app/zskk/servies/HrServies.php
  21. 141 8
      jcjyhr/app/zskk/servies/PatientServies.php
  22. 1 1
      jcjyhr/config/log.php
  23. 11 4
      jcjyhr/extend/ba/Auth.php
  24. 1 0
      jcjyhr/route/route.php
  25. 1 1
      jcjyhr/vendor/topthink/think-orm/src/db/Builder.php
  26. 8 0
      server/application/api/controller/test/TestController.php
  27. 1 1
      server/application/api/model/xz/XzModel.php
  28. 8 0
      server/application/api/servies/butt/ButtService.php
  29. 30 39
      server/application/api/servies/xz/XzService.php
  30. 1 1
      server/composer.json
  31. 1 1
      server/public/data.xml
  32. 1 1
      server/runtime/cache/think/20/7451d8092dbe54df9ca47c54527c19.php
  33. 14 0
      server/vendor/topthink/think-oracle/src/W7Connection.php
  34. 1 1
      zskk_new_manage/.env

+ 15 - 0
.idea/encodings.xml

@@ -1,8 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="Encoding">
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/drballsuper.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/haizeimn.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/jinzhou.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/lieren.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/menghuan.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/moyu215.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/over/fashen.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/over/faye.php" charset="GBK" />
     <file url="file://$USER_HOME$/Desktop/新建文件夹/text/over/goldFinger.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/over/jinhua.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/over/movie.php" charset="GBK" />
     <file url="file://$USER_HOME$/Desktop/新建文件夹/text/over/overallWorld.php" charset="GBK" />
     <file url="file://$USER_HOME$/Desktop/新建文件夹/text/over/oversaikiu.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/over/sxmb.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/super035白银项链.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/xiaodian158.php" charset="GBK" />
+    <file url="file://$USER_HOME$/Desktop/新建文件夹/text/xingkong113.php" charset="GBK" />
+    <file url="file://$PROJECT_DIR$/../../Extensions/php/php7.3.4nts/ext/pdo73_dm.dll" charset="UTF-8" />
   </component>
 </project>

+ 19 - 128
.idea/guochanhua.iml

@@ -2,138 +2,29 @@
 <module type="WEB_MODULE" version="4">
   <component name="NewModuleRootManager">
     <content url="file://$MODULE_DIR$/../cybManage" />
-    <content url="file://$MODULE_DIR$">
+    <content url="file://$MODULE_DIR$/jcjyhr" />
+    <content url="file://$MODULE_DIR$/server">
       <sourceFolder url="file://$MODULE_DIR$/server/application" isTestSource="false" packagePrefix="app\" />
       <sourceFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/lib" isTestSource="false" packagePrefix="Aliyun\" />
       <sourceFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/tests" isTestSource="false" packagePrefix="Aliyun\Test\" />
-      <sourceFolder url="file://$MODULE_DIR$/zskk_new_manage/application" isTestSource="false" packagePrefix="app" />
-      <sourceFolder url="file://$MODULE_DIR$/zskk_new_manage/application/common/library/api_sdk/lib" isTestSource="false" packagePrefix="Aliyun" />
-      <sourceFolder url="file://$MODULE_DIR$/zskk_new_manage/application/common/library/api_sdk/tests" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/zskk_new_manage/extend" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/zskk_new_manage/extend/phpSpreadsheet/src" isTestSource="false" packagePrefix="PhpOffice" />
-      <sourceFolder url="file://$MODULE_DIR$/zskk_new_manage/spec" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/zskk_new_manage/thinkphp/library/think" isTestSource="false" packagePrefix="think\" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/composer" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/doctrine/instantiator" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpdocumentor/reflection-common" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpdocumentor/reflection-docblock" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpdocumentor/type-resolver" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpspec/prophecy" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpunit/php-code-coverage" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpunit/php-file-iterator" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpunit/php-text-template" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpunit/php-timer" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpunit/php-token-stream" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpunit/phpunit" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/phpunit/phpunit-mock-objects" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/sebastian/comparator" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/sebastian/diff" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/sebastian/environment" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/sebastian/exporter" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/sebastian/global-state" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/sebastian/recursion-context" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/sebastian/version" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/symfony/yaml" />
-      <excludeFolder url="file://$MODULE_DIR$/server/application/common/library/api_sdk/vendor/webmozart/assert" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/aliyuncs/oss-sdk-php" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/aws/aws-sdk-php" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/composer" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/doctrine/instantiator" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/guzzlehttp/guzzle" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/guzzlehttp/promises" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/guzzlehttp/psr7" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/mpdf/mpdf" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/mtdowling/jmespath.php" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/myclabs/deep-copy" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/paragonie/random_compat" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phar-io/manifest" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phar-io/version" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpdocumentor/reflection-common" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpdocumentor/reflection-docblock" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpdocumentor/type-resolver" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpmailer/phpmailer" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpoffice/phpexcel" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpspec/prophecy" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpunit/php-code-coverage" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpunit/php-file-iterator" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpunit/php-text-template" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpunit/php-timer" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpunit/php-token-stream" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpunit/phpunit" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/phpunit/phpunit-mock-objects" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/predis/predis" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/psr/http-client" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/psr/http-message" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/psr/log" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/ralouphie/getallheaders" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/code-unit-reverse-lookup" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/comparator" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/diff" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/environment" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/exporter" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/global-state" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/object-enumerator" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/object-reflector" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/recursion-context" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/resource-operations" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/sebastian/version" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/setasign/fpdi" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/symfony/deprecation-contracts" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/symfony/dom-crawler" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/symfony/polyfill-ctype" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/symfony/polyfill-mbstring" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/theseer/tokenizer" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/topthink/think-helper" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/topthink/think-installer" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/topthink/think-oracle" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/topthink/think-testing" />
-      <excludeFolder url="file://$MODULE_DIR$/server/vendor/webmozart/assert" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/composer" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/doctrine/cache" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/endroid/qr-code" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/ezyang/htmlpurifier" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/guzzlehttp/guzzle" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/guzzlehttp/promises" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/guzzlehttp/psr7" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/karsonzhang/fastadmin-addons" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/laminas/laminas-escaper" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/maennchen/zipstream-php" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/markbaker/complex" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/markbaker/matrix" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/monolog/monolog" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/mpdf/mpdf" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/mtdowling/cron-expression" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/myclabs/deep-copy" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/myclabs/php-enum" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/overtrue/pinyin" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/overtrue/socialite" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/overtrue/wechat" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/paragonie/random_compat" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/php-http/message-factory" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/phpmailer/phpmailer" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/phpoffice/phpspreadsheet" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/phpoffice/phpword" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/pimple/pimple" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/psr/container" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/psr/http-client" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/psr/http-factory" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/psr/http-message" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/psr/log" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/psr/simple-cache" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/ralouphie/getallheaders" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/setasign/fpdi" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/symfony/http-foundation" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/symfony/options-resolver" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/symfony/polyfill-intl-idn" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/symfony/polyfill-intl-normalizer" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/symfony/polyfill-mbstring" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/symfony/polyfill-php70" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/symfony/polyfill-php72" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/symfony/psr-http-message-bridge" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/tecnickcom/tcpdf" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/topthink/think-captcha" />
-      <excludeFolder url="file://$MODULE_DIR$/zskk_new_manage/vendor/topthink/think-installer" />
+      <sourceFolder url="file://$MODULE_DIR$/server/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/aliyuncs/oss-sdk-php/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/mtdowling/jmespath.php/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/phpunit/php-code-coverage/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/phpunit/php-timer/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/phpunit/php-token-stream/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/phpunit/phpunit-mock-objects/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/sebastian/code-unit-reverse-lookup/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/sebastian/diff/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/sebastian/environment/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/sebastian/exporter/tests" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/server/vendor1/sebastian/recursion-context/tests" isTestSource="true" />
     </content>
+    <content url="file://$MODULE_DIR$/../pet_sys" />
+    <content url="file://$MODULE_DIR$/../phy_exam" />
+    <content url="file://$MODULE_DIR$/../wechat_newris" />
+    <content url="file://$MODULE_DIR$/../zskk_new_manage" />
+    <content url="file://$MODULE_DIR$/../zskk_new_server" />
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>

+ 1 - 1
.idea/php.xml

@@ -139,7 +139,7 @@
       <path value="$PROJECT_DIR$/zskk_new_manage/vendor/karsonzhang/fastadmin-addons" />
     </include_path>
   </component>
-  <component name="PhpProjectSharedConfiguration" php_language_level="7.0">
+  <component name="PhpProjectSharedConfiguration" php_language_level="8.0">
     <option name="suggestChangeDefaultLanguageLevel" value="false" />
   </component>
   <component name="PhpStan">

+ 5 - 0
.idea/vcs.xml

@@ -3,5 +3,10 @@
   <component name="VcsDirectoryMappings">
     <mapping directory="" vcs="Git" />
     <mapping directory="$PROJECT_DIR$/../cybManage" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$/../pet_sys" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$/../phy_exam" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$/../w7chinese" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$/../wechat_newris" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$/../zskk_new_server" vcs="Git" />
   </component>
 </project>

+ 13 - 0
jcjyhr/app/admin/controller/Index.php

@@ -37,6 +37,19 @@ class Index extends Backend
         if (!$menus) {
             $this->error(__('No background menu, please contact super administrator!'));
         }
+        foreach ($menus as $k=>$v) {
+            foreach ($v as $kk=>$vv) {
+                $menus[$k][strtolower($kk)] = $vv;
+//                if($kk == 'children') {
+//                    continue;
+//                }
+//                unset($menus[$k][$kk]);
+            }
+        }
+        foreach ($adminInfo as $k=>$v) {
+            $adminInfo[strtolower($k)] = $v;
+            unset($adminInfo[$k]);
+        }
         $this->success('', [
             'adminInfo'  => $adminInfo,
             'menus'      => $menus,

+ 2 - 2
jcjyhr/app/admin/controller/auth/Admin.php

@@ -19,9 +19,9 @@ class Admin extends Backend
      */
     protected object $model;
 
-    protected array|string $preExcludeFields = ['create_time', 'update_time', 'password', 'salt', 'login_failure', 'last_login_time', 'last_login_ip'];
+    protected array|string $preExcludeFields = ['PASSWORD', 'SALT', 'LOGIN_FAILURE', 'LAST_LOGIN_TIME', 'LAST_LOGIN_IP'];
 
-    protected array|string $quickSearchField = ['username', 'nickname'];
+    protected array|string $quickSearchField = ['USERNAME', 'NICKNAME'];
 
     /**
      * 开启数据限制

+ 4 - 4
jcjyhr/app/admin/controller/auth/Group.php

@@ -326,13 +326,13 @@ class Group extends Backend
 
         // 获取第一个权限的名称供列表显示-s
         foreach ($data as &$datum) {
-            if ($datum['rules']) {
-                if ($datum['rules'] == '*') {
+            if ($datum['RULES']) {
+                if ($datum['RULES'] == '*') {
                     $datum['rules'] = __('Super administrator');
                 } else {
-                    $rules = explode(',', $datum['rules']);
+                    $rules = explode(',', $datum['RULES']);
                     if ($rules) {
-                        $rulesFirstTitle = AdminRule::where('id', $rules[0])->value('title');
+                        $rulesFirstTitle = AdminRule::where('id', $rules[0])->value('TITLE');
                         $datum['rules']  = count($rules) == 1 ? $rulesFirstTitle : $rulesFirstTitle . '等 ' . count($rules) . ' 项';
                     }
                 }

+ 9 - 9
jcjyhr/app/admin/controller/institution/Institution.php

@@ -158,7 +158,7 @@ class Institution extends Backend
         $institution = [];
         foreach ($ins as $k=>$v)
         {
-            $institution[$v['parent_institution_id']][] = $v;
+            $institution[$v['PARENT_INSTITUTION_ID']][] = $v;
         }
         if(!empty($id))
         {
@@ -175,25 +175,25 @@ class Institution extends Backend
     public function makeInsData($institution,$organization): array
     {
         $data = [];
-        if($organization['name'] ?? '')
+        if($organization['NAME'] ?? '')
         {
-            $data[] = ['label'=>$organization['name']];
+            $data[] = ['label'=>$organization['NAME']];
             return $data;
         }
         foreach ($organization as $k=>$v)
         {
-            if(!empty($institution[$v['id']]))
+            if(!empty($institution[$v['ID']]))
             {
-                $child = $this->makeInsData($institution,$institution[$v['id']]);
+                $child = $this->makeInsData($institution,$institution[$v['ID']]);
                 $data[] = [
-                    'label'=>$v['name'],
-                    'id'=>$v['id'],
+                    'label'=>$v['NAME'],
+                    'id'=>$v['ID'],
                     'children'=>$child
                 ];
             }else{
                 $data[] = [
-                    'label'=>$v['name'],
-                    'id'=>$v['id'],
+                    'label'=>$v['NAME'],
+                    'id'=>$v['ID'],
                     'children'=>[]
                 ];
             }

+ 7 - 7
jcjyhr/app/admin/controller/user/User.php

@@ -159,12 +159,12 @@ class User extends Backend
     public function resetPassword(): void
     {
         $id = $this->request->post('id', '');
-        $row = Admin::where('id',$id)->find();
+        $row = Admin::where('ID',$id)->find();
         if(empty($row))
         {
             $this->error('参数错误,人员无法找到');
         }
-        $password = $row['username'].'@Zskk2024';
+        $password = $row['USERNAME'].'@Zskk2024';
         $this->model->resetPassword($id, $password);
         $this->success('重置成功,初始密码为'.$password);
     }
@@ -178,13 +178,13 @@ class User extends Backend
             $this->error('参数错误,人员无法找到');
         }
         $oldPass =  $this->request->post('oldPassword', '');
-        if(encrypt_password($oldPass,$row['salt']) != $row['password'])
+        if(encrypt_password($oldPass,$row['SALT']) != $row['PASSWORD'])
         {
             $this->error('旧密码输入错误');
         }
         $newPass =  $this->request->post('newPassword', '');
         $check = $this->checkPass($newPass);
-        if($newPass == $row['username'].'@Zskk2024')
+        if($newPass == $row['USERNAME'].'@Zskk2024')
         {
             $this->error('新密码不能与初始密码一致');
         }
@@ -199,7 +199,7 @@ class User extends Backend
         }
         $salt   = Random::build('alnum', 16);
         $passwd = encrypt_password($newPass, $salt);
-        $oldPassArr = $this->makeOldPassArr($row['oldPassword'],$passwd,$salt);
+        $oldPassArr = $this->makeOldPassArr($row['OLDPASSWORD'],$passwd,$salt);
         if(!$oldPassArr)
         {
             $this->error('您在最近的5次修改密码中使用过改密码,请更换新的密码进行修改');
@@ -240,8 +240,8 @@ class User extends Backend
         $id = $this->request->post('id', '');
         $pass = $this->request->post('pass', '');
         $row = Admin::where('id',$id)->find();
-        $passwd = encrypt_password($pass, $row['salt']);
-        if($row['password'] !== $passwd)
+        $passwd = encrypt_password($pass, $row['SALT']);
+        if($row['PASSWORD'] !== $passwd)
         {
             $this->error('密码错误');
         }

+ 9 - 10
jcjyhr/app/admin/library/Auth.php

@@ -88,7 +88,7 @@ class Auth extends \ba\Auth
      * 允许输出的字段
      * @var array
      */
-    protected array $allowFields = ['id', 'username', 'nickname', 'avatar', 'last_login_time','depart','depart_id','institution','institution_id'];
+    protected array $allowFields = ['ID', 'USERNAME', 'NICKNAME', 'AVATAR', 'LAST_LOGIN_TIME','DEPART','DEPART_ID','INSTITUTION','INSTITUTION_ID'];
 
     public function __construct(array $config = [])
     {
@@ -168,8 +168,7 @@ class Auth extends \ba\Auth
      */
     public function login(string $username, string $password, bool $keep = false,&$force=0,&$userId='')//: bool
     {
-        $this->model = Admin::where('username', $username)->find()->toArray();
-        var_dump($this->model);die;
+        $this->model = Admin::where('username', $username)->find();
         if (!$this->model) {
             $this->setError('Username is incorrect');
             return false;
@@ -214,7 +213,7 @@ class Auth extends \ba\Auth
         if ($keep) {
             $this->setRefreshToken($this->refreshTokenKeepTime);
         }
-        $this->loginSuccessful();
+        $a = $this->loginSuccessful();
         if(Cache::get('admin_only'.$username))
         {
             $other = Cache::get('admin_only'.$username);
@@ -411,27 +410,27 @@ class Auth extends \ba\Auth
 
     public function check(string $name, int $uid = 0, string $relation = 'or', string $mode = 'url'): bool
     {
-        return parent::check($name, $uid ?: $this->id, $relation, $mode);
+        return parent::check($name, $uid ?: $this->ID, $relation, $mode);
     }
 
     public function getGroups(int $uid = 0): array
     {
-        return parent::getGroups($uid ?: $this->id);
+        return parent::getGroups($uid ?: $this->ID);
     }
 
     public function getRuleList(int $uid = 0): array
     {
-        return parent::getRuleList($uid ?: $this->id);
+        return parent::getRuleList($uid ?: $this->ID);
     }
 
     public function getRuleIds(int $uid = 0): array
     {
-        return parent::getRuleIds($uid ?: $this->id);
+        return parent::getRuleIds($uid ?: $this->ID);
     }
 
     public function getMenus(int $uid = 0): array
     {
-        return parent::getMenus($uid ?: $this->id);
+        return parent::getMenus($uid ?: $this->ID);
     }
 
     /**
@@ -451,7 +450,7 @@ class Auth extends \ba\Auth
     public function getAdminChildGroups(): array
     {
         $groupIds = Db::name('admin_group_access')
-            ->where('uid', $this->id)
+            ->where('uid', $this->ID)
             ->select();
         $children = [];
         foreach ($groupIds as $group) {

+ 6 - 6
jcjyhr/app/admin/model/Admin.php

@@ -23,7 +23,7 @@ class Admin extends Model
     /**
      * @var string 自动写入时间戳
      */
-    protected $autoWriteTimestamp = true;
+    protected $autoWriteTimestamp = false;
     protected $name = 'admins';
 
     /**
@@ -37,16 +37,16 @@ class Admin extends Model
     public function getGroupArrAttr($value, $row): array
     {
         return Db::name('admin_group_access')
-            ->where('uid', $row['id'])
-            ->column('group_id');
+            ->where('UID', $row['ID'])
+            ->column('GROUP_ID');
     }
 
     public function getGroupNameArrAttr($value, $row): array
     {
         $groupAccess = Db::name('admin_group_access')
-            ->where('uid', $row['id'])
-            ->column('group_id');
-        return AdminGroup::whereIn('id', $groupAccess)->column('name');
+            ->where('UID', $row['ID'])
+            ->column('GROUP_ID');
+        return AdminGroup::whereIn('ID', $groupAccess)->column('NAME');
     }
 
     public function getAvatarAttr($value): string

+ 3 - 3
jcjyhr/app/admin/model/AdminLog.php

@@ -12,7 +12,7 @@ use think\model\relation\BelongsTo;
  */
 class AdminLog extends Model
 {
-    protected $autoWriteTimestamp = true;
+    protected $autoWriteTimestamp = false;
     protected $updateTime         = false;
 
     /**
@@ -117,8 +117,8 @@ class AdminLog extends Model
     public function record(string $title = '', string|array $data = null): void
     {
         $auth     = Auth::instance();
-        $adminId  = $auth->isLogin() ? $auth->id : 0;
-        $username = $auth->isLogin() ? $auth->username : request()->param('username', __('Unknown'));
+        $adminId  = $auth->isLogin() ? $auth->ID : 0;
+        $username = $auth->isLogin() ? $auth->USERNAME : request()->param('username', __('Unknown'));
 
         $controller = str_replace('.', '/', request()->controller(true));
         $action     = request()->action(true);

+ 15 - 13
jcjyhr/app/admin/servies/bi/BaseDataBiServies.php

@@ -4,6 +4,8 @@ declare (strict_types=1);
 namespace app\admin\servies\bi;
 
 
+use app\zskk\model\ExamReport;
+
 abstract class BaseDataBiServies
 {
     /**
@@ -125,8 +127,8 @@ abstract class BaseDataBiServies
         ->field('count('.$this->countField.') AS count, date_format('.$this->timeFieldName.', "%Y%m") AS month')
         ->where($where)
         ->whereTime($this->timeFieldName, '>=', date('Y-m-01 00:00:00', strtotime('-5 months')))
-        ->group('month')
-        ->order('month', 'asc')
+        ->group(date_format($this->timeFieldName, "%Y%m"))
+        ->order(date_format($this->timeFieldName, "%Y%m"), 'asc')
         ->select()
         ->toArray();
         return $months;
@@ -192,8 +194,8 @@ abstract class BaseDataBiServies
         for ($day = $firstDay; $day <= intval($lastDay); $day++) {
             $val = 0;
             foreach ($days as $dayData) {
-                if ($dayData['day'] == $day) {
-                    $val = $dayData['count'];
+                if ($dayData['DAY'] == $day) {
+                    $val = $dayData['COUNT'];
                     break;
                 }
             }
@@ -234,14 +236,14 @@ abstract class BaseDataBiServies
      * 单日新增	本月每日上传报告的患者数量,日历图
      */
     public function _getMonthDayData($where = false) {
-        $days = $this->baseModel
-        ->field('count('.$this->countField.') AS count, date_format('.$this->timeFieldName.', "%Y%m%d") AS day')
+        $days = ExamReport::
+        field("count($this->countField) AS count, TO_CHAR($this->timeFieldName, 'YYYYMMDD') AS day")
         ->where($where)
         ->whereMonth($this->timeFieldName)
-        ->group('day')
-        ->order('day', 'asc')
-        ->select()
-        ->toArray();
+        ->group(TO_CHAR($this->timeFieldName, 'YYYYMMDD'))
+        ->order(TO_CHAR($this->timeFieldName, 'YYYYMMDD'), 'asc')
+        ->buildSql();
+        var_dump($days);die;
         return $days;
     }
 
@@ -275,11 +277,11 @@ abstract class BaseDataBiServies
     */
     public function _getWeekDayData($where = false) {
         $days = $this->baseModel
-        ->field('count('.$this->countField.') AS count, date_format('.$this->timeFieldName.', "%Y%m%d") AS day')
+        ->field("count($this->countField) AS count, date_format($this->timeFieldName, '%Y%m%d') AS day")
         ->where($where)
         ->whereWeek($this->timeFieldName)
-        ->group('day')
-        ->order('day', 'asc')
+        ->group(date_format($this->timeFieldName, '%Y%m%d'))
+        ->order(date_format($this->timeFieldName, '%Y%m%d'), 'asc')
         ->select()
         ->toArray();
         return $days;

+ 6 - 1
jcjyhr/app/common/controller/ApiController.php

@@ -69,7 +69,12 @@ class ApiController extends Api
         {
             return [];
         }else{
-            return json_decode(base64_decode($info),true);
+            $arr = json_decode(base64_decode($info),true);
+            if(empty($arr))
+            {
+                $this->error('数据解析失败,失败原因:数据加密前未进行base64转换');
+            }
+            return $arr;
         }
     }
 

+ 64 - 12
jcjyhr/app/zskk/controller/Api.php

@@ -4,9 +4,12 @@ declare (strict_types=1);
 namespace app\zskk\controller;
 
 use app\common\controller\ApiController;
+use app\common\library\Gm;
 use app\zskk\servies\EmpowerServies;
 use app\zskk\servies\HrServies;
 use app\zskk\servies\PatientServies;
+use think\facade\Db;
+use think\facade\Config;
 
 class Api extends ApiController
 {
@@ -66,8 +69,8 @@ class Api extends ApiController
         }
         $params = $patientServies->makeMappingData($params,'0','getRecogToken');
         $data = $servies->getRecogToken($params);
-        $data = $patientServies->makeMappingData($data,'0','getRecogToken',2);
-        $data = $this->makeEncryptData($data);
+//        $data = $patientServies->makeMappingData($data,'0','getRecogToken',2);
+//        $data = $this->makeEncryptData($data);
         $this->success('success', $data);
     }
 
@@ -81,8 +84,8 @@ class Api extends ApiController
         }
         $params = $patientServies->makeMappingData($params,'0','getRecogToken');
         $data = $servies->getRecogToken($params);
-        $data = $patientServies->makeMappingData($data,'0','getRecogToken',2);
-        $data = $this->makeEncryptData($data);
+//        $data = $patientServies->makeMappingData($data,'0','getRecogToken',2);
+//        $data = $this->makeEncryptData($data);
         $this->success('success', $data);
     }
 
@@ -215,6 +218,7 @@ class Api extends ApiController
      */
     public function getRecogData(HrServies $servies,PatientServies $patientServies): void
     {
+        set_time_limit(0);
         $params = $this->request->post();
         $params = $this->getDecryptData($params['data']);
         if(empty($params))
@@ -258,16 +262,64 @@ class Api extends ApiController
     public function getAllToken(EmpowerServies $servies, PatientServies $patientServies)
     {
         $params = $this->request->post();
-        $data['clientid'] = '12371600494581158K'; //机构编码
-        $data['clientsecret'] = '837ffb03803b72cd99a941770fb6b2be';  //授权码
-        $data = $servies->getInsToken($data);
+//        $data['clientid'] = '12371600494581158K'; //机构编码
+//        $data['clientsecret'] = '837ffb03803b72cd99a941770fb6b2be';  //授权码
+//        $data = $servies->getInsToken($data);
         $idCard = $patientServies->getIdCard($params['mpi']);
+        $medical_information = $patientServies->getMedical($params['mpi']);
         $arr['ID_CARDNUM'] = $idCard;
-        $arr['ORGCODE'] = '12371600494581158K';
-        $arr['ORGNAME'] = '滨州市优抚医院';
-        $arr['DOCTORNAME'] = '贝远';
-        $arr['DOCTORCODE'] = '00010005';
+        $arr['ORGCODE'] = $medical_information['ORGCODE'];
+        $arr['ORGNAME'] = $medical_information['ORGNAME'];
         $return = $servies->getRecogToken($arr);
-        $this->success('', $return);
+        $this->success('', ['TOKEN'=>$return]);
+    }
+
+    public function getPatientExam(PatientServies $patientServies)
+    {
+        $params = $this->request->post();
+        $arr = $patientServies->getPatientExam($params);
+        $this->success('success', $arr);
+    }
+
+    public function getExamData(PatientServies $patientServies)
+    {
+        $params = $this->request->post();
+        $arr = $patientServies->getExamData($params);
+        $this->success('success', $arr);
+    }
+
+    public function getPatientLab(PatientServies $patientServies)
+    {
+        $params = $this->request->post();
+        $arr = $patientServies->getPatientLab($params);
+        $this->success('success', $arr);
+    }
+
+    public function getLabData(PatientServies $patientServies)
+    {
+        $params = $this->request->post();
+        $arr = $patientServies->getLabData($params);
+        $this->success('success', $arr);
+    }
+
+    public function getPatientJCJYUrl()
+    {
+        $params = $this->request->post();
+        $idCard = $params['cardNum'] ?? '';
+        if(empty($idCard))
+        {
+            $this->error('系统错误');
+        }
+        $data = base64_encode($idCard);
+        $url = '/getPatientCheck?data='.$data;
+        $this->success('success', $url);
+    }
+
+    public function testApi()
+    {
+        $STUDYUID = '82562722.16043349';
+        $a = Db::query("select STUDY_ID from PACS.EXAMS WHERE STUDYUID='$STUDYUID'");
+
+        var_dump($a[0]);
     }
 }

+ 12 - 1
jcjyhr/app/zskk/controller/Patient.php

@@ -144,11 +144,22 @@ class Patient extends ZskkApiController
             }
             $params = $servies->makeMappingData($params,'0','postLabReport');
             $data = $servies->postLabReport($params);
-            $data = $this->makeEncryptData($data);
+//            $data = $this->makeEncryptData($data);
 //        }catch (\Exception $e)
 //        {
 //            $this->error($e->getMessage());
 //        }
         $this->success('success',$data);
     }
+
+    public function syncExams(PatientServies $servies)
+    {
+        $params = $this->request->post();
+        if(empty($params))
+        {
+            $this->error('接口异常');
+        }
+        $data = $servies->syncExam($params);
+        $this->success('success',$data);
+    }
 }

+ 60 - 5
jcjyhr/app/zskk/model/Patient.php

@@ -3,6 +3,7 @@
 namespace app\zskk\model;
 
 use app\admin\model\dict\Commondata;
+use app\admin\model\dict\Examproject;
 use app\admin\model\dict\Labitem;
 use app\common\model\ZskkModel;
 use think\db\exception\DataNotFoundException;
@@ -38,9 +39,9 @@ class Patient extends ZskkModel
         (new Mpi())->save(['MPI'=>$mpi,'ID_CARDNUM'=>$idCard,'MPI_KEY'=>$mpiKey]);
     }
 
-    public function getPatientsByID_CARDNUM($ID_CARDNUM)
+    public function getPatientsByID_CARDNUM($ID_CARDNUM,$where = [])
     {
-        return (new Patient())->where('ID_CARDNUM', $ID_CARDNUM)->field(['NAME','ID_CARD_CODE','ID_CARDNUM','GENDER_CODE','BIRTH_DATE','PATIENT_CODE'])->select();
+        return (new Patient())->where('ID_CARDNUM', $ID_CARDNUM)->where($where)->field(['NAME','ID_CARD_CODE','ID_CARDNUM','GENDER_CODE','BIRTH_DATE','PATIENT_CODE','PHONE'])->select();
     }
     
     /**
@@ -174,6 +175,11 @@ class Patient extends ZskkModel
         return (new MedicalInformation())->where('PATIENT_CODE',$patientCode)->where($medicalWhere)->field($field)->find();
     }
 
+    public function getMedicalInformation($medicalWhere=[],$field=['SERIESNUM','CLASS_CODE', 'CLASS', 'ENCOUNTER_CARD_NO', 'RECORD_CODE', 'HOS_EMPI', 'NAME', 'ENCOUNTER_DATE', 'DEPTNAME', 'CHIEFCOMPLAINT', 'ORGCODE', 'ORGNAME', 'AGE', 'GENDER', 'GENDER_CODE', 'DIAGNOSECODE', 'DIAGNOSENAME','DOCTORNAME','DOCTORCODE'])
+    {
+        return (new MedicalInformation())->where($medicalWhere)->field($field)->find();
+    }
+
     public function getMedicalData($medicalWhere=[],$field=['SERIESNUM','CLASS_CODE', 'CLASS', 'ENCOUNTER_CARD_NO', 'RECORD_CODE', 'HOS_EMPI', 'NAME', 'ENCOUNTER_DATE', 'DEPTNAME', 'CHIEFCOMPLAINT', 'ORGCODE', 'ORGNAME', 'AGE', 'GENDER', 'GENDER_CODE', 'DIAGNOSECODE', 'DIAGNOSENAME','DOCTORNAME','DOCTORCODE'])
     {
         return (new MedicalInformation())->where($medicalWhere)->field($field)->find();
@@ -193,7 +199,13 @@ class Patient extends ZskkModel
     public function getExam($patientCode,$where=[])
     {
         // return (new ExamReport())->where('PATIENT_CODE',$patientCode)->field(['NAME','SERIESNUM', 'EXAM_REQUESTID', 'REPORTID', 'EXAM_ITEMNAME', 'BODYSITE_CATEG', 'BODYSITE_CATEG_CODE', 'BODYSITE', 'OBSERVATIONS_COMMENT', 'OBSERVATIONS_RESULT', 'BODYSITE_CATEG_CODE', 'BODYSITE', 'OBSERVATIONS_COMMENT', 'OBSERVATIONS_RESULT', 'IMAGES', 'DICOM_INDEXID', 'DICOM_INDEXID', 'OBSERVATIONS_COMMENT', 'OBSERVATIONS_RESULT', 'IMAGES', 'DICOM_INDEXID', 'EXAM_ITEMNAME','EXAM_APPLICATION_CODE','STUDYTIME','EXAM_ITEMNAME_CODE','EXAM_REPORT_CODE','PRACTITIONERNAME'])->select()->toArray();
-        return (new ExamReport())->where('PATIENT_CODE',$patientCode)->where($where)->field(['REQUESTID','REPORTID','DEVICETYPE_CODE','EXAM_ITEMNAME','EXAM_ITEMNAME_CODE','BODYSITE','OBSERVATIONS_COMMENT','OBSERVATIONS_RESULT','RESULT_STATUS_CODE', 'RESULT_STATUS', 'HR_RANGE','HR_ITEMNAME_CODE', 'HR_ITEMNAME','IMAGES', 'ORGNAME','ORGCODE','DEPTNAME','PRACTITIONERNAME','AUDITNAME','REPORTTIME','STUDYTIME','REPORT'])->select()->toArray();
+        return (new ExamReport())->where('PATIENT_CODE',$patientCode)->where($where)->field(['PATIENT_CODE','SERIESNUM','REQUESTID','REPORTID','DEVICETYPE_CODE','EXAM_ITEMNAME','EXAM_ITEMNAME_CODE','BODYSITE','OBSERVATIONS_COMMENT','OBSERVATIONS_RESULT','RESULT_STATUS_CODE', 'RESULT_STATUS', 'HR_RANGE','HR_ITEMNAME_CODE', 'HR_ITEMNAME','IMAGES','STUDY_ID', 'ORGNAME','ORGCODE','DEPTNAME','PRACTITIONERNAME','AUDITNAME','REPORTTIME','STUDYTIME','REPORT'])->select()->toArray();
+    }
+
+    public function saveReportStudy($studyUid,$studyId)
+    {
+        return (new ExamReport())->where('STUDYUID',$studyUid)->update(['STUDY_ID' => $studyId]);
+
     }
 
     public function getExamReport($where,$field)
@@ -203,7 +215,18 @@ class Patient extends ZskkModel
     public function getInspect($patientCode,$where=[])
     {
         // return (new InspectReport())->where('PATIENT_CODE',$patientCode)->field(['NAME','SERIESNUM', 'EXAM_REQUESTID', 'REPORTID', 'SPECIMEN_TYPE', 'ORGCODE', 'ORGNAME', 'DEPTNAME', 'PRACTITIONERNAME', 'AUDITNAME', 'REPORTTIME', 'REPORTSTATUS', 'GENDER', 'GENDER_CODE', 'AGE', 'LAB_ITEMNAME', 'LAB_ITEMNAME_CODE', 'LAB_ITEMNAME_NUMBER', 'LAB_HR_STATUS', 'LAB_HR_ITEMNAME', 'LAB_HR_ITEMNAME_CODE','INSPECT_REPORT_CODE'])->select()->toArray();
-        return (new InspectReport())->where('PATIENT_CODE',$patientCode)->where($where)->field(['REPORTID','LAB_ITEMNAME','LAB_ITEMNAME_TYPE_CODE','PRACTITIONERNAME','AUDITNAME','ORGNAME','ORGCODE','DEPTNAME','REPORT_COMMENT','REPORTTIME','REPORT','LAB_HR_ITEMNAME_CODE', 'LAB_HR_ITEMNAME', 'HR_RANGE','SPECIMEN_TYPE','INSPECT_REPORT_CODE','RECOG_STATUS'])->select()->toArray();
+        return (new InspectReport())->where('PATIENT_CODE',$patientCode)->where($where)->field(['SERIESNUM','REPORTID','LAB_ITEMNAME','LAB_ITEMNAME_TYPE_CODE','PRACTITIONERNAME','AUDITNAME','ORGNAME','ORGCODE','DEPTNAME','REPORT_COMMENT','REPORTTIME','REPORT','LAB_HR_ITEMNAME_CODE', 'LAB_HR_ITEMNAME', 'HR_RANGE','SPECIMEN_TYPE','INSPECT_REPORT_CODE','RECOG_STATUS'])->select()->toArray();
+    }
+
+    public function getExamData($patientCode)
+    {
+        $field = ['m.AGE','m.GENDER','m.DIAGNOSENAME','e.NAME','e.SERIESNUM','e.REQUESTID','e.REPORTID','e.DEVICETYPE_CODE','e.EXAM_ITEMNAME','e.EXAM_ITEMNAME_CODE','e.BODYSITE','e.OBSERVATIONS_COMMENT','e.OBSERVATIONS_RESULT','e.RESULT_STATUS_CODE', 'RESULT_STATUS', 'HR_RANGE','e.HR_ITEMNAME_CODE', 'HR_ITEMNAME','e.IMAGES','e.STUDY_ID', 'e.ORGNAME','e.ORGCODE','e.DEPTNAME','e.PRACTITIONERNAME','e.AUDITNAME','e.REPORTTIME','e.STUDYTIME','e.REPORT'];
+        $data = (new ExamReport())->alias('e')
+            ->join('medical_information m','m.PATIENT_CODE = e.PATIENT_CODE')
+            ->where('e.PATIENT_CODE',$patientCode)
+            ->field($field)
+            ->find();
+        return $data;
     }
 
     public function getInspectData($where,$field)
@@ -212,10 +235,18 @@ class Patient extends ZskkModel
     }
     public function getLab($reportCode)
     {
-        // return (new LabData())->where('INSPECT_REPORT_CODE',$reportCode)->field(['EXAM_REQUESTID','REPORTID', 'ORGCODE', 'LAB_ITEMDETAILNAME', 'LAB_ITEMDETAILNAME_CODE', 'LAB_ITEMDETAILNAME_NUMBER', 'LAB_ITEMDETAILVALUE', 'LAB_ITEMDETAILSPEC', 'LAB_ITEMDETAILINTERPRETATION', 'LAB_ITEMDETAILRANGE', 'CRITICAL_RANGE', 'LAB_HR_ITEMDETAIL_STATUS', 'LAB_HR_ITEMDETAILNAME', 'LAB_HR_ITEMDETAILNAME_CODE'])->select()->toArray();
         return (new LabData())->where('INSPECT_REPORT_CODE',$reportCode)->field(['LAB_ITEMDETAILNAME','LAB_ITEMDETAILNAME_EN','LAB_ITEMDETAILNAME_NUMBER','LAB_ITEMDETAILVALUE','LAB_ITEMDETAILSPEC','LAB_ITEMDETAILINTERPRETATION','LAB_ITEMDETAILINTERPRETATION_BIA','LAB_ITEMDETAILRANGE','CRITICAL_RANGE','LAB_METHOD','KB','MIC','LAB_ITEMDETAILINTERPRE','LAB_HR_ITEMDETAILNAME_CODE','LAB_HR_ITEMDETAILNAME','HR_RANGE','RECOG_STATUS','LAB_ITEMDETAILNAME_CODE'])->order('LAB_ITEMDETAILNAME_NUMBER')->select()->toArray();
     }
 
+    public function getInspectReport($inspectCode)
+    {
+        return (new InspectReport())->alias('i')
+            ->join(['medical_information'=>'m'],'m.PATIENT_CODE=i.PATIENT_CODE')
+            ->where('i.INSPECT_REPORT_CODE',$inspectCode)
+            ->field('m.NAME,m.GENDER,m.CLASS,i.SERIESNUM,ENCOUNTER_CARD_NO,RECORD_CODE,ENCOUNTER_DATE,i.DEPTNAME,CHIEFCOMPLAINT,i.ORGNAME,m.AGE,DIAGNOSENAME,m.DOCTORNAME,SPECIMEN_TYPE,PRACTITIONERNAME,AUDITNAME,REPORTTIME,LAB_ITEMNAME,REPORT,HR_RANGE,LAB_HR_ITEMNAME')
+            ->find();
+    }
+
     public function updateMiddleStatus($id,$update):void
     {
         (new MiddleStorage())->where('id',$id)->update($update);
@@ -260,6 +291,8 @@ class Patient extends ZskkModel
     {
         $model = new DelPatient();
         unset($data['ID']);
+        unset($data['CREATE_TIME']);
+        unset($data['UPDATE_TIME']);
         $model->save($data);
     }
 
@@ -272,6 +305,8 @@ class Patient extends ZskkModel
     {
         $model = new DelMedicalInformation();
         unset($data['ID']);
+        unset($data['CREATE_TIME']);
+        unset($data['UPDATE_TIME']);
         $model->save($data);
     }
 
@@ -285,6 +320,8 @@ class Patient extends ZskkModel
     {
         $model = new DelExamReport();
         unset($data['ID']);
+        unset($data['CREATE_TIME']);
+        unset($data['UPDATE_TIME']);
         $model->save($data);
     }
 
@@ -297,6 +334,8 @@ class Patient extends ZskkModel
     {
         $model = new DelInspectReport();
         unset($data['ID']);
+        unset($data['CREATE_TIME']);
+        unset($data['UPDATE_TIME']);
         $model->save($data);
     }
 
@@ -319,6 +358,11 @@ class Patient extends ZskkModel
     public function saveRepeatLab($data)
     {
         $model = new DelLabData();
+        foreach ($data as $k=>&$v)
+        {
+            unset($data[$k]['CREATE_TIME']);
+            unset($data[$k]['UPDATE_TIME']);
+        }
         $model->saveAll($data);
     }
 
@@ -335,6 +379,11 @@ class Patient extends ZskkModel
     public function saveRepeatBiInspect($data)
     {
         $model = new DelBiInspectReport();
+        foreach ($data as $k=>&$v)
+        {
+            unset($data[$k]['CREATE_TIME']);
+            unset($data[$k]['UPDATE_TIME']);
+        }
         $model->saveAll($data);
     }
 
@@ -344,6 +393,12 @@ class Patient extends ZskkModel
         return $model->where($where)->field($value)->find();
     }
 
+    public function getExamDict($where,$field)
+    {
+        $model = new Examproject();
+        return $model->where($where)->field($field)->find();
+    }
+
     public function getHospitalData($param)
     {
         $model = new TestHospitalData();

+ 63 - 14
jcjyhr/app/zskk/servies/CommonServies.php

@@ -8,6 +8,7 @@ use app\common\library\Handle;
 use app\zskk\model\CallRecord;
 use app\zskk\model\Patient;
 use think\facade\Config;
+use think\facade\Db;
 
 class CommonServies
 {
@@ -56,7 +57,7 @@ class CommonServies
         $MPI_MODEL = $this->getMpiModel($ID_CARDNUM);
         $MPI_KEY = $MPI_MODEL['MPI_KEY'];
         $MPI = $MPI_MODEL['MPI'];
-        $PATIENT_CODE = $this->getPATIENT_CODE($MPI_KEY, $MEDICAL_INFORMATION['ORGCODE'], $MEDICAL_INFORMATION['SERIESNUM']);
+        $PATIENT_CODE = $this->getPATIENT_CODE($MPI_KEY, $MEDICAL_INFORMATION['ORGCODE'], $MEDICAL_INFORMATION['HOS_EMPI']);
         $PATIENT = [
             'NAME' => $NAME,
             'PATIENT_CODE' => $PATIENT_CODE,
@@ -94,7 +95,7 @@ class CommonServies
         $CLASS_CODE = $data['CLASS_CODE'];
         $ENCOUNTER_CARD_NO = $data['ENCOUNTER_CARD_NO'];
         $SERIESNUM = $data['SERIESNUM'];
-        $HOS_EMPI = $data['HOS_EMPI'];
+        $HOS_EMPI = $data['HOS_EMPI'] ?? '';
         $ENCOUNTER_DATE = $data['ENCOUNTER_DATE'];
         $DEPTNAME = $data['DEPTNAME'];
         $CHIEFCOMPLAINT = $data['CHIEFCOMPLAINT'];
@@ -221,10 +222,29 @@ class CommonServies
             $EXAM_ITEMNAME = $data['EXAM_ITEMNAME'];
             $EXAM_ITEMNAME_CODE = $data['EXAM_ITEMNAME_CODE'];
             $BODYSITE = $data['BODYSITE'];
+            $STUDYUID = $data['STUDYUID'];
+            $ACCESSION_NUM = $data['ACCESSION_NUM'];
+            $STUDY_ID = '';
+            if(!empty($STUDYUID))
+            {
+                $EXAMS = Db::query("select STUDY_ID from PACS.EXAMS WHERE STUDYUID='$STUDYUID'");
+                if(!empty($EXAMS))
+                {
+                    $STUDY_ID = $EXAMS[0]['STUDY_ID'] ?? '';
+                }
+            }
+            if(!empty($STUDY_ID) && !empty($ACCESSION_NUM))
+            {
+                $EXAMS = Db::query("select STUDY_ID from PACS.EXAMS WHERE ACCESSION_NUM='$ACCESSION_NUM'");
+                if(!empty($EXAMS))
+                {
+                    $STUDY_ID = $EXAMS[0]['STUDY_ID'] ?? '';
+                }
+            }
 //            $OBSERVATIONS_COMMENT = $data['OBSERVATIONS_COMMENT'];
 //            $OBSERVATIONS_RESULT = $data['OBSERVATIONS_RESULT'];
 //            $RESULT_STATUS_CODE = $data['RESULT_STATUS_CODE'];
-//            $HR_RANGE = $data['HR_RANGE'];
+            $HR_RANGE = '阳泉-HR';
             $HR_ITEMNAME_CODE = $data['HR_ITEMNAME_CODE'];
             $ORGNAME = $MEDICAL_INFORMATION['ORGNAME'];
             $ORGCODE = $MEDICAL_INFORMATION['ORGCODE'];
@@ -235,6 +255,15 @@ class CommonServies
             $STUDYTIME = $data['STUDYTIME'];
 //            $REPORT = $data['REPORT'];
             $HR_ITEMNAME = $data['HR_ITEMNAME'];
+            $RECOG_STATUS = '';
+            if(!empty($HR_ITEMNAME_CODE) && $HR_ITEMNAME_CODE !='-')
+            {
+                $DICT_DATA = $this->patientModel->getExamDict(['XM_CODE'=>$HR_ITEMNAME_CODE],'XM');
+                if($DICT_DATA['XM'] == $HR_ITEMNAME)
+                {
+                    $RECOG_STATUS = '*';
+                }
+            }
 
             // $RECOG_STATUS = $data['RECOG_STATUS'];
             $EXAM_APPLICATION_CODE = $this->getEXAM_APPLICATION_CODE($PATIENT_CODE, $REQUESTID);
@@ -262,7 +291,7 @@ class CommonServies
 //                'OBSERVATIONS_COMMENT' => $OBSERVATIONS_COMMENT,
 //                'OBSERVATIONS_RESULT' => $OBSERVATIONS_RESULT,
 //                'RESULT_STATUS_CODE' => $RESULT_STATUS_CODE,
-//                'HR_RANGE' => $HR_RANGE,
+                'HR_RANGE' => $HR_RANGE,
                 'HR_ITEMNAME_CODE' => $HR_ITEMNAME_CODE,
                 'ORGNAME' => $ORGNAME,
                 'ORGCODE' => $ORGCODE,
@@ -280,9 +309,12 @@ class CommonServies
                 'DOCTORNAME' => $MEDICAL_INFORMATION['DOCTORNAME'],
                 'DOCTORCODE' => $MEDICAL_INFORMATION['DOCTORCODE'],
                 'CALL_FLAG' => $MEDICAL_INFORMATION['CALL_FLAG'],
-                // 'RECOG_STATUS' => $RECOG_STATUS,
+                'RECOG_STATUS' => $RECOG_STATUS,
                 // todo 
-                'create_time' => date('Y-m-d H:i:s')
+                'create_time' => date('Y-m-d H:i:s'),
+                'STUDYUID' => $STUDYUID,
+                'ACCESSION_NUM' => $ACCESSION_NUM,
+                'STUDY_ID'=>$STUDY_ID
 
             
             ];        
@@ -359,13 +391,22 @@ class CommonServies
             $REPORTTIME = $data['REPORTTIME'];
             $REPORT = $data['REPORT'];
             $LAB_HR_ITEMNAME_CODE = $data['LAB_HR_ITEMNAME_CODE'];
-            $itemLabDict = $this->patientModel->getItemLab(['BSYBBM'=>$LAB_HR_ITEMNAME_CODE],'ITEMTYPE');
-            $itemType = $itemLabDict['ITEMTYPE'] ?? '';
-//            $HR_RANGE = $data['HR_RANGE'];
             $LAB_HR_ITEMNAME = $data['LAB_HR_ITEMNAME'];
+            $RECOG_STATUS = '';
+            $itemLabDict = $this->patientModel->getItemLab(['BSYBBM'=>$LAB_HR_ITEMNAME_CODE],'ITEMTYPE,XMMC');
+            if($LAB_HR_ITEMNAME_CODE != '-' && !empty($LAB_HR_ITEMNAME_CODE))
+            {
+                if(($itemLabDict['XMMC'] ?? '') == $LAB_HR_ITEMNAME)
+                {
+                    $RECOG_STATUS = '*';
+                }
+            }
+            $itemType = $itemLabDict['ITEMTYPE'] ?? '';
+            $HR_RANGE = '阳泉-HR';
             // $SPECIMEN_TYPE = $this->getSPECIMEN_TYPEByCode($SPECIMEN_TYPE_CODE);
             $LAB_ITEMNAME_TYPE = $this->getLAB_ITEMNAME_TYPEByCode($LAB_ITEMNAME_TYPE_CODE);
             $INSPECT_REPORT_CODE = $this->getINSPECT_REPORT_CODE($PATIENT_CODE, $REPORTID);
+
             // $RECOG_STATUS = $data['RECOG_STATUS'];
             // $RECOG_STATUS_CODE = $data['RECOG_STATUS_CODE'];
             // $RECOG_STATUS = $this->getRECOG_STATUS($RECOG_STATUS_CODE);
@@ -393,12 +434,12 @@ class CommonServies
                 'REPORT' => $REPORT,
                 'LAB_HR_ITEMNAME_CODE' => $LAB_HR_ITEMNAME_CODE,
                 'ITEMTYPE'=>$itemType,
-//                'HR_RANGE' => $HR_RANGE,
+                'HR_RANGE' => $HR_RANGE,
                 'LAB_HR_ITEMNAME' => $LAB_HR_ITEMNAME,
                 'SPECIMEN_TYPE' => $SPECIMEN_TYPE,
                 'INSPECT_REPORT_CODE' => $INSPECT_REPORT_CODE,
                 // 'RECOG_STATUS_CODE' => $RECOG_STATUS_CODE,
-                // 'RECOG_STATUS' => $RECOG_STATUS,
+                 'RECOG_STATUS' => $RECOG_STATUS,
                 
                 'DOCTORNAME' => $MEDICAL_INFORMATION['DOCTORNAME'],
                 'DOCTORCODE' => $MEDICAL_INFORMATION['DOCTORCODE'],
@@ -470,7 +511,7 @@ class CommonServies
             $LAB_ITEMDETAILVALUE = $data['LAB_ITEMDETAILVALUE'];
             $LAB_ITEMDETAILSPEC = $data['LAB_ITEMDETAILSPEC'];
             $LAB_ITEMDETAILINTERPRETATION = $data['LAB_ITEMDETAILINTERPRETATION'];
-            $LAB_ITEMDETAILINTERPRETATION_BIA = $data['LAB_ITEMDETAILINTERPRETATION_BIA'];
+            $LAB_ITEMDETAILINTERPRETATION_BIA = $data['LAB_ITEMDETAILINTERPRETATION_BIA'] ?? '';
             $LAB_ITEMDETAILRANGE = $data['LAB_ITEMDETAILRANGE'];
             $LAB_METHOD = $data['LAB_METHOD'];
             $KB = $data['KB'];
@@ -480,7 +521,15 @@ class CommonServies
 //            $HR_RANGE = $data['HR_RANGE'];
 //            $RECOG_STATUS = $data['RECOG_STATUS'];
             $LAB_HR_ITEMDETAILNAME = $data['LAB_HR_ITEMDETAILNAME'];
-
+            $RECOG_STATUS = '';
+            if(!empty($LAB_HR_ITEMDETAILNAME_CODE) && $LAB_HR_ITEMDETAILNAME_CODE != '-')
+            {
+                $DICT_DATA = $this->patientModel->getItemLab(['BSYBBM'=>$LAB_HR_ITEMDETAILNAME_CODE],'XMMC');
+                if(($DICT_DATA['XMMC'] ?? '') == $LAB_HR_ITEMDETAILNAME)
+                {
+                    $RECOG_STATUS = '*';
+                }
+            }
             $INSPECT_REPORT_ITEM = [
 
                 'REPORTID' => $REPORTID,
@@ -500,7 +549,7 @@ class CommonServies
                 'LAB_ITEMDETAILINTERPRE' => $LAB_ITEMDETAILINTERPRE, 
                 'LAB_HR_ITEMDETAILNAME_CODE' => $LAB_HR_ITEMDETAILNAME_CODE, 
 //                'HR_RANGE' => $HR_RANGE,
-//                'RECOG_STATUS' => $RECOG_STATUS,
+                'RECOG_STATUS' => $RECOG_STATUS,
                 'LAB_HR_ITEMDETAILNAME' => $LAB_HR_ITEMDETAILNAME, 
             ];
             $INSPECT_REPORT_ITEMS[] = $INSPECT_REPORT_ITEM;

+ 2 - 2
jcjyhr/app/zskk/servies/EmpowerServies.php

@@ -15,7 +15,7 @@ class EmpowerServies
         $this->institutionModel = $institutionModel;
     }
 
-    public function getRecogToken($params): array
+    public function getRecogToken($params): string
     {
         $ID_CARDNUM = $params['ID_CARDNUM'];
         $ORGCODE = $params['ORGCODE'];
@@ -37,7 +37,7 @@ class EmpowerServies
             'DEVICE_MAC'=>$params['DEVICE_MAC'] ?? ''
         ];
         Cache::set($aesKey,$arr,$expire);
-        return ['TOKEN'=>$aesKey];
+        return $aesKey;
 
     }
     public function getInsToken($params): array

+ 2 - 2
jcjyhr/app/zskk/servies/HrServies.php

@@ -429,7 +429,7 @@ class HrServies
             $this->checkORGCODE($ORGCODE, $HR_RECORD['ORGCODE'], $HR_RECORD['ORGNAME']);
             $this->checkHRORGCODE($HRORGCODE, $HR_RECORD['HRORGCODE'], $HR_RECORD['HRORGNAME']);
             $this->checkITEMNAME($HR_RECORD['REPORTID'], $HR_RECORD['ITEMNAME'], $HR_RECORD['ITEMNAMECODE'], $HR_RECORD['ITEMNAMETYPE']);
-            $this->checkBHR_CODE($HR_RECORD['HR_STATUS'], $HR_RECORD['BHR_CODE'], $HR_RECORD['BHR_REASON']);
+            $this->checkBHR_CODE($HR_RECORD['HR_STATUS'], $HR_RECORD['BHR_CODE'] ?? '', $HR_RECORD['BHR_REASON']);
 
             $new = [
                 'DOCTORNAME' => $HR_RECORD['DOCTORNAME'],
@@ -443,7 +443,7 @@ class HrServies
                 'ITEMNAME' => $HR_RECORD['ITEMNAME'],
                 'ITEMNAMECODE' => $HR_RECORD['ITEMNAMECODE'],
                 'HR_STATUS' => $HR_RECORD['HR_STATUS'],
-                'BHR_CODE' => $HR_RECORD['BHR_CODE'],
+                'BHR_CODE' => $HR_RECORD['BHR_CODE'] ?? '',
                 'ITEMNAMETYPE' => $HR_RECORD['ITEMNAMETYPE'],
                 'BHR_REASON' => $HR_RECORD['BHR_REASON'],
                 'HRTIME' => $HR_RECORD['HRTIME'] ?? date('Y-m-d H:i:s'),

+ 141 - 8
jcjyhr/app/zskk/servies/PatientServies.php

@@ -479,7 +479,7 @@ class PatientServies
             'D' => '1',
             default => $age_last,
         };
-        $data['AGE_DAY'] = $last*$age_num;
+        $data['AGE_DAY'] = ((int)$last)*((int)$age_num);
         $data['ID_CARDNUM'] = $patient['ID_CARDNUM'];
         $data['MPI'] = $patient['MPI'];
         $data['ENCOUNTER_DATE'] =  $medical['ENCOUNTER_DATE'];
@@ -751,6 +751,8 @@ class PatientServies
                 $return = true;
                 $v['LAB_DATA'] = $lab;
                 $inspectData[] = $v;
+            }else{
+                unset($inspect[$k]);
             }
 
         }
@@ -978,17 +980,57 @@ class PatientServies
         {
             return '';
         }
+        if(strrpos($base64_string,'http') !== false || strrpos($base64_string,'https') !== false)
+        {
+            //  传参url
+            $arr = explode('.',$base64_string);
+            $hz = end($arr);
+            $filePath = $_SERVER['DOCUMENT_ROOT'].'/report/'.time().rand(0,9999).'.'.$hz; // 本地文件路径
+            $savePath = $_SERVER['HTTP_HOST'].'/report/'.time().rand(0,9999).'.'.$hz; // 本地文件路径
+
+
+            // 检查目标 URL 是否有效
+            if (!filter_var($base64_string, FILTER_VALIDATE_URL)) {
+                return '';
+            }
+
+            // 创建流上下文并设置超时时间为 5 秒
+            $context = stream_context_create([
+                'http' => [
+                    'timeout' => 5 // 设置超时时间为 5 秒
+                ]
+            ]);
+            // 获取文件内容
+            try{
+                $content = file_get_contents($base64_string, false, $context);
+            }catch (\Exception $e){
+                return '';
+            }
+
+            // 检查是否成功获取文件内容
+            if ($content === false) {
+                return '';
+            }
+            // 保存文件到本地目录
+            $result = file_put_contents($filePath, $content);
+            // 检查是否成功保存文件
+            if ($result === false) {
+                return '';
+            }
+
+        }else{
 // 将Base64字符串分割成数据和文件类型
-        list($type, $data) = explode(';', $base64_string);
-        list(,$hz) = explode('/',$type);
-        list(, $data)      = explode(',', $data);
+            list($type, $data) = explode(';', $base64_string);
+            list(,$hz) = explode('/',$type);
+            list(, $data)      = explode(',', $data);
 // 将Base64解码成二进制数据
-        $decodedData = base64_decode($data);
-        $filePath = $_SERVER['DOCUMENT_ROOT'].'/report/'.time().rand(0,9999).'.'.$hz; // 本地文件路径
-        $savePath = $_SERVER['HTTP_HOST'].'/report/'.time().rand(0,9999).'.'.$hz; // 本地文件路径
+            $decodedData = base64_decode($data);
+            $filePath = $_SERVER['DOCUMENT_ROOT'].'/report/'.time().rand(0,9999).'.'.$hz; // 本地文件路径
+            $savePath = $_SERVER['HTTP_HOST'].'/report/'.time().rand(0,9999).'.'.$hz; // 本地文件路径
 
 // 将数据写入到文件
-        file_put_contents($filePath, $decodedData);
+            file_put_contents($filePath, $decodedData);
+        }
         return $savePath;
     }
 
@@ -1329,4 +1371,95 @@ class PatientServies
         $data = $this->patientModel->getInpection($params);
         return $data;
     }
+
+    public function syncExam($params)
+    {
+        $study_id = $params['study_id'];
+        $studyUid = $params['studyUid'];
+        $exam = $this->patientModel->saveReportStudy($studyUid,$study_id);
+        return 'success';
+    }
+
+    public function getMedical($mpi)
+    {
+        $arr = $this->patientModel->getMedical($mpi);
+        return $arr;
+    }
+
+    public function getPatientExam($params)
+    {
+        $idCard = Gm::encrypt(Config::get('gm.key'),$params['id_card']);
+        $where = [];
+        $time = $params['time'] ?? '';
+        if(!empty($time))
+        {
+            $time = explode(',',$time);
+            $where = "CREATE_TIME BETWEEN '$time[0]' and '$time[1]'";
+        }
+        $patient = $this->patientModel->getPatientsByID_CARDNUM($idCard,$where);
+        $list = [];
+        foreach ($patient as $v)
+        {
+            $exam = $this->patientModel->getExam($v['PATIENT_CODE']);
+            $medical = $this->patientModel->getMedical($v['PATIENT_CODE']);
+            foreach ($exam as $value)
+            {
+                if(!empty($value))
+                {
+                    $value['AGE'] = $medical['AGE'];
+                    $value['GENDER'] = $medical['GENDER'];
+                    $value['PHONE'] = $v['PHONE'];
+                    $list[] = $value;
+                }
+            }
+        }
+        return $list;
+    }
+
+    public function getExamData($params)
+    {
+        $arr = $this->patientModel->getExamData($params['patient_code']);
+        return $arr;
+    }
+
+    public function getPatientLab($params)
+    {
+        $idCard = Gm::encrypt(Config::get('gm.key'),$params['id_card']);
+        $where = [];
+        $time = $params['time'] ?? '';
+        if(!empty($time))
+        {
+            $time = explode(',',$time);
+            $where = "CREATE_TIME BETWEEN '$time[0]' and '$time[1]'";
+        }
+        $patient = $this->patientModel->getPatientsByID_CARDNUM($idCard,$where);
+        $list = [];
+        foreach ($patient as $v)
+        {
+            $arr = [];
+            $lab = $this->patientModel->getInspect($v['PATIENT_CODE']);
+            $medical = $this->patientModel->getMedical($v['PATIENT_CODE']);
+            foreach ($lab as $value)
+            {
+                if(!empty($value))
+                {
+                    $value['AGE'] = $medical['AGE'];
+                    $value['GENDER'] = $medical['GENDER'];
+                    $value['PHONE'] = $v['PHONE'];
+                    $list[] = $value;
+                }
+                $list[] = $value;
+            }
+        }
+        return $list;
+    }
+
+    public function getLabData($params)
+    {
+        $inspect = $this->patientModel->getInspectReport($params['INSPECT_REPORT_CODE']);
+        $lab = $this->patientModel->getLab($params['INSPECT_REPORT_CODE']);
+        $inspect['child'] = $lab;
+        return $inspect;
+    }
+
 }

+ 1 - 1
jcjyhr/config/log.php

@@ -27,7 +27,7 @@ return [
             // 独立日志级别
             'apart_level'    => ['error','sql'],
             // 最大日志文件数量
-            'max_files'      => 0,
+            'max_files'      => 30,
             // 使用JSON格式记录
             'json'           => false,
             // 日志处理

+ 11 - 4
jcjyhr/extend/ba/Auth.php

@@ -57,7 +57,7 @@ class Auth
         $this->children  = [];
         $originAuthRules = $this->getOriginAuthRules($uid);
         foreach ($originAuthRules as $rule) {
-            $this->children[$rule['pid']][] = $rule;
+            $this->children[$rule['PID']][] = $rule;
         }
 
         // 没有根菜单规则
@@ -74,8 +74,15 @@ class Auth
     private function getChildren(array $rules): array
     {
         foreach ($rules as $key => $rule) {
-            if (array_key_exists($rule['id'], $this->children)) {
-                $rules[$key]['children'] = $this->getChildren($this->children[$rule['id']]);
+            if (array_key_exists($rule['ID'], $this->children)) {
+                $children = $this->children[$rule['ID']];
+                foreach ($children as $c=>$child) {
+                    foreach ($child as $a=>$b)
+                    {
+                        $children[$c][strtolower($a)] = $b;
+                    }
+                }
+                $rules[$key]['children'] = $children;
             }
         }
         return $rules;
@@ -155,7 +162,7 @@ class Auth
             $rules[] = "*";
         }
         foreach ($originAuthRules as $rule) {
-            $rules[$rule['id']] = strtolower($rule['name']);
+            $rules[$rule['ID']] = strtolower($rule['NAME']);
         }
         return array_unique($rules);
     }

+ 1 - 0
jcjyhr/route/route.php

@@ -22,6 +22,7 @@ Route::post('api/saveRecogResult', 'app\zskk\controller\Api@saveRecogResult');
 Route::post('basic-api/getRecogToken', 'app\zskk\controller\Api@getRecogToken');
 Route::post('api/getRecogCheck', 'app\zskk\controller\Api@getRecogCheck');
 Route::post('basic-api/getShareToken', 'app\zskk\controller\Api@getShareToken');
+Route::post('getPatientJCJYUrl', 'app\zskk\controller\Api@getPatientJCJYUrl');
 return [
 
 ];

+ 1 - 1
jcjyhr/vendor/topthink/think-orm/src/db/Builder.php

@@ -76,7 +76,7 @@ class Builder extends BaseBuilder
                 $item = $this->parseKey($query, $key);
 
                 $result[$item . '->' . $name] = 'json_set(' . $item . ', \'$.' . $name . '\', ' . $this->parseDataBind($query, $key . '->' . $name, $val, $bind) . ')';
-            } elseif (!str_contains($key, '.') && !in_array($key, $fields, true)) {
+            } elseif (!str_contains($key, '.') && !in_array(strtoupper($key), $fields, true)) {
                 if ($options['strict']) {
                     throw new Exception('fields not exists:[' . $key . ']');
                 }

+ 8 - 0
server/application/api/controller/test/TestController.php

@@ -91,6 +91,14 @@ class TestController extends Controller
 
 
     public function testOne(TestService $test) {
+        var_dump(1);die;
+        $url = "http://111.53.165.106:9605/zskk/patient/syncExams";
+        $data = [
+            'studyUid'=>'123asd123',
+            'study_id'=>'fghjkl'
+        ];
+        $a = $this->curlPost($url,$data);
+        var_dump($a);die;
         try{
             $a = (InstitutionModel::where('ids',1)->find());
 

+ 1 - 1
server/application/api/model/xz/XzModel.php

@@ -154,7 +154,7 @@ class XzModel extends ZskkDefaultModel {
 
     public function getInsFilmInfo($id)
     {
-        $info = InstitutionModel::where('id',$id)->field('film_price,charge_mode')->find();
+        $info = InstitutionModel::where('id',$id)->find();
         return $info;
     }
 

+ 8 - 0
server/application/api/servies/butt/ButtService.php

@@ -188,6 +188,14 @@ class ButtService extends ZskkDefaultService {
                 $this->butt->updatePatient($patient,$patientId);
                 $institution = $this->butt->getIns($exam['institution_id']);
                 Log::record('当前医院是否发送短信'.$institution['patient_sms']);
+
+                $url = "http://111.53.165.106:9605/zskk/patient/syncExams";
+                $data = [
+                    'studyUid'=>$exam['STUDYUID'],
+                    'study_id'=>$exam['STUDY_ID']
+                ];
+                $this->curlPost($url,$data);
+
 //                if($institution['patient_sms'] == 1)
 //                {
 //                    log::record('可以发送短信,查看检查id'.$exam['id'].'查看study是'.$exam['study_id']);

+ 30 - 39
server/application/api/servies/xz/XzService.php

@@ -291,30 +291,7 @@ class XzService extends ZskkDefaultService {
             return true;
         }*/
         $time1 = time();
-        if($params['institution_id'] == '43600001')
-        {
-            $exam = $this->xz->checkIsSet($params['study_id'],$params['studyuid'],$params['institution_id']);
-        }else{
-            $exam = $this->xz->checkIsSet($params['study_id']);
-        }
-        if($params['institution_id'] == '71900004')
-        {
-            $params['name'] = str_replace('=','',$params['name']);
-        }
-        if($params['institution_id'] == '16100014')
-        {
-            if($params['exam_class'] == 'RF')
-            {
-                $params['exam_class'] = 'DX';
-            }
-        }
-        if($params['institution_id'] == '71900007' || $params['institution_id'] == '71900008')
-        {
-            if($params['exam_class'] == 'CR')
-            {
-                $params['exam_class'] = 'DR';
-            }
-        }
+        $exam = $this->xz->checkIsSet($params['study_id']);
         if($exam){
             //存在则修改
             $id = $exam['id'];
@@ -385,25 +362,13 @@ class XzService extends ZskkDefaultService {
             }else{
                 $this->xz->updateExam($id,$update);
             }
-        }
-        else{
+            $studyuid = $exam['STUDYUID'];
+            $acc_num = $exam['ACCESSION_NUM'];
+        }else{
             $name = $params['name'] ?? null;
             $hopitalized_no = null;
             $bed_no = null;
             $exam_project = null;
-            if($params['institution_id'] == '27400005') {
-                $cache = $this->xz->getCache("worklist_".$params['patient_num']);
-                if(!empty($cache))
-                    {
-                    $key = "worklist_".$params['patient_num'];
-                    $d = json_decode($cache, true);
-                    Log::record('东民二院;存储key为'.$key.';存储内容为'.$cache);
-                    $name = $d['NAME'];
-                    $hopitalized_no = $d['zyh'];
-                    $bed_no = $d['cwh'];
-                    $exam_project = $d['PARTOFCHECK'];
-                }
-            }
             $uid = $this->xz->getStudyUid($params['study_id']);
             if(empty($uid))
             {
@@ -414,6 +379,8 @@ class XzService extends ZskkDefaultService {
             {
                 $body_part_text = $this->xz->getBodyText($params['body_part']);
             }
+            $studyuid = $uid;
+            $acc_num = $params['accession_num'];
             $data = [
                 'id'=>UUIDUtils::uuid(),
                 'patient_id'=>$params['patient_id'],
@@ -505,12 +472,36 @@ class XzService extends ZskkDefaultService {
 //                log::record('没有这个医院id'.$params['institution_id'] ?? null);
 //            }
         }
+        $this->syncHr($params['study_id'],$studyuid,$acc_num);
         $time2 = time();
         $time = $time2-$time1;
         $this->xz->insertSpecialLog($time,'xz/create');
         return $id;
     }
 
+    public function syncHr($study_id, $studyuid, $accession_num)
+    {
+        if(empty($study_id))
+        {
+            return '';
+        }else{
+            if(!empty($studyuid))
+            {
+                $hr = Db::query("SELECT ID FROM HR.EXAM_REPORT WHERE STUDYUID='$studyuid'");
+                if(!empty($hr))
+                {
+                    Db::query("UPDATE HR.EXAM_REPORT SET STUDY_ID='$study_id' WHERE STUDYUID='$studyuid'");
+                }else{
+                    $hr2 = Db::query("SELECT ID FROM HR.EXAM_REPORT WHERE ACCESSION_NUM='$accession_num'");
+                    if(!empty($hr2))
+                    {
+                        Db::query("UPDATE HR.EXAM_REPORT SET STUDY_ID='$study_id' WHERE ACCESSION_NUM='$accession_num'");
+                    }
+                }
+            }
+        }
+    }
+
     //医院胶片流水
     public function save_ins_film_water($exam_id,$order_type,$money,$institution)
     {

+ 1 - 1
server/composer.json

@@ -17,7 +17,7 @@
     ],
     "require": {
         "ext-json": "*",
-        "php": ">=7.0",
+        "php": ">=8.0",
         "topthink/framework": "5.1.*",
         "topthink/think-testing": "2.0.*",
         "predis/predis": "^1.1",

+ 1 - 1
server/public/data.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <data>
-    <hostname>192.168.0.44</hostname>
+    <hostname>10.200.199.44</hostname>
     <database>PACS</database>
     <username>PACS</username>
     <password>Pacs@1234</password>

+ 1 - 1
server/runtime/cache/think/20/7451d8092dbe54df9ca47c54527c19.php

@@ -1,4 +1,4 @@
 <?php
 //000000043200
  exit();?>
-think_serialize:a:16:{i:0;a:1:{s:6:"numrow";i:1;}i:1;a:1:{s:6:"numrow";i:2;}i:2;a:1:{s:6:"numrow";i:3;}i:3;a:1:{s:6:"numrow";i:4;}i:4;a:1:{s:6:"numrow";i:5;}i:5;a:1:{s:6:"numrow";i:6;}i:6;a:1:{s:6:"numrow";i:7;}i:7;a:1:{s:6:"numrow";i:8;}i:8;a:1:{s:6:"numrow";i:9;}i:9;a:1:{s:6:"numrow";i:10;}i:10;a:1:{s:6:"numrow";i:11;}i:11;a:1:{s:6:"numrow";i:12;}i:12;a:1:{s:6:"numrow";i:13;}i:13;a:1:{s:6:"numrow";i:14;}i:14;a:1:{s:6:"numrow";i:15;}i:15;a:1:{s:6:"numrow";i:16;}}
+think_serialize:a:16:{i:0;a:2:{s:4:"name";s:3:"BFS";s:6:"numrow";i:1;}i:1;a:2:{s:4:"name";s:2:"CR";s:6:"numrow";i:2;}i:2;a:2:{s:4:"name";s:2:"CT";s:6:"numrow";i:3;}i:3;a:2:{s:4:"name";s:2:"DR";s:6:"numrow";i:4;}i:4;a:2:{s:4:"name";s:2:"DX";s:6:"numrow";i:5;}i:5;a:2:{s:4:"name";s:3:"ECG";s:6:"numrow";i:6;}i:6;a:2:{s:4:"name";s:2:"ES";s:6:"numrow";i:7;}i:7;a:2:{s:4:"name";s:2:"LS";s:6:"numrow";i:8;}i:8;a:2:{s:4:"name";s:2:"MG";s:6:"numrow";i:9;}i:9;a:2:{s:4:"name";s:2:"MR";s:6:"numrow";i:10;}i:10;a:2:{s:4:"name";s:2:"OT";s:6:"numrow";i:11;}i:11;a:2:{s:4:"name";s:5:"PETCT";s:6:"numrow";i:12;}i:12;a:2:{s:4:"name";s:2:"PT";s:6:"numrow";i:13;}i:13;a:2:{s:4:"name";s:2:"RF";s:6:"numrow";i:14;}i:14;a:2:{s:4:"name";s:2:"US";s:6:"numrow";i:15;}i:15;a:2:{s:4:"name";s:2:"XA";s:6:"numrow";i:16;}}

+ 14 - 0
server/vendor/topthink/think-oracle/src/W7Connection.php

@@ -333,7 +333,21 @@ class W7Connection extends BaseConnection
 
         return $resultSet;
     }
+    /**
+     * 获取缓存数据
+     * @access protected
+     * @param  Query     $query   查询对象
+     * @param  mixed     $cache   缓存设置
+     * @param  array     $options 缓存
+     * @return mixed
+     */
+    protected function getCacheData(Query $query, $cache, $data, &$key = null)
+    {
+        // 判断查询缓存
+        $key = is_string($cache['key']) ? $cache['key'] : $this->getCacheKey($query, $data);
 
+        return Container::get('cache')->get($key);
+    }
 
     /**
      * 执行查询 返回数据集

+ 1 - 1
zskk_new_manage/.env

@@ -7,7 +7,7 @@ debug = true
 trace = true
 
 [database]
- hostname = 192.168.0.44
+ hostname = 10.200.199.44
  database = PACS
  username = PACS
  password = Pacs@1234