Browse Source

Merge branch 'master' of shine/esb_chenweifeng into master

esb 9 years ago
parent
commit
79bac56369
100 changed files with 3438 additions and 4867 deletions
  1. 8 5
      .idea/artifacts/Hos_Resource_Mini_Helper_war_exploded.xml
  2. 4 6
      .idea/compiler.xml
  3. 1 0
      .idea/encodings.xml
  4. 0 13
      .idea/libraries/Maven__com_yihu_core_ehr_dbhelper_1_0_7.xml
  5. 0 13
      .idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_2_2.xml
  6. 0 13
      .idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_2_2.xml
  7. 1 1
      .idea/misc.xml
  8. 0 1
      .idea/modules.xml
  9. 1035 562
      .idea/workspace.xml
  10. 15 15
      EHR-resource/src/main/java/com/yihu/ehr/datacollect/service/intf/IDatacollectManager.java
  11. 3 1
      Hos-Framework/Hos-Framework.iml
  12. 309 35
      Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/SQLGeneralDAO.java
  13. 28 0
      Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/XSQLGeneralDAO.java
  14. 128 27
      Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/ErrorCode.java
  15. 5 5
      Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/TreeView.java
  16. 3 4
      Hos-Resource-Mini-Update/Hos-Resource-Mini-Update.iml
  17. 7 5
      Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/UpdateThread.java
  18. 1 1
      Hos-Resource-Mini-Update/src/main/resources/config/serviceAlive.bat
  19. 5 3
      Hos-Resource-Mini-Update/target/classes/config/threadConfig.properties
  20. 3 4
      Hos-Resource-Mini-helper/Hos-Resource-Mini-Helper.iml
  21. 8 6
      Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/LogThread.java
  22. 12 0
      Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/SQLThread.java
  23. 3 3
      Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties
  24. 6 1
      Hos-Resource-Mini/pom.xml
  25. 1 34
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/ApplicationStart.java
  26. 9 224
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/config/SysConfig.java
  27. 1 0
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/config/ThreadConfig.java
  28. 20 0
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/constants/Constants.java
  29. 36 2
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/controller/SystemController.java
  30. 1 0
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterDict.java
  31. 1 1
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterMetaData.java
  32. 1 1
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/DatacollectManager.java
  33. 108 78
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/SystemManager.java
  34. 40 8
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/CrawlerManager.java
  35. 14 10
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DBOrigin.java
  36. 15 56
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DataCollectDispatcher.java
  37. 1 1
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/intf/ISystemManager.java
  38. 12 51
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/patient/PatientCDAUpload.java
  39. 54 157
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/standard/StandardManager.java
  40. 1 5
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/CrawlerSupplyThread.java
  41. 4 6
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/CrawlerThread.java
  42. 1 0
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/StandardUpdateThread.java
  43. 58 29
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/file/FileUtil.java
  44. 0 58
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HAHttpClient.java
  45. 0 172
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HAHttpClientImpl.java
  46. 0 71
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HAHttpsClient.java
  47. 0 241
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HOPClient.java
  48. 0 22
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HopHostnameVerifier.java
  49. 0 408
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HttpClientUtil.java
  50. 0 56
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HttpsInitialise.java
  51. 0 20
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/IHAHttpClient.java
  52. 0 20
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/Response.java
  53. 271 37
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/EsbHttp.java
  54. 38 55
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpClientUtil.java
  55. 25 6
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpHelper.java
  56. 2 2
      Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/Response.java
  57. 5 7
      Hos-Resource-Mini/src/main/resources/config/crawler.properties
  58. 5 2
      Hos-Resource-Mini/src/main/resources/config/http.properties
  59. 0 8
      Hos-Resource-Mini/src/main/resources/config/sys.config.xml
  60. 1 1
      Hos-Resource-Mini/src/main/resources/log4j2.xml
  61. 3 4
      Hos-Resource-Mini/src/main/resources/spring/applicationContext.xml
  62. 2 1
      Hos-Resource-Mini/src/main/webapp/WEB-INF/jsp/common/indexJs.jsp
  63. 2 2
      Hos-Resource-Mini/src/main/webapp/WEB-INF/jsp/system/dataSourceJs.jsp
  64. 15 11
      Hos-Resource-Mini/src/main/webapp/WEB-INF/web.xml
  65. 2 2
      Hos-resource/Hos-Resource.iml
  66. 6 6
      Hos-resource/src/main/java/com/yihu/ehr/datacollect/controller/DataCollectController.java
  67. 6 4
      Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectManager.java
  68. 4 4
      Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectService.java
  69. 110 90
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterController.java
  70. 61 65
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterVersionController.java
  71. 40 49
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/PublisherController.java
  72. 44 55
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeController.java
  73. 85 83
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDatasetController.java
  74. 62 63
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDictController.java
  75. 73 72
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDictEntryController.java
  76. 69 69
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeMetadataController.java
  77. 39 51
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeVersionController.java
  78. 44 56
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardController.java
  79. 57 61
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardVersionController.java
  80. 70 70
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDatasetController.java
  81. 71 69
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDictController.java
  82. 76 74
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDictEntryController.java
  83. 98 88
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdMetadataController.java
  84. 0 79
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterDatasetModel.java
  85. 0 115
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterDictEntryResultDetailModel.java
  86. 0 79
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterDictModel.java
  87. 0 97
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterDictentryModel.java
  88. 0 124
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterMetadataModel.java
  89. 0 142
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/ApiMetadataResultDetailModel.java
  90. 0 109
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/StandardModel.java
  91. 0 78
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/StandardResultDetailModel.java
  92. 0 81
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/StdDataSetModel.java
  93. 0 61
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/StdDictionaryEntryModel.java
  94. 0 72
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/StdDictionaryModel.java
  95. 0 144
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/StdMetaDataModel.java
  96. 59 46
      Hos-resource/src/main/java/com/yihu/ehr/std/service/StdService.java
  97. 16 9
      Hos-resource/src/main/java/com/yihu/ehr/std/service/intf/IStdService.java
  98. 6 6
      Hos-resource/src/main/resources/resource.properties
  99. 8 3
      Hos-resource/src/main/resources/spring/applicationContext.xml
  100. 0 0
      Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJob.jsp

+ 8 - 5
.idea/artifacts/Hos_Resource_Mini_Helper_war_exploded.xml

@ -1,6 +1,6 @@
<component name="ArtifactManager">
  <artifact type="exploded-war" name="Hos-Resource-Mini-Helper:war exploded">
    <output-path>$PROJECT_DIR$/out/artifacts/Hos_Resource_Mini_Helper_war_exploded</output-path>
    <output-path>$PROJECT_DIR$/Hos-Resource-Mini-helper/target/Hos-Resource-Mini-Helper-1.0-SNAPSHOT</output-path>
    <root id="root">
      <element id="directory" name="WEB-INF">
        <element id="directory" name="classes">
@ -12,16 +12,15 @@
          <element id="library" level="project" name="Maven: com.oracle:ojdbc14:10.2.0.3.0" />
          <element id="library" level="project" name="Maven: org.xerial:sqlite-jdbc:3.8.11.2" />
          <element id="library" level="project" name="Maven: net.sf.json-lib:json-lib:2.4" />
          <element id="library" level="project" name="Maven: commons-collections:commons-collections:3.2.1" />
          <element id="library" level="project" name="Maven: commons-lang:commons-lang:2.5" />
          <element id="library" level="project" name="Maven: commons-logging:commons-logging:1.1.1" />
          <element id="library" level="project" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" />
          <element id="library" level="project" name="Maven: org.json:json:20151123" />
          <element id="library" level="project" name="Maven: commons-beanutils:commons-beanutils:1.9.2" />
          <element id="library" level="project" name="Maven: commons-logging:commons-logging:1.1.1" />
          <element id="library" level="project" name="Maven: commons-collections:commons-collections:3.2.1" />
          <element id="library" level="project" name="Maven: commons-codec:commons-codec:1.10" />
          <element id="library" level="project" name="Maven: org.apache.commons:commons-dbcp2:2.1" />
          <element id="library" level="project" name="Maven: org.apache.commons:commons-pool2:2.3" />
          <element id="library" level="project" name="Maven: commons-configuration:commons-configuration:1.10" />
          <element id="library" level="project" name="Maven: commons-lang:commons-lang:2.6" />
          <element id="library" level="project" name="Maven: commons-dbutils:commons-dbutils:1.6" />
          <element id="library" level="project" name="Maven: org.springframework:spring-aop:4.1.8.RELEASE" />
          <element id="library" level="project" name="Maven: aopalliance:aopalliance:1.0" />
@ -43,6 +42,7 @@
          <element id="library" level="project" name="Maven: org.apache.logging.log4j:log4j-core:2.4.1" />
          <element id="library" level="project" name="Maven: org.apache.logging.log4j:log4j-api:2.4.1" />
          <element id="library" level="project" name="Maven: log4j:log4j:1.2.17" />
          <element id="library" level="project" name="Maven: javax.servlet:servlet-api:2.5" />
          <element id="library" level="project" name="Maven: jstl:jstl:1.2" />
          <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-core:2.4.6" />
          <element id="library" level="project" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.4.6" />
@ -89,6 +89,9 @@
          <element id="library" level="project" name="Maven: net.lingala.zip4j:zip4j:1.3.2" />
        </element>
      </element>
      <element id="directory" name="META-INF">
        <element id="file-copy" path="$PROJECT_DIR$/Hos-Resource-Mini-helper/target/Hos-Resource-Mini-Helper-1.0-SNAPSHOT/META-INF/MANIFEST.MF" />
      </element>
      <element id="javaee-facet-resources" facet="Hos-Resource-Mini-Helper/web/Web" />
    </root>
  </artifact>

+ 4 - 6
.idea/compiler.xml

@ -26,7 +26,7 @@
        <module name="resource-rest" />
      </profile>
      <profile default="false" name="Annotation profile for Hos-Resource-Mini-Helper" enabled="true">
        <sourceOutputDir name="target/generated-sources/annotations" />
        <sourceOutputDir name="target\generated-sources\annotations" />
        <sourceTestOutputDir name="target\generated-test-sources\test-annotations" />
        <outputRelativeToContentRoot value="true" />
        <processorPath useClasspath="true" />
@ -40,25 +40,23 @@
        <module name="Hos-Resource-Mini" />
      </profile>
      <profile default="false" name="Annotation profile for Hos-Resource-Mini-Update" enabled="true">
        <sourceOutputDir name="target/generated-sources/annotations" />
        <sourceOutputDir name="target\generated-sources\annotations" />
        <sourceTestOutputDir name="target\generated-test-sources\test-annotations" />
        <outputRelativeToContentRoot value="true" />
        <processorPath useClasspath="true" />
        <module name="Hos-Resource-Mini-Update" />
      </profile>
      <profile default="false" name="Annotation profile for Hos-Resource" enabled="true">
        <sourceOutputDir name="target/generated-sources/annotations" />
        <sourceOutputDir name="target\generated-sources\annotations" />
        <sourceTestOutputDir name="target\generated-test-sources\test-annotations" />
        <outputRelativeToContentRoot value="true" />
        <processorPath useClasspath="true" />
        <module name="Hos-Resource" />
      </profile>
      <profile default="false" name="Annotation profile for EHR-Resource" enabled="true">
        <sourceOutputDir name="target/generated-sources/annotations" />
        <sourceOutputDir name="target\generated-sources\annotations" />
        <sourceTestOutputDir name="target\generated-test-sources\test-annotations" />
        <outputRelativeToContentRoot value="true" />
        <processorPath useClasspath="true" />
        <module name="EHR-Resource" />
      </profile>
    </annotationProcessing>
    <bytecodeTargetLevel>

+ 1 - 0
.idea/encodings.xml

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="Encoding">
    <file url="file://$PROJECT_DIR$/EHR-resource/src/main/java/com/yihu/ehr/datacollect/service/intf/IDatacollectManager.java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/Hos-Resource-Rest" charset="UTF-8" />
    <file url="PROJECT" charset="UTF-8" />
  </component>

+ 0 - 13
.idea/libraries/Maven__com_yihu_core_ehr_dbhelper_1_0_7.xml

@ -1,13 +0,0 @@
<component name="libraryTable">
  <library name="Maven: com.yihu.core:ehr-dbhelper:1.0.7">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/com/yihu/core/ehr-dbhelper/1.0.7/ehr-dbhelper-1.0.7.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/com/yihu/core/ehr-dbhelper/1.0.7/ehr-dbhelper-1.0.7-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/com/yihu/core/ehr-dbhelper/1.0.7/ehr-dbhelper-1.0.7-sources.jar!/" />
    </SOURCES>
  </library>
</component>

+ 0 - 13
.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_2_2.xml

@ -1,13 +0,0 @@
<component name="libraryTable">
  <library name="Maven: org.apache.httpcomponents:httpclient:4.2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.2.2/httpclient-4.2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.2.2/httpclient-4.2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.2.2/httpclient-4.2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>

+ 0 - 13
.idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_2_2.xml

@ -1,13 +0,0 @@
<component name="libraryTable">
  <library name="Maven: org.apache.httpcomponents:httpmime:4.2.2">
    <CLASSES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.2.2/httpmime-4.2.2.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.2.2/httpmime-4.2.2-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.2.2/httpmime-4.2.2-sources.jar!/" />
    </SOURCES>
  </library>
</component>

+ 1 - 1
.idea/misc.xml

@ -16,8 +16,8 @@
        <option value="$PROJECT_DIR$/Hos-Framework/pom.xml" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-Update/pom.xml" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-helper/pom.xml" />
        <option value="$PROJECT_DIR$/EHR-resource/pom.xml" />
        <option value="$PROJECT_DIR$/Hos-Resource-Rest/pom.xml" />
        <option value="$PROJECT_DIR$/Hos-resource/pom.xml" />
      </list>
    </option>
  </component>

+ 0 - 1
.idea/modules.xml

@ -2,7 +2,6 @@
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/EHR-resource/EHR-Resource.iml" filepath="$PROJECT_DIR$/EHR-resource/EHR-Resource.iml" />
      <module fileurl="file://$PROJECT_DIR$/Hos-Framework/Hos-Framework.iml" filepath="$PROJECT_DIR$/Hos-Framework/Hos-Framework.iml" />
      <module fileurl="file://$PROJECT_DIR$/Hos-resource/Hos-Resource.iml" filepath="$PROJECT_DIR$/Hos-resource/Hos-Resource.iml" />
      <module fileurl="file://$PROJECT_DIR$/Hos-Resource-Mini/Hos-Resource-Mini.iml" filepath="$PROJECT_DIR$/Hos-Resource-Mini/Hos-Resource-Mini.iml" />

+ 1035 - 562
.idea/workspace.xml

@ -1,7 +1,176 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="71c492ef-4e6f-4797-b60c-10cac8f49c92" name="Default" comment="上传https工具类 代码" />
    <list default="true" id="71c492ef-4e6f-4797-b60c-10cac8f49c92" name="Default" comment="上传https工具类 代码">
      <change type="DELETED" beforePath="E:\GIT\new_hos\.idea\libraries\Maven__com_yihu_core_ehr_dbhelper_1_0_7.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\.idea\libraries\Maven__org_apache_httpcomponents_httpclient_4_2_2.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\.idea\libraries\Maven__org_apache_httpcomponents_httpmime_4_2_2.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\HAHttpClient.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\HAHttpClientImpl.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\HAHttpsClient.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\HOPClient.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\HopHostnameVerifier.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\HttpClientUtil.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\HttpsInitialise.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\IHAHttpClient.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-Resource-Mini\src\main\java\com.yihu.ehr\util\http\Response.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\AdapterDatasetModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\AdapterDictEntryResultDetailModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\AdapterDictModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\AdapterDictentryModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\AdapterMetadataModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\ApiMetadataResultDetailModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\StandardModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\StandardResultDetailModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\StdDataSetModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\StdDictionaryEntryModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\StdDictionaryModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\standard\model\StdMetaDataModel.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\webapp\WEB-INF\ehr\jsp\resource\resourceregister\resourceBrowseCss.jsp" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\webapp\WEB-INF\ehr\jsp\resource\resourceregister\rsResourceManageCss.jsp" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\src\main\webapp\WEB-INF\ehr\jsp\system\user\userCss.jsp" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\cert\tomcat.keystore" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\config\dbhelper.properties" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\config\quartz.properties" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\definedtag\BlockTag.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\definedtag\OverwriteTag.java" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\ehr.cfg.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsAppResource.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsAppResourceDetail.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsDatasourceDataset.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsDemensionCategory.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsDimension.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsJobConfig.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsJobDataset.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsJobLog.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsJobLogDetail.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsResource.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsResourceCategory.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsResourceDataset.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsResourceDimension.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsResourceMetadata.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsResourceRest.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsResourceRestDetail.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\RsRoleDimension.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemApp.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemArea.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemDatasource.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemDict.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemDictList.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemMenu.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemMenuAction.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemOrganization.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemParam.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemRole.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemRoleAction.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemRoleMenu.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\hbm\resource\SystemUser.hbm.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\log4j\log4j2.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\redisconfig.properties" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\resource.properties" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\spring\applicationContext.xml" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\text\error.zh_CN.properties" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\text\message_en_US.properties" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\text\message_zh_CN.properties" afterPath="" />
      <change type="DELETED" beforePath="E:\GIT\new_hos\Hos-resource\target\classes\text\message_zh_CN.properties.orig" afterPath="" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterDict.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterDict.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterMetaData.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterMetaData.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterVersionController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterVersionController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/ApplicationStart.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/ApplicationStart.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/constants/Constants.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/constants/Constants.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/CrawlerManager.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/CrawlerManager.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/CrawlerSupplyThread.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/CrawlerSupplyThread.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/CrawlerThread.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/CrawlerThread.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DBOrigin.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DBOrigin.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/datacollect/controller/DataCollectController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/datacollect/controller/DataCollectController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DataCollectDispatcher.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DataCollectDispatcher.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/DatacollectManager.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/DatacollectManager.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectManager.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectManager.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectService.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectService.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/ErrorCode.java" afterPath="$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/ErrorCode.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/EsbHttp.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/EsbHttp.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/file/FileUtil.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/file/FileUtil.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Framework/Hos-Framework.iml" afterPath="$PROJECT_DIR$/Hos-Framework/Hos-Framework.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini-helper/Hos-Resource-Mini-Helper.iml" afterPath="$PROJECT_DIR$/Hos-Resource-Mini-helper/Hos-Resource-Mini-Helper.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini-Update/Hos-Resource-Mini-Update.iml" afterPath="$PROJECT_DIR$/Hos-Resource-Mini-Update/Hos-Resource-Mini-Update.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/Hos-Resource.iml" afterPath="$PROJECT_DIR$/Hos-resource/Hos-Resource.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/artifacts/Hos_Resource_Mini_Helper_war_exploded.xml" afterPath="$PROJECT_DIR$/.idea/artifacts/Hos_Resource_Mini_Helper_war_exploded.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpClientUtil.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpClientUtil.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpHelper.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpHelper.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/EHR-resource/src/main/java/com/yihu/ehr/datacollect/service/intf/IDatacollectManager.java" afterPath="$PROJECT_DIR$/EHR-resource/src/main/java/com/yihu/ehr/datacollect/service/intf/IDatacollectManager.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/std/service/intf/IStdService.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/std/service/intf/IStdService.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/intf/ISystemManager.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/intf/ISystemManager.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/LogThread.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/LogThread.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/patient/PatientCDAUpload.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/patient/PatientCDAUpload.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/PublisherController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/PublisherController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/Response.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/Response.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/SQLGeneralDAO.java" afterPath="$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/SQLGeneralDAO.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/SQLThread.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/SQLThread.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDatasetController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDatasetController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDictController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDictController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDictEntryController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDictEntryController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeMetadataController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeMetadataController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeVersionController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeVersionController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/standard/StandardManager.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/standard/StandardManager.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/StandardUpdateThread.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/StandardUpdateThread.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardVersionController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardVersionController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDatasetController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDatasetController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDictController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDictController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDictEntryController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDictEntryController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdMetadataController.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdMetadataController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/std/service/StdService.java" afterPath="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/std/service/StdService.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/config/SysConfig.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/config/SysConfig.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/controller/SystemController.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/controller/SystemController.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/SystemManager.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/SystemManager.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/config/ThreadConfig.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/config/ThreadConfig.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/TreeView.java" afterPath="$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/TreeView.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/UpdateThread.java" afterPath="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/UpdateThread.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/XSQLGeneralDAO.java" afterPath="$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/XSQLGeneralDAO.java" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/adapterCustomizeJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/adapterCustomizeJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/adapterDetailJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/adapterDetailJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/appIndexJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/appIndexJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/spring/applicationContext.xml" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/spring/applicationContext.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/resources/spring/applicationContext.xml" afterPath="$PROJECT_DIR$/Hos-resource/src/main/resources/spring/applicationContext.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/compiler.xml" afterPath="$PROJECT_DIR$/.idea/compiler.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/configurationJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/configurationJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/config/crawler.properties" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/config/crawler.properties" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/webapp/WEB-INF/jsp/system/dataSourceJs.jsp" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/webapp/WEB-INF/jsp/system/dataSourceJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJob.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJob.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJobJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJobJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/encodings.xml" afterPath="$PROJECT_DIR$/.idea/encodings.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/config/http.properties" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/config/http.properties" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/webapp/WEB-INF/jsp/common/indexJs.jsp" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/webapp/WEB-INF/jsp/common/indexJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/indexJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/indexJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/indexJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/indexJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/log4j2.xml" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/log4j2.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/menu/menu.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/menu/menu.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/modules.xml" afterPath="$PROJECT_DIR$/.idea/modules.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/pom.xml" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/pom.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/publisherJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/publisherJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/resources/resource.properties" afterPath="$PROJECT_DIR$/Hos-resource/src/main/resources/resource.properties" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcebrowse/resourceJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcebrowse/resourceJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceAuthorizeJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceAuthorizeJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resources/config/serviceAlive.bat" afterPath="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resources/config/serviceAlive.bat" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/standardDetailJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/standardDetailJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/config/sys.config.xml" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/config/sys.config.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini-Update/target/classes/config/threadConfig.properties" afterPath="$PROJECT_DIR$/Hos-Resource-Mini-Update/target/classes/config/threadConfig.properties" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties" afterPath="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/trackJobJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/trackJobJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/dataset/updateDatasetJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/dataset/updateDatasetJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/dict/updateDictEntryJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/dict/updateDictEntryJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/dict/updateDictJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/dict/updateDictJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/dataset/updateMetadataJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/dataset/updateMetadataJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/user.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/user.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/userJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/userJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/versionDetailJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/adapterplan/versionDetailJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/versionDetailJs.jsp" afterPath="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/standard/integration/versionDetailJs.jsp" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/webapp/WEB-INF/web.xml" afterPath="$PROJECT_DIR$/Hos-Resource-Mini/src/main/webapp/WEB-INF/web.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
    </list>
    <ignored path="hos.iws" />
    <ignored path=".idea/workspace.xml" />
    <ignored path="$PROJECT_DIR$/Hos-Framework/target/" />
@ -23,119 +192,113 @@
  <component name="CreatePatchCommitExecutor">
    <option name="PATCH_PATH" value="" />
  </component>
  <component name="DatabaseView">
    <option name="FLATTEN" value="false" />
    <option name="GROUP_BY_TYPE" value="true" />
    <option name="SORT_CHILDREN" value="false" />
    <option name="SHOW_TABLE_CONSTRAINTS" value="true" />
  </component>
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  <component name="FavoritesManager">
    <favorites_list name="hos" />
  </component>
  <component name="FileEditorManager">
    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
      <file leaf-file-name="threadConfig.properties" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties">
    <leaf>
      <file leaf-file-name="indexJs.jsp" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="2" column="42" selection-start-line="2" selection-start-column="42" selection-end-line="2" selection-end-column="42" />
            <state vertical-scroll-proportion="-2.0357144">
              <caret line="78" column="93" selection-start-line="78" selection-start-column="86" selection-end-line="78" selection-end-column="93" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="threadConfig.properties" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resources/config/threadConfig.properties">
      <file leaf-file-name="RsCategoryController.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/controller/RsCategoryController.java">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="16" column="14" selection-start-line="16" selection-start-column="14" selection-end-line="16" selection-end-column="14" />
              <caret line="43" column="50" selection-start-line="43" selection-start-column="50" selection-end-line="43" selection-end-column="50" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="ThreadConfig.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/config/ThreadConfig.java">
      <file leaf-file-name="RsCategoryServiceImpl.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/service/impl/RsCategoryServiceImpl.java">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="19" column="72" selection-start-line="19" selection-start-column="42" selection-end-line="19" selection-end-column="72" />
              <caret line="27" column="35" selection-start-line="27" selection-start-column="29" selection-end-line="27" selection-end-column="38" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="UpdateThread.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/UpdateThread.java">
      <file leaf-file-name="rsCategoryInfoDialogJs.jsp" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/category/rsCategoryInfoDialogJs.jsp">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="128" column="36" selection-start-line="128" selection-start-column="36" selection-end-line="128" selection-end-column="36" />
            <state vertical-scroll-proportion="-19.0">
              <caret line="46" column="17" selection-start-line="46" selection-start-column="17" selection-end-line="46" selection-end-column="17" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="ThreadManage.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/ThreadManage.java">
      <file leaf-file-name="rsCategoryManageJs.jsp" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/category/rsCategoryManageJs.jsp">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
            <state vertical-scroll-proportion="2.2142856">
              <caret line="70" column="37" selection-start-line="70" selection-start-column="37" selection-end-line="70" selection-end-column="37" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="SQLThread.java" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/SQLThread.java">
      <file leaf-file-name="rsResourceAuthorize.jsp" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceAuthorize.jsp">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="-1.2666667">
              <caret line="83" column="13" selection-start-line="83" selection-start-column="13" selection-end-line="83" selection-end-column="13" />
            <state vertical-scroll-proportion="-10.178572">
              <caret line="21" column="66" selection-start-line="21" selection-start-column="39" selection-end-line="21" selection-end-column="66" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="ApplicationStart.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/common/ApplicationStart.java">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="32" column="8" selection-start-line="32" selection-start-column="8" selection-end-line="32" selection-end-column="8" />
              <folding>
                <element signature="imports" expanded="false" />
                <element signature="e#4368#4369#0" expanded="false" />
                <element signature="e#4453#4454#0" expanded="false" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="LogThread.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/LogThread.java">
      <file leaf-file-name="rsResourceAuthorizeJs.jsp" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceAuthorizeJs.jsp">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="16" column="9" selection-start-line="16" selection-start-column="9" selection-end-line="16" selection-end-column="9" />
            <state vertical-scroll-proportion="0.766129">
              <caret line="103" column="21" selection-start-line="103" selection-start-column="21" selection-end-line="103" selection-end-column="21" />
              <folding>
                <element signature="imports" expanded="false" />
                <element signature="e#5194#5195#0" expanded="false" />
                <element signature="e#5245#5246#0" expanded="false" />
                <marker date="1460344250786" expanded="true" signature="8101:8112" placeholder="..." />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="pom.xml" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/pom.xml">
      <file leaf-file-name="resourceJs.jsp" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcebrowse/resourceJs.jsp">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
            <state vertical-scroll-proportion="-14.928572">
              <caret line="22" column="25" selection-start-line="22" selection-start-column="25" selection-end-line="22" selection-end-column="25" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="ApplicationStart.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/common/ApplicationStart.java">
      <file leaf-file-name="ligerOverwrite.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerOverwrite.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="34" column="8" selection-start-line="34" selection-start-column="8" selection-end-line="34" selection-end-column="8" />
              <caret line="388" column="8" selection-start-line="388" selection-start-column="8" selection-end-line="388" selection-end-column="8" />
              <folding>
                <element signature="imports" expanded="false" />
                <element signature="e#6164#6165#0" expanded="false" />
                <element signature="e#6249#6250#0" expanded="false" />
                <marker date="1458268371445" expanded="true" signature="21464:21476" placeholder="..." />
                <marker date="1458268371445" expanded="true" signature="40222:40248" placeholder="..." />
                <marker date="1458268371445" expanded="true" signature="40808:40819" placeholder="..." />
                <marker date="1458268371445" expanded="true" signature="46139:46147" placeholder="..." />
                <marker date="1458268371445" expanded="true" signature="47760:47769" placeholder="..." />
                <marker date="1458268371445" expanded="true" signature="53417:53432" placeholder="..." />
                <marker date="1458268371445" expanded="true" signature="53570:53585" placeholder="..." />
              </folding>
            </state>
          </provider>
@ -143,6 +306,13 @@
      </file>
    </leaf>
  </component>
  <component name="FileTemplateManagerImpl">
    <option name="RECENT_TEMPLATES">
      <list>
        <option value="Jsp File" />
      </list>
    </option>
  </component>
  <component name="Git.Settings">
    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
  </component>
@ -154,19 +324,57 @@
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resource/config/threadConfig.properties" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/UpdateThread.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/SQLThread.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/UpdateThread.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/common/ApplicationStart.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/config/ThreadConfig.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/util/http/HttpsClientUtil.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/util/HttpsClientUtil.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/config/ThreadConfig.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/LogThread.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/common/ApplicationStart.java" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties" />
        <option value="$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resources/config/threadConfig.properties" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/userJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/menuaction/menuAction.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/role/role.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/role/roleJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/menuaction/menuActionJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/systemparam/systemParam.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/systemparam/systemParamJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/dao/SystemParamDao.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/authority/authorityJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/dao/DictListDao.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/dao/DictDao.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/configJobJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/controller/DictController.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictItemDialog.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictItemDialogJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/dict/dictJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/changePassword.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/systemparam/editorParamJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/changePasswordJS.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/controller/SystemController.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/changePasswordJS.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/controller/UserController.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/trackJob.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/trackJobJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/changePassword.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/org/organization.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/org/organizationJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/dao/OrganizationDao.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/controller/OrgController.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/category/rsCategoryInfoDialog.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/category/rsCategoryManageJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/category/rsCategoryInfoDialogJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceDimensionDialog.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceConfigJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/controller/RsResourceRestController.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/dao/impl/RsResourceRestDaoImpl.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcerest/resourceRestJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/dao/impl/RsResourceRestDetailDaoImpl.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/changePasswordJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceImportDatasetDialogJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/controller/RsResourceController.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/service/impl/RsResourceServiceImpl.java" />
        <option value="$PROJECT_DIR$/EHR-resource/src/main/java/com/yihu/ehr/datacollect/service/intf/IDatacollectManager.java" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceManage.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerEx.js" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceFieldInfoDialogJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceManageJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceFieldInfoDialog.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcebrowse/resourceJs.jsp" />
        <option value="$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceAuthorizeJs.jsp" />
      </list>
    </option>
  </component>
@ -197,8 +405,31 @@
          <option name="myItemType" value="org.jetbrains.idea.maven.navigator.MavenProjectsStructure$RootNode" />
        </PATH_ELEMENT>
      </PATH>
      <PATH>
        <PATH_ELEMENT>
          <option name="myItemId" value="" />
          <option name="myItemType" value="org.jetbrains.idea.maven.navigator.MavenProjectsStructure$RootNode" />
        </PATH_ELEMENT>
        <PATH_ELEMENT>
          <option name="myItemId" value="Hos-Resource" />
          <option name="myItemType" value="org.jetbrains.idea.maven.navigator.MavenProjectsStructure$ProjectNode" />
        </PATH_ELEMENT>
      </PATH>
      <PATH>
        <PATH_ELEMENT>
          <option name="myItemId" value="" />
          <option name="myItemType" value="org.jetbrains.idea.maven.navigator.MavenProjectsStructure$RootNode" />
        </PATH_ELEMENT>
        <PATH_ELEMENT>
          <option name="myItemId" value="Profiles" />
          <option name="myItemType" value="org.jetbrains.idea.maven.navigator.MavenProjectsStructure$ProfilesNode" />
        </PATH_ELEMENT>
      </PATH>
    </treeState>
  </component>
  <component name="NamedScopeManager">
    <order />
  </component>
  <component name="ProjectFrameBounds">
    <option name="x" value="-8" />
    <option name="y" value="-8" />
@ -226,11 +457,19 @@
      <autoscrollToSource />
      <autoscrollFromSource />
      <sortByType />
      <manualOrder />
      <foldersAlwaysOnTop value="true" />
    </navigator>
    <panes>
      <pane id="Scope" />
      <pane id="PackagesPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PackageViewProjectNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
      <pane id="Scratches" />
      <pane id="ProjectPane">
        <subPane>
@ -246,7 +485,7 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -256,11 +495,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -270,15 +509,27 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="target" />
              <option name="myItemId" value="WEB-INF" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -288,11 +539,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -303,6 +554,22 @@
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="WEB-INF" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="ehr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="jsp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
@ -310,11 +577,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -326,7 +593,23 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resources" />
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="WEB-INF" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="ehr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="jsp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -336,11 +619,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -352,11 +635,27 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resources" />
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="config" />
              <option name="myItemId" value="WEB-INF" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="ehr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="jsp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resourceregister" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -366,11 +665,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -382,13 +681,29 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="WEB-INF" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="ehr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="jsp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resourcebrowse" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
@ -396,11 +711,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -412,7 +727,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="WEB-INF" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -420,7 +739,15 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="thread" />
              <option name="myItemId" value="jsp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="category" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -430,11 +757,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -446,7 +773,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="WEB-INF" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -454,7 +785,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="config" />
              <option name="myItemId" value="jsp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="common" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -464,11 +799,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-Update" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -480,7 +815,11 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="WEB-INF" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -488,7 +827,7 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="common" />
              <option name="myItemId" value="commons" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -497,12 +836,96 @@
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="develop" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="lib" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="develop" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="lib" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-helper" />
              <option name="myItemId" value="ligerui" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -511,12 +934,54 @@
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="develop" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="lib" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="ligerui" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="custom" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-helper" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -527,18 +992,48 @@
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="webapp" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="develop" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-helper" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -554,7 +1049,7 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="com.yihu.ehr" />
              <option name="myItemId" value="ehr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
@ -563,12 +1058,46 @@
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="main" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="java" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="ehr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Resource-Mini-helper" />
              <option name="myItemId" value="Hos-resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
@ -584,37 +1113,84 @@
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="com.yihu.ehr" />
              <option name="myItemId" value="ehr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="resource" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="thread" />
              <option name="myItemId" value="controller" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="new_hos" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Hos-Framework" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
      <pane id="PackagesPane" />
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="aspect.path.notification.shown" value="true" />
    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
    <property name="WebServerToolWindowFactoryState" value="false" />
    <property name="project.structure.last.edited" value="Artifacts" />
    <property name="project.structure.last.edited" value="Modules" />
    <property name="project.structure.proportion" value="0.15722656" />
    <property name="project.structure.side.proportion" value="0.421659" />
    <property name="js-jscs-nodeInterpreter" value="d:\AppCan\AppCanStudioPersonalV3.1\HDK\emulator\mas\node.exe" />
    <property name="settings.editor.selected.configurable" value="MavenSettings" />
    <property name="settings.editor.splitter.proportion" value="0.2" />
    <property name="recentsLimit" value="5" />
    <property name="restartRequiresConfirmation" value="true" />
    <property name="Downloaded.Files.Path.Enabled" value="false" />
    <property name="Repository.Attach.JavaDocs" value="false" />
    <property name="Repository.Attach.Sources" value="false" />
    <property name="FullScreen" value="false" />
    <property name="dynamic.classpath" value="false" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="99" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="129" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="129" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="922" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="117" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="123" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="123" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="916" />
    <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder3" value="3" />
  </component>
  <component name="RecentsManager">
    <key name="CopyFile.RECENT_KEYS">
      <recent name="E:\GIT\new_hos\Hos-resource\src\main\webapp\WEB-INF\ehr\jsp\resource\resourceregister" />
      <recent name="E:\GIT\new_hos\Hos-resource\src\main\webapp\WEB-INF\ehr\jsp\system\menu" />
      <recent name="E:\GIT\new_hos\Hos-resource\src\main\webapp\develop\common" />
      <recent name="E:\idea_workspace\jkzl_git\hos\Hos-Resource-Mini-Update\src\main\resources" />
      <recent name="E:\idea_workspace\jkzl_git\hos\Hos-Resource-Mini-Update\src\main\resource\config" />
    </key>
    <key name="MoveFile.RECENT_KEYS">
      <recent name="E:\GIT\new_hos\Hos-resource\src\main\java\com\yihu\ehr\system\service" />
      <recent name="E:\GIT\new_hos\Hos-resource\src\main\webapp\WEB-INF\ehr\jsp\system\user" />
    </key>
  </component>
  <component name="RunManager" selected="Tomcat Server.resource-mini-helper">
  <component name="RunManager" selected="Tomcat Server.hos_resource">
    <configuration default="false" name="HttpsClientUtil" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
        <pattern>
@ -692,6 +1268,47 @@
      <option name="PROGRAM_PARAMETERS" />
      <method />
    </configuration>
    <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
      <module name="" />
      <option name="ACTIVITY_CLASS" value="" />
      <option name="MODE" value="default_activity" />
      <option name="DEPLOY" value="true" />
      <option name="ARTIFACT_NAME" value="" />
      <option name="TARGET_SELECTION_MODE" value="EMULATOR" />
      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
      <option name="PREFERRED_AVD" value="" />
      <option name="USE_COMMAND_LINE" value="true" />
      <option name="COMMAND_LINE" value="" />
      <option name="WIPE_USER_DATA" value="false" />
      <option name="DISABLE_BOOT_ANIMATION" value="false" />
      <option name="NETWORK_SPEED" value="full" />
      <option name="NETWORK_LATENCY" value="none" />
      <option name="CLEAR_LOGCAT" value="false" />
      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
      <method />
    </configuration>
    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
      <module name="" />
      <option name="TESTING_TYPE" value="0" />
      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
      <option name="METHOD_NAME" value="" />
      <option name="CLASS_NAME" value="" />
      <option name="PACKAGE_NAME" value="" />
      <option name="TARGET_SELECTION_MODE" value="EMULATOR" />
      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
      <option name="PREFERRED_AVD" value="" />
      <option name="USE_COMMAND_LINE" value="true" />
      <option name="COMMAND_LINE" value="" />
      <option name="WIPE_USER_DATA" value="false" />
      <option name="DISABLE_BOOT_ANIMATION" value="false" />
      <option name="NETWORK_SPEED" value="full" />
      <option name="NETWORK_LATENCY" value="none" />
      <option name="CLEAR_LOGCAT" value="false" />
      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
      <method />
    </configuration>
    <configuration default="true" type="Applet" factoryName="Applet">
      <option name="HTML_USED" value="false" />
      <option name="WIDTH" value="400" />
@ -804,33 +1421,12 @@
      <setting name="vmparams" value="" />
      <setting name="cmdLine" value="run-app" />
      <setting name="depsClasspath" value="false" />
      <setting name="passParentEnv" value="true" />
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <setting name="launchBrowser" value="false" />
      <method />
    </configuration>
    <configuration default="true" type="JUnit" factoryName="JUnit">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="TEST_OBJECT" value="class" />
      <option name="VM_PARAMETERS" value="-ea" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="singleModule" />
      </option>
      <envs />
      <patterns />
      <setting name="passParentEnv" value="true" />
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <setting name="launchBrowser" value="false" />
      <method />
    </configuration>
    <configuration default="true" type="JUnitTestDiscovery" factoryName="JUnit Test Discovery" changeList="All">
    <configuration default="true" type="JUnit" factoryName="JUnit">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
@ -839,9 +1435,9 @@
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="TEST_OBJECT" value="class" />
      <option name="VM_PARAMETERS" />
      <option name="VM_PARAMETERS" value="-ea" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
@ -856,38 +1452,9 @@
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="Java Scratch" factoryName="Java Scratch">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <option name="SCRATCH_FILE_ID" value="0" />
      <option name="MAIN_CLASS_NAME" />
      <option name="VM_PARAMETERS" />
      <option name="PROGRAM_PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="ENABLE_SWING_INSPECTOR" value="false" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <module name="" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
      <method />
    </configuration>
    <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <option name="MAIN_CLASS_NAME" />
      <option name="VM_PARAMETERS" />
      <option name="PROGRAM_PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <module name="Hos-Framework" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="MavenRunConfiguration" factoryName="Maven">
      <MavenSettings>
        <option name="myGeneralSettings" />
@ -952,45 +1519,12 @@
      <listeners />
      <method />
    </configuration>
    <configuration default="true" type="TestNGTestDiscovery" factoryName="TestNG Test Discovery" changeList="All">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="SUITE_NAME" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="GROUP_NAME" />
      <option name="TEST_OBJECT" value="CLASS" />
      <option name="VM_PARAMETERS" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="OUTPUT_DIRECTORY" />
      <option name="ANNOTATION_TYPE" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="singleModule" />
      </option>
      <option name="USE_DEFAULT_REPORTERS" value="false" />
      <option name="PROPERTIES_FILE" />
      <envs />
      <properties />
      <listeners />
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
      <node-options />
      <gulpfile />
      <tasks />
      <arguments />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
      <command value="run-script" />
      <scripts />
      <pass-parent-envs>true</pass-parent-envs>
      <envs />
      <method />
    </configuration>
@ -1008,103 +1542,19 @@
      <envs />
      <method />
    </configuration>
    <configuration default="false" name="resourece-mini-update" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.0.28" ALTERNATIVE_JRE_ENABLED="false">
      <option name="UPDATING_POLICY" value="restart-server" />
      <deployment>
        <artifact name="Hos-Resource-Mini-Update:war exploded">
          <settings>
            <option name="CONTEXT_PATH" value="/" />
          </settings>
        </artifact>
      </deployment>
      <server-settings>
        <option name="BASE_DIRECTORY_NAME" value="Unnamed_hos_18" />
      </server-settings>
      <predefined_log_file id="Tomcat" enabled="true" />
      <predefined_log_file id="Tomcat Catalina" enabled="true" />
      <predefined_log_file id="Tomcat Manager" enabled="false" />
      <predefined_log_file id="Tomcat Host Manager" enabled="false" />
      <predefined_log_file id="Tomcat Localhost Access" enabled="false" />
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <RunnerSettings RunnerId="Debug">
        <option name="DEBUG_PORT" value="64729" />
      </RunnerSettings>
      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
        <option name="USE_ENV_VARIABLES" value="true" />
        <STARTUP>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </STARTUP>
        <SHUTDOWN>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </SHUTDOWN>
      </ConfigurationWrapper>
      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Debug">
        <option name="USE_ENV_VARIABLES" value="true" />
        <STARTUP>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </STARTUP>
        <SHUTDOWN>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </SHUTDOWN>
      </ConfigurationWrapper>
      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Profile ">
        <option name="USE_ENV_VARIABLES" value="true" />
        <STARTUP>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </STARTUP>
        <SHUTDOWN>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </SHUTDOWN>
      </ConfigurationWrapper>
      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
        <option name="USE_ENV_VARIABLES" value="true" />
        <STARTUP>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </STARTUP>
        <SHUTDOWN>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </SHUTDOWN>
      </ConfigurationWrapper>
      <method>
        <option name="BuildArtifacts" enabled="true" />
      </method>
    </configuration>
    <configuration default="false" name="resource-mini-helper" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 8.0.28" ALTERNATIVE_JRE_ENABLED="false">
    <configuration default="false" name="hos_resource" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat 7.0.64" ALTERNATIVE_JRE_ENABLED="false" ALTERNATIVE_JRE_PATH="">
      <option name="BROWSER_ID" value="98ca6316-2f89-46d9-a9e5-fa9e2b0625b3" />
      <option name="UPDATE_ON_FRAME_DEACTIVATION" value="true" />
      <option name="UPDATE_CLASSES_ON_FRAME_DEACTIVATION" value="true" />
      <deployment>
        <artifact name="Hos-Resource-Mini-Helper:war exploded">
        <artifact name="Hos-Resource:war exploded">
          <settings>
            <option name="CONTEXT_PATH" value="/" />
          </settings>
        </artifact>
      </deployment>
      <server-settings>
        <option name="BASE_DIRECTORY_NAME" value="Unnamed_hos_19" />
        <option name="BASE_DIRECTORY_NAME" value="Unnamed_hos_5" />
      </server-settings>
      <predefined_log_file id="Tomcat" enabled="true" />
      <predefined_log_file id="Tomcat Catalina" enabled="true" />
@ -1113,7 +1563,7 @@
      <predefined_log_file id="Tomcat Localhost Access" enabled="false" />
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <RunnerSettings RunnerId="Debug">
        <option name="DEBUG_PORT" value="52068" />
        <option name="DEBUG_PORT" value="62787" />
      </RunnerSettings>
      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Cover">
        <option name="USE_ENV_VARIABLES" value="true" />
@ -1145,21 +1595,6 @@
          <option name="PROGRAM_PARAMETERS" value="" />
        </SHUTDOWN>
      </ConfigurationWrapper>
      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Profile ">
        <option name="USE_ENV_VARIABLES" value="true" />
        <STARTUP>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </STARTUP>
        <SHUTDOWN>
          <option name="USE_DEFAULT" value="true" />
          <option name="SCRIPT" value="" />
          <option name="VM_PARAMETERS" value="" />
          <option name="PROGRAM_PARAMETERS" value="" />
        </SHUTDOWN>
      </ConfigurationWrapper>
      <ConfigurationWrapper VM_VAR="JAVA_OPTS" RunnerId="Run">
        <option name="USE_ENV_VARIABLES" value="true" />
        <STARTUP>
@ -1177,18 +1612,16 @@
      </ConfigurationWrapper>
      <method>
        <option name="BuildArtifacts" enabled="true">
          <artifact name="Hos-Resource-Mini-Helper:war exploded" />
          <artifact name="Hos-Resource-Mini-Helper:war exploded" />
          <artifact name="Hos-Resource:war exploded" />
        </option>
      </method>
    </configuration>
    <list size="6">
    <list size="5">
      <item index="0" class="java.lang.String" itemvalue="Spring Boot.App" />
      <item index="1" class="java.lang.String" itemvalue="Tomcat Server.resourece-mini-update" />
      <item index="2" class="java.lang.String" itemvalue="Tomcat Server.resource-mini-helper" />
      <item index="3" class="java.lang.String" itemvalue="Application.HttpsClientUtil" />
      <item index="4" class="java.lang.String" itemvalue="Application.HttpsClientUtil (1)" />
      <item index="5" class="java.lang.String" itemvalue="Application.UpdateThread" />
      <item index="1" class="java.lang.String" itemvalue="Tomcat Server.hos_resource" />
      <item index="2" class="java.lang.String" itemvalue="Application.HttpsClientUtil" />
      <item index="3" class="java.lang.String" itemvalue="Application.HttpsClientUtil (1)" />
      <item index="4" class="java.lang.String" itemvalue="Application.UpdateThread" />
    </list>
    <recent_temporary>
      <list size="3">
@ -1216,6 +1649,50 @@
      <workItem from="1458004749425" duration="415000" />
      <workItem from="1458005295526" duration="13061000" />
      <workItem from="1458027273098" duration="1249000" />
      <workItem from="1458036188489" duration="608000" />
      <workItem from="1458088491725" duration="15129000" />
      <workItem from="1458108925907" duration="5728000" />
      <workItem from="1458115124771" duration="7869000" />
      <workItem from="1458174675628" duration="17025000" />
      <workItem from="1458194134365" duration="15389000" />
      <workItem from="1458261054112" duration="27824000" />
      <workItem from="1458520157979" duration="11361000" />
      <workItem from="1458538680992" duration="15529000" />
      <workItem from="1458633108466" duration="1862000" />
      <workItem from="1458636938693" duration="4167000" />
      <workItem from="1458693151116" duration="5389000" />
      <workItem from="1458701037225" duration="1261000" />
      <workItem from="1458723525778" duration="662000" />
      <workItem from="1458798536856" duration="221000" />
      <workItem from="1458799129687" duration="182000" />
      <workItem from="1458801518948" duration="871000" />
      <workItem from="1458804746961" duration="2589000" />
      <workItem from="1458877748325" duration="646000" />
      <workItem from="1458890362263" duration="3792000" />
      <workItem from="1459147676081" duration="5003000" />
      <workItem from="1459217452366" duration="9498000" />
      <workItem from="1459245640452" duration="511000" />
      <workItem from="1459298009289" duration="724000" />
      <workItem from="1459299727476" duration="7506000" />
      <workItem from="1459317095312" duration="2820000" />
      <workItem from="1459325157221" duration="6959000" />
      <workItem from="1459385938272" duration="3678000" />
      <workItem from="1459389779857" duration="138000" />
      <workItem from="1459389957491" duration="181000" />
      <workItem from="1459390169199" duration="22000" />
      <workItem from="1459390249488" duration="5383000" />
      <workItem from="1459402006084" duration="5642000" />
      <workItem from="1459417953726" duration="1141000" />
      <workItem from="1459471276387" duration="2713000" />
      <workItem from="1459492871480" duration="2155000" />
      <workItem from="1459849968357" duration="376000" />
      <workItem from="1459902809151" duration="2977000" />
      <workItem from="1459988715401" duration="1641000" />
      <workItem from="1460007581269" duration="16478000" />
      <workItem from="1460074855948" duration="23746000" />
      <workItem from="1460103915344" duration="6768000" />
      <workItem from="1460334890582" duration="580000" />
      <workItem from="1460335559827" duration="10845000" />
    </task>
    <task id="LOCAL-00001" summary="修改bug">
      <created>1457932730986</created>
@ -1251,69 +1728,40 @@
    <servers />
  </component>
  <component name="TimeTrackingManager">
    <option name="totallyTimeSpent" value="44943000" />
    <option name="totallyTimeSpent" value="300532000" />
  </component>
  <component name="ToolWindowManager">
    <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
    <editor active="true" />
    <editor active="false" />
    <layout>
      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32876712" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32924107" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20121029" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32876712" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2730711" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Bean Validation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3547655" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.28082192" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.38527396" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.46061644" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32924107" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.63931626" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32876712" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32924107" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25718608" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.591453" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4068376" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.38880485" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Bean Validation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="true" content_ui="tabs" />
      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32980332" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3547655" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24962178" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.5623932" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.34375" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
    </layout>
    <layout-to-restore>
      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
      <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32924107" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33955225" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="7" side_tool="false" content_ui="combo" />
      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.46205357" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3861607" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3671875" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24147122" sideWeight="0.5" order="4" side_tool="false" content_ui="combo" />
      <window_info id="Bean Validation" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32924107" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
    </layout-to-restore>
  </component>
  <component name="Vcs.Log.UiProperties">
    <option name="RECENTLY_FILTERED_USER_GROUPS">
@ -1328,430 +1776,456 @@
  </component>
  <component name="VcsManagerConfiguration">
    <MESSAGE value="修改bug" />
    <MESSAGE value="上传https工具类 代码" />
    <MESSAGE value="修改更新的代码" />
    <MESSAGE value="新增初始化代码" />
    <MESSAGE value="日志功能改造" />
    <option name="LAST_COMMIT_MESSAGE" value="日志功能改造" />
    <MESSAGE value="上传https工具类 代码" />
    <option name="LAST_COMMIT_MESSAGE" value="上传https工具类 代码" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager>
      <option name="time" value="45" />
      <breakpoints>
        <line-breakpoint type="java-line">
          <url>file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/system/dao/DictListDao.java</url>
          <line>24</line>
          <properties />
          <option name="timeStamp" value="53" />
        </line-breakpoint>
      </breakpoints>
      <breakpoints-dialog>
        <breakpoints-dialog />
      </breakpoints-dialog>
      <option name="time" value="110" />
    </breakpoint-manager>
    <watches-manager />
    <watches-manager>
      <configuration name="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory">
        <watch expression="result" language="JAVA" custom="" />
        <watch expression="conditionMap.get(&quot;categoryId&quot;)" language="JAVA" custom="" />
        <watch expression="e" />
      </configuration>
    </watches-manager>
  </component>
  <component name="antWorkspaceConfiguration">
    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
    <option name="FILTER_TARGETS" value="false" />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/util/http/HttpsClientUtil.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/develop/lib/ligerui/plugins/ligerGrid.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="72" column="0" selection-start-line="72" selection-start-column="0" selection-end-line="72" selection-end-column="0" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        <state vertical-scroll-proportion="0.3327338">
          <caret line="840" column="8" selection-start-line="840" selection-start-column="8" selection-end-line="840" selection-end-column="8" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Framework/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/menuaction/menuAction.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="-2.0357144">
          <caret line="12" column="29" selection-start-line="12" selection-start-column="20" selection-end-line="12" selection-end-column="29" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-resource/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/menuaction/menuActionJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="2.8352273">
          <caret line="100" column="28" selection-start-line="100" selection-start-column="24" selection-end-line="100" selection-end-column="28" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/org/organizationJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="38" selection-start-line="2" selection-start-column="38" selection-end-line="2" selection-end-column="38" />
          <folding />
        <state vertical-scroll-proportion="-6.137931">
          <caret line="46" column="35" selection-start-line="43" selection-start-column="16" selection-end-line="46" selection-end-column="35" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/config/ThreadConfig.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceInfoDialog.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="16" column="4" selection-start-line="16" selection-start-column="4" selection-end-line="16" selection-end-column="4" />
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/util/http/HttpsClientUtil.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceInfoDialogJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="72" column="0" selection-start-line="72" selection-start-column="0" selection-end-line="72" selection-end-column="0" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        <state vertical-scroll-proportion="3.6932085">
          <caret line="83" column="29" selection-start-line="83" selection-start-column="29" selection-end-line="83" selection-end-column="29" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Framework/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcerest/resourceRest.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="0.34102565">
          <caret line="10" column="51" selection-start-line="10" selection-start-column="43" selection-end-line="10" selection-end-column="51" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-resource/pom.xml">
    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-webmvc/4.1.8.RELEASE/spring-webmvc-4.1.8.RELEASE.jar!/org/springframework/web/servlet/mvc/method/annotation/ServletInvocableHandlerMethod.class">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="0.35875705">
          <caret line="57" column="0" selection-start-line="57" selection-start-column="0" selection-end-line="57" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties">
    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-web/4.1.8.RELEASE/spring-web-4.1.8.RELEASE.jar!/org/springframework/web/method/support/InvocableHandlerMethod.class">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="38" selection-start-line="2" selection-start-column="38" selection-end-line="2" selection-end-column="38" />
          <folding />
        <state vertical-scroll-proportion="0.33333334">
          <caret line="65" column="0" selection-start-line="65" selection-start-column="0" selection-end-line="65" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/config/ThreadConfig.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/model/RsResource.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="16" column="4" selection-start-line="16" selection-start-column="4" selection-end-line="16" selection-end-column="4" />
        <state vertical-scroll-proportion="0.33229813">
          <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/util/http/HttpsClientUtil.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/model/RsResourceRest.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="72" column="0" selection-start-line="72" selection-start-column="0" selection-end-line="72" selection-end-column="0" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        <state vertical-scroll-proportion="0.3340122">
          <caret line="12" column="28" selection-start-line="12" selection-start-column="28" selection-end-line="12" selection-end-column="28" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Framework/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/service/IRsResourceRestService.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="0.21792261">
          <caret line="15" column="30" selection-start-line="15" selection-start-column="30" selection-end-line="15" selection-end-column="30" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-resource/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/resources/ehr.cfg.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/resources/redisconfig.properties">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="38" selection-start-line="2" selection-start-column="38" selection-end-line="2" selection-end-column="38" />
          <folding />
          <caret line="13" column="27" selection-start-line="13" selection-start-column="27" selection-end-line="13" selection-end-column="27" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/config/ThreadConfig.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/resources/spring/applicationContext.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="16" column="4" selection-start-line="16" selection-start-column="4" selection-end-line="16" selection-end-column="4" />
          <folding />
        <state vertical-scroll-proportion="-8.142858">
          <caret line="48" column="48" selection-start-line="48" selection-start-column="48" selection-end-line="48" selection-end-column="48" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/util/http/HttpsClientUtil.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcerest/resourceRestJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
          <caret line="50" column="46" selection-start-line="50" selection-start-column="46" selection-end-line="50" selection-end-column="46" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/UpdateThread.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/dao/impl/RsResourceRestDaoImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <caret line="16" column="26" selection-start-line="16" selection-start-column="26" selection-end-line="16" selection-end-column="26" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/config/ThreadConfig.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/service/impl/RsResourceRestServiceImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="12" column="13" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" />
          <folding />
          <caret line="27" column="0" selection-start-line="27" selection-start-column="0" selection-end-line="27" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/SQLThread.java">
    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.1.8.RELEASE/spring-aop-4.1.8.RELEASE.jar!/org/springframework/aop/support/AopUtils.class">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="217" column="19" selection-start-line="217" selection-start-column="19" selection-end-line="224" selection-end-column="36" />
        <state vertical-scroll-proportion="-3.142857">
          <caret line="174" column="0" selection-start-line="174" selection-start-column="0" selection-end-line="174" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resources/config/threadConfig.properties">
    <entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-aop/4.1.8.RELEASE/spring-aop-4.1.8.RELEASE.jar!/org/springframework/aop/framework/JdkDynamicAopProxy.class">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="12" column="48" selection-start-line="12" selection-start-column="48" selection-end-line="12" selection-end-column="48" />
        <state vertical-scroll-proportion="-2.8214285">
          <caret line="148" column="0" selection-start-line="148" selection-start-column="0" selection-end-line="148" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/common/ApplicationStart.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceImportDatasetDialog.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="90" column="14" selection-start-line="90" selection-start-column="14" selection-end-line="90" selection-end-column="14" />
        <state vertical-scroll-proportion="-8.642858">
          <caret line="18" column="63" selection-start-line="18" selection-start-column="39" selection-end-line="18" selection-end-column="63" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/changePasswordJS.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="-8.142858">
          <caret line="18" column="18" selection-start-line="18" selection-start-column="18" selection-end-line="18" selection-end-column="18" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini/src/main/resources/config/http.properties">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/system/user/changePassword.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://C:/Program Files/Java/jdk1.8.0_65/src.zip!/java/util/Properties.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/dao/impl/RsResourceRestDetailDaoImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.33202356">
          <caret line="339" column="29" selection-start-line="339" selection-start-column="29" selection-end-line="339" selection-end-column="29" />
        <state vertical-scroll-proportion="0.33333334">
          <caret line="23" column="0" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/ThreadManage.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/controller/RsResourceRestController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
        <state vertical-scroll-proportion="5.393574">
          <caret line="87" column="0" selection-start-line="87" selection-start-column="0" selection-end-line="87" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resources/log4j2.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/dao/impl/RsResourceDaoImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="0.64044946">
          <caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/util/ZipUtil.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceImportDatasetDialogJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-0.302974">
          <caret line="46" column="26" selection-start-line="46" selection-start-column="26" selection-end-line="46" selection-end-column="26" />
        <state vertical-scroll-proportion="0.0">
          <caret line="162" column="36" selection-start-line="162" selection-start-column="36" selection-end-line="162" selection-end-column="36" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/util/log/LogUtil.java">
    <entry file="file://$PROJECT_DIR$/EHR-resource/src/main/java/com/yihu/ehr/resource/TextResource.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="13" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" />
        <state vertical-scroll-proportion="0.33333334">
          <caret line="9" column="24" selection-start-line="9" selection-start-column="24" selection-end-line="9" selection-end-column="24" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/dbhelper.properties">
    <entry file="file://$PROJECT_DIR$/EHR-resource/src/main/java/com/yihu/ehr/datacollect/service/intf/IDatacollectManager.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="0.33333334">
          <caret line="42" column="8" selection-start-line="42" selection-start-column="8" selection-end-line="42" selection-end-column="8" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/UpdateThread.java">
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/pom.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.38539553">
          <caret line="51" column="38" selection-start-line="51" selection-start-column="38" selection-end-line="51" selection-end-column="38" />
        <state vertical-scroll-proportion="0.0">
          <caret line="39" column="21" selection-start-line="39" selection-start-column="21" selection-end-line="39" selection-end-column="21" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resources/config/dbhelper.properties">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerEx.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
          <caret line="903" column="17" selection-start-line="903" selection-start-column="17" selection-end-line="903" selection-end-column="17" />
          <folding>
            <marker date="1460340643123" expanded="true" signature="-1:-1" placeholder="..." />
            <marker date="1460340643123" expanded="true" signature="-1:-1" placeholder="..." />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="jar://C:/Program Files/Java/jdk1.8.0_65/src.zip!/java/net/DualStackPlainSocketImpl.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceFieldInfoDialogJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.4989858">
          <caret line="293" column="0" selection-start-line="293" selection-start-column="0" selection-end-line="293" selection-end-column="0" />
        <state vertical-scroll-proportion="-4.285714">
          <caret line="157" column="35" selection-start-line="157" selection-start-column="35" selection-end-line="157" selection-end-column="35" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://C:/Program Files/Java/jdk1.8.0_65/src.zip!/java/lang/Thread.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceManage.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.3326572">
          <caret line="744" column="0" selection-start-line="744" selection-start-column="0" selection-end-line="744" selection-end-column="0" />
        <state vertical-scroll-proportion="-14.928572">
          <caret line="22" column="37" selection-start-line="22" selection-start-column="37" selection-end-line="22" selection-end-column="37" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.1/httpclient-4.5.1-sources.jar!/org/apache/http/impl/client/InternalHttpClient.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/service/impl/RsResourceServiceImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.3326572">
          <caret line="185" column="0" selection-start-line="185" selection-start-column="0" selection-end-line="185" selection-end-column="0" />
        <state vertical-scroll-proportion="2.0343435">
          <caret line="80" column="26" selection-start-line="80" selection-start-column="23" selection-end-line="80" selection-end-column="26" />
          <folding>
            <element signature="e#2297#2309#0" expanded="false" />
            <element signature="e#2872#2884#0" expanded="false" />
            <element signature="e#7939#7955#0" expanded="false" />
            <element signature="e#8059#8075#0" expanded="false" />
            <element signature="e#11939#11955#0" expanded="false" />
            <element signature="e#16089#16115#0" expanded="false" />
            <element signature="e#18989#19005#0" expanded="false" />
            <element signature="e#19059#19070#0" expanded="false" />
            <element signature="e#19132#19143#0" expanded="false" />
            <element signature="e#20418#20433#0" expanded="false" />
            <element signature="e#20488#20503#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-resource/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceConfig.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="1.0808823">
          <caret line="67" column="21" selection-start-line="67" selection-start-column="21" selection-end-line="67" selection-end-column="21" />
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Framework/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceConfigJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-21.78544">
          <caret line="19" column="48" selection-start-line="19" selection-start-column="48" selection-end-line="19" selection-end-column="48" />
        <state vertical-scroll-proportion="0.35211268">
          <caret line="65" column="36" selection-start-line="65" selection-start-column="31" selection-end-line="65" selection-end-column="36" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.1/httpclient-4.5.1-sources.jar!/org/apache/http/conn/ssl/TrustSelfSignedStrategy.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcebrowse/resource.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.38">
          <caret line="37" column="61" selection-start-line="37" selection-start-column="48" selection-end-line="37" selection-end-column="61" />
        <state vertical-scroll-proportion="-0.6785714">
          <caret line="25" column="14" selection-start-line="25" selection-start-column="14" selection-end-line="25" selection-end-column="14" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/util/http/HttpsClientUtil.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceFieldInfoDialog.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-2.118644">
          <caret line="121" column="5" selection-start-line="121" selection-start-column="5" selection-end-line="124" selection-end-column="25" />
          <folding>
            <element signature="imports" expanded="false" />
          </folding>
        <state vertical-scroll-proportion="3.5171027">
          <caret line="92" column="6" selection-start-line="92" selection-start-column="6" selection-end-line="92" selection-end-column="6" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/util/HttpsClientUtil.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceManageJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="65" column="50" selection-start-line="65" selection-start-column="50" selection-end-line="65" selection-end-column="50" />
        <state vertical-scroll-proportion="-4.857143">
          <caret line="214" column="94" selection-start-line="214" selection-start-column="78" selection-end-line="214" selection-end-column="94" />
          <folding>
            <element signature="imports" expanded="false" />
            <element signature="e#4244#4245#0" expanded="false" />
            <element signature="e#4269#4270#0" expanded="false" />
            <marker date="1460340795803" expanded="true" signature="-1:-1" placeholder="..." />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/log4j2.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceAuthorize.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="-10.178572">
          <caret line="21" column="66" selection-start-line="21" selection-start-column="39" selection-end-line="21" selection-end-column="66" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/config/ThreadConfig.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerOverwrite.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="18" column="40" selection-start-line="18" selection-start-column="40" selection-end-line="18" selection-end-column="40" />
          <caret line="388" column="8" selection-start-line="388" selection-start-column="8" selection-end-line="388" selection-end-column="8" />
          <folding>
            <element signature="imports" expanded="false" />
            <marker date="1458268371445" expanded="true" signature="21464:21476" placeholder="..." />
            <marker date="1458268371445" expanded="true" signature="40222:40248" placeholder="..." />
            <marker date="1458268371445" expanded="true" signature="40808:40819" placeholder="..." />
            <marker date="1458268371445" expanded="true" signature="46139:46147" placeholder="..." />
            <marker date="1458268371445" expanded="true" signature="47760:47769" placeholder="..." />
            <marker date="1458268371445" expanded="true" signature="53417:53432" placeholder="..." />
            <marker date="1458268371445" expanded="true" signature="53570:53585" placeholder="..." />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/LogThread.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/controller/RsResourceController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="16" column="9" selection-start-line="16" selection-start-column="9" selection-end-line="16" selection-end-column="9" />
          <folding>
            <element signature="imports" expanded="false" />
            <element signature="e#5194#5195#0" expanded="false" />
            <element signature="e#5245#5246#0" expanded="false" />
          </folding>
        <state vertical-scroll-proportion="0.46443516">
          <caret line="120" column="47" selection-start-line="120" selection-start-column="31" selection-end-line="120" selection-end-column="47" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/pom.xml">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        <state vertical-scroll-proportion="-2.0357144">
          <caret line="78" column="93" selection-start-line="78" selection-start-column="86" selection-end-line="78" selection-end-column="93" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/common/ApplicationStart.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourcebrowse/resourceJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="34" column="8" selection-start-line="34" selection-start-column="8" selection-end-line="34" selection-end-column="8" />
          <folding>
            <element signature="imports" expanded="false" />
            <element signature="e#6164#6165#0" expanded="false" />
            <element signature="e#6249#6250#0" expanded="false" />
          </folding>
        <state vertical-scroll-proportion="-14.928572">
          <caret line="22" column="25" selection-start-line="22" selection-start-column="25" selection-end-line="22" selection-end-column="25" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/common/ApplicationStart.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/category/rsCategoryManageJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="32" column="8" selection-start-line="32" selection-start-column="8" selection-end-line="32" selection-end-column="8" />
          <folding>
            <element signature="imports" expanded="false" />
            <element signature="e#4368#4369#0" expanded="false" />
            <element signature="e#4453#4454#0" expanded="false" />
          </folding>
        <state vertical-scroll-proportion="2.2142856">
          <caret line="70" column="37" selection-start-line="70" selection-start-column="37" selection-end-line="70" selection-end-column="37" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/category/rsCategoryInfoDialogJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="42" selection-start-line="2" selection-start-column="42" selection-end-line="2" selection-end-column="42" />
        <state vertical-scroll-proportion="-19.0">
          <caret line="46" column="17" selection-start-line="46" selection-start-column="17" selection-end-line="46" selection-end-column="17" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/resources/config/threadConfig.properties">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/service/IRsCategoryService.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="16" column="14" selection-start-line="16" selection-start-column="14" selection-end-line="16" selection-end-column="14" />
        <state vertical-scroll-proportion="0.37401575">
          <caret line="13" column="23" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/config/ThreadConfig.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/controller/RsCategoryController.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="19" column="72" selection-start-line="19" selection-start-column="42" selection-end-line="19" selection-end-column="72" />
          <caret line="43" column="50" selection-start-line="43" selection-start-column="50" selection-end-line="43" selection-end-column="50" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/UpdateThread.java">
    <entry file="file://$PROJECT_DIR$/Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/SQLGeneralDAO.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="128" column="36" selection-start-line="128" selection-start-column="36" selection-end-line="128" selection-end-column="36" />
          <folding />
        <state vertical-scroll-proportion="0.33267716">
          <caret line="125" column="17" selection-start-line="125" selection-start-column="17" selection-end-line="125" selection-end-column="17" />
          <folding>
            <element signature="e#4233#4234#0" expanded="true" />
            <element signature="e#4290#4291#0" expanded="true" />
            <marker date="1460110992249" expanded="true" signature="-1:-1" placeholder="select max(i..missingValue..." />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/ThreadManage.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/java/com/yihu/ehr/resource/service/impl/RsCategoryServiceImpl.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
          <caret line="27" column="35" selection-start-line="27" selection-start-column="29" selection-end-line="27" selection-end-column="38" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/SQLThread.java">
    <entry file="file://$PROJECT_DIR$/Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/resource/resourceregister/rsResourceAuthorizeJs.jsp">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-1.2666667">
          <caret line="83" column="13" selection-start-line="83" selection-start-column="13" selection-end-line="83" selection-end-column="13" />
          <folding />
        <state vertical-scroll-proportion="0.766129">
          <caret line="103" column="21" selection-start-line="103" selection-start-column="21" selection-end-line="103" selection-end-column="21" />
          <folding>
            <marker date="1460344250786" expanded="true" signature="8101:8112" placeholder="..." />
          </folding>
        </state>
      </provider>
    </entry>
@ -1761,7 +2235,7 @@
      <state key="ArtifactsStructureConfigurable.UI">
        <settings>
          <artifact-editor />
          <last-edited>Hos-Resource-Mini-Helper:war exploded</last-edited>
          <last-edited>Hos-Resource:war exploded</last-edited>
          <splitter-proportions>
            <option name="proportions">
              <list>
@ -1797,11 +2271,11 @@
      </state>
      <state key="JdkListConfigurable.UI">
        <settings>
          <last-edited>1.6</last-edited>
          <last-edited>1.8</last-edited>
          <splitter-proportions>
            <option name="proportions">
              <list>
                <option value="0.2" />
                <option value="0.421659" />
              </list>
            </option>
          </splitter-proportions>
@ -1809,12 +2283,11 @@
      </state>
      <state key="ModuleStructureConfigurable.UI">
        <settings>
          <last-edited>Hos-Resource-Mini-Update</last-edited>
          <last-edited>hos</last-edited>
          <splitter-proportions>
            <option name="proportions">
              <list>
                <option value="0.421659" />
                <option value="0.6" />
              </list>
            </option>
          </splitter-proportions>
@ -1822,7 +2295,7 @@
      </state>
      <state key="ProjectLibrariesConfigurable.UI">
        <settings>
          <last-edited>Maven: antlr:antlr:2.7.7</last-edited>
          <last-edited>Maven: com.oracle:ojdbc14:10.2.0.3.0</last-edited>
          <splitter-proportions>
            <option name="proportions">
              <list>

+ 15 - 15
EHR-resource/src/main/java/com/yihu/ehr/datacollect/service/intf/IDatacollectManager.java

@ -14,80 +14,80 @@ import java.util.Map;
public interface IDatacollectManager {
    /**
     * 根据JobId获取Cron表达式
     * 根据JobId获取Cron表达式
     */
    public String getCronByJobId(String jobId) throws Exception;
    /**
     * 根据ID获取任务详细
     * 鏍规嵁ID鑾峰彇浠诲姟璇︾粏
     * @return
     */
    public RsJobConfig getJobById(String id) throws Exception;
    /**
     * 获取任务列表
     * 鑾峰彇浠诲姟鍒楄〃
     */
    public DataGridResult getJobList(Map<String, Object> conditionMap,int page, int rows) throws Exception;
    /**
     * 根据适配方案获取数据集列表
     * 根据适配方案获取数据集列表
     */
    public DataGridResult getSchemeDataset(String schemeId,String schemeVersion,String jobId) throws Exception;
    /**
     * 根据适配方案获取字段列表
     * 鏍规嵁閫傞厤鏂规�鑾峰彇瀛楁�鍒楄〃
     */
    public DataGridResult getSchemeDatasetCol(String schemeId,String schemeVersion,String datasetId) throws Exception;
    /**
     * 根据任务Id获取相关数据集下拉数据
     * 根据任务Id获取相关数据集下拉数据
     */
    public DataGridResult getJobDatasetByJobId(String jobId) throws Exception;
    /**
     * 新增任务
     * 鏂板�浠诲姟
     */
    public ActionResult addJob(RsJobConfig obj,String cron,String jobDataset) throws Exception;
    /**
     * 修改任务
     * 淇�敼浠诲姟
     */
    public ActionResult updateJob(RsJobConfig obj,String cron,String jobDataset) throws Exception;
    /**
     * 删除任务
     * 鍒犻櫎浠诲姟
     */
    public ActionResult deleteJob(String id) throws Exception;
    /**
     * 修改任务状态
     * 修改任务状态
     */
    public ActionResult validJob(String jobId,String valid) throws Exception;
    /**
     * 数据集数据源管理列表(包含全部数据集)
     * 数据集数据源管理列表(包含全部数据集)
     */
    public DataGridResult getDatasetSource(String stdVersion) throws Exception;
    /**
     * 保存数据集数据源配置
     * 淇濆瓨鏁版嵁闆嗘暟鎹�簮閰嶇疆
     */
    public ActionResult saveDatasetSource(String json) throws Exception;
    /**
     * 获取任务日志列表
     * 鑾峰彇浠诲姟鏃ュ織鍒楄〃
     */
    public DataGridResult getJobLogDetail(Map<String, Object> conditionMap,int page, int rows) throws Exception;
    /**
     * 获取任务日志列表
     * 鑾峰彇浠诲姟鏃ュ織鍒楄〃
     */
    public DataGridResult getJobLog(Map<String, Object> conditionMap,int page, int rows) throws Exception;
    /**
     * 任务详细根据数据集分组
     * 任务详细根据数据集分组
     */
    public DataGridResult getJobLogDataset(String logId) throws Exception;
}

+ 3 - 1
Hos-Framework/Hos-Framework.iml

@ -9,6 +9,8 @@
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="java" level="project" />
    <orderEntry type="library" name="Hos-Framework" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.3" level="project" />
@ -161,9 +163,9 @@
    <orderEntry type="library" name="Maven: jboss:javassist:3.7.ga" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tiles:tiles-compat:3.0.5" level="project" />
    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:2.4" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
    <orderEntry type="library" name="Maven: commons-discovery:commons-discovery:0.2" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.0" level="project" />
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-dbcp2:2.1" level="project" />

+ 309 - 35
Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/SQLGeneralDAO.java

@ -1,7 +1,22 @@
package com.yihu.ehr.framework.common.dao;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.exception.ApiException;
import com.yihu.ehr.framework.model.DataGridResult;
import com.yihu.ehr.framework.util.log.LogService;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
import com.yihu.ehr.framework.util.operator.NumberUtil;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.framework.util.operator.StringUtil;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.hibernate.jdbc.Work;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
@ -10,6 +25,12 @@ import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@ -38,8 +59,7 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
        return hibernateTemplate;
    }
    @Override
    public DataGridResult getDataGridResult(String hql, Integer page, Integer rows) throws Exception {
    public DataGridResult getDataGridResult(String hql, Integer page, Integer rows) {
        DataGridResult dataGridResult = new DataGridResult();
@ -65,54 +85,45 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
        return dataGridResult;
    }
    //=========================hibernate start==============================
    @Override
    public void beginTransaction() throws Exception {
    public void beginTransaction() {
        hibernateTemplate.getSessionFactory().getCurrentSession().getTransaction().begin();
    }
    @Override
    public void commitTransaction() throws Exception {
    public void commitTransaction() {
        hibernateTemplate.getSessionFactory().getCurrentSession().getTransaction().commit();
    }
    @Override
    public void saveEntity(Object entity) throws Exception {
    public void saveEntity(Object entity) {
        if (entity == null) return;
        hibernateTemplate.save(entity);
    }
    @Override
    public void updateEntity(Object entity) throws Exception {
    public void updateEntity(Object entity) {
        if (entity == null) return;
        hibernateTemplate.update(entity);
    }
    @Override
    public void saveOrUpdateEntity(Object entity) throws Exception {
    public void saveOrUpdateEntity(Object entity) {
        if (entity == null) return;
        hibernateTemplate.saveOrUpdate(entity);
    }
    @Override
    public void mergeEntity(Object entity) throws Exception {
    public void mergeEntity(Object entity) {
        if (entity == null) return;
        hibernateTemplate.merge(entity);
    }
    @Override
    public void deleteEntity(Object entity) throws Exception {
    public void deleteEntity(Object entity) {
        if (entity == null) return;
        hibernateTemplate.delete(entity);
    }
    @Override
    public <T> void deleteEntity(Class<T> cls, Serializable id) throws Exception {
    public <T> void deleteEntity(Class<T> cls, Serializable id) {
        T obj = (T) hibernateTemplate.load(cls, id);
        hibernateTemplate.delete(obj);
    }
    @Override
    public <T> T getEntity(Class<T> cls, Serializable id) throws Exception {
    public <T> T getEntity(Class<T> cls, Serializable id) {
        return (T) hibernateTemplate.get(cls, id);
    }
    //=========================hibernate end==============================
@ -126,8 +137,7 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
     * 例如: queryListBySql("select * from person")
     * @author ding
     */
    @Override
    public List<Map<String, Object>> queryListBySql(String sql) throws Exception {
    public List<Map<String, Object>> queryListBySql(String sql) {
        List<Map<String, Object>> result = this.jdbcTemplate.queryForList(sql);
        return result;
    }
@ -141,8 +151,7 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
     * 例如: queryListBySql("select * from person where username=?",new Object[]{"admin"})
     * @author ding
     */
    @Override
    public List<Map<String, Object>> queryListBySql(String sql, List params) throws Exception {
    public List<Map<String, Object>> queryListBySql(String sql, List params) {
        List<Map<String, Object>> result = this.jdbcTemplate.queryForList(sql, params.toArray());
        return result;
    }
@ -156,9 +165,8 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
     * 例如: queryListBySql("select * from person", Person.class)
     * @author ding
     */
    @Override
    @SuppressWarnings({"rawtypes", "unchecked"})
    public <T> List<T> queryListBySql(String sql, Class obj) throws Exception {
    public <T> List<T> queryListBySql(String sql, Class obj) {
        RowMapper rowMapper = (RowMapper) ParameterizedBeanPropertyRowMapper.newInstance(obj);
        List<T> result = this.jdbcTemplate.query(sql, rowMapper);
        return result;
@ -174,9 +182,8 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
     * 例如: queryListBySql("select * from person where username=?",new Object[]{"admin"},Person.class)
     * @author ding
     */
    @Override
    @SuppressWarnings({"rawtypes", "unchecked"})
    public <T> List<T> queryListBySql(String sql, List params, Class obj) throws Exception {
    public <T> List<T> queryListBySql(String sql, List params, Class obj) {
        RowMapper rowMapper = (RowMapper) ParameterizedBeanPropertyRowMapper.newInstance(obj);
        List<T> result = this.jdbcTemplate.query(sql, params.toArray(), rowMapper);
        return result;
@ -192,9 +199,8 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
     * 例如: queryObjBySql("select * from person where username=?",new Object[]{"admin"},Person.class)
     * @author ding
     */
    @Override
    @SuppressWarnings({"rawtypes", "unchecked"})
    public <T> T queryObjBySql(String sql, List params, Class obj) throws Exception {
    public <T> T queryObjBySql(String sql, List params, Class obj) {
        RowMapper rowMapper = (RowMapper) ParameterizedBeanPropertyRowMapper.newInstance(obj);
        Object result = this.jdbcTemplate.queryForObject(sql, params.toArray(), rowMapper);
        return (T) result;
@ -209,9 +215,8 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
     * 例如: queryObjBySql("select * from person where username='admin'",Person.class)
     * @author ding
     */
    @Override
    @SuppressWarnings({"rawtypes", "unchecked"})
    public <T> T queryObjBySql(String sql, Class obj) throws Exception {
    public <T> T queryObjBySql(String sql, Class obj) {
        RowMapper rowMapper = (RowMapper) ParameterizedBeanPropertyRowMapper.newInstance(obj);
        Object result = this.jdbcTemplate.queryForObject(sql, rowMapper);
        return (T) result;
@ -220,8 +225,7 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
    /**
     * 获取单列值
     */
    @Override
    public <T> T scalarBySql(String sql,Class cls) throws Exception {
    public <T> T scalarBySql(String sql,Class cls) {
        Object result = this.jdbcTemplate.queryForObject(sql, cls);
        return (T) result;
    }
@ -231,10 +235,280 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
     * 执行SQL语句
     * @return
     */
    @Override
    public void execute(String sql) throws Exception
    {
        this.jdbcTemplate.execute(sql);
    }
    public <T> List getEntityList(Class<T> cls, String hql) {
        Query query = getCurrentSession().createQuery(hql);
        return query.list();
    }
    @Override
    public <T> List getEntityList(Class<T> cls, String condition, String order, Integer limit, Integer offset, ErrorCode errorCode) {
        try {
            Session session = getCurrentSession();
            Criteria criteria = session.createCriteria(cls);
            ObjectMapper objectMapper = new ObjectMapper();
            if (!StringUtil.isEmpty(condition)) {
                JsonNode jsonNode = objectMapper.readTree(condition);
                Iterator<String> fieldNames = jsonNode.fieldNames();
                while (fieldNames.hasNext()) {
                    String fieldName = fieldNames.next();
                    if (jsonNode.get(fieldName).isInt()) {
                        criteria.add(Restrictions.eq(fieldName, jsonNode.get(fieldName).asInt()));
                    } else {
                        criteria.add(Restrictions.eq(fieldName, jsonNode.get(fieldName).asText()));
                    }
                }
            }
            if (!StringUtil.isEmpty(order)) {
                JsonNode jsonNode = objectMapper.readTree(order);
                Iterator<String> fieldNames = jsonNode.fieldNames();
                while (fieldNames.hasNext()) {
                    String fieldName = fieldNames.next();
                    String value = jsonNode.get(fieldName).asText().toUpperCase();
                    if (value.equals(Constants.ASC)) {
                        criteria.addOrder(Order.asc(fieldName));
                    } else if (value.equals(Constants.DESC)) {
                        criteria.addOrder(Order.desc(fieldName));
                    }
                }
            }
            if (limit != null) {
                criteria.setMaxResults(limit);
                if (offset != null) {
                    criteria.setFirstResult(offset);
                }
            }
            return criteria.list();
        } catch (Exception e) {
            throw new ApiException(errorCode);
        }
    }
    public <T> List getEntityListByParentId(Class<T> cls, String parentFiledName, Integer patentId, String condition, String order, Integer limit, Integer offset, ErrorCode errorCode) {
        try {
            Session session = getCurrentSession();
            Criteria criteria = session.createCriteria(cls);
            criteria.add(Restrictions.eq(parentFiledName, patentId));
            ObjectMapper objectMapper = new ObjectMapper();
            if (!StringUtil.isEmpty(condition)) {
                JsonNode jsonNode = objectMapper.readTree(condition);
                Iterator<String> fieldNames = jsonNode.fieldNames();
                while (fieldNames.hasNext()) {
                    String fieldName = fieldNames.next();
                    if (jsonNode.get(fieldName).isInt()) {
                        criteria.add(Restrictions.eq(fieldName, jsonNode.get(fieldName).asInt()));
                    } else {
                        criteria.add(Restrictions.eq(fieldName, jsonNode.get(fieldName).asText()));
                    }
                }
            }
            if (!StringUtil.isEmpty(order)) {
                JsonNode jsonNode = objectMapper.readTree(order);
                Iterator<String> fieldNames = jsonNode.fieldNames();
                while (fieldNames.hasNext()) {
                    String fieldName = fieldNames.next();
                    String value = jsonNode.get(fieldName).asText().toUpperCase();
                    if (value.equals(Constants.ASC)) {
                        criteria.addOrder(Order.asc(fieldName));
                    } else if (value.equals(Constants.DESC)) {
                        criteria.addOrder(Order.desc(fieldName));
                    }
                }
            }
            if (limit != null) {
                criteria.setMaxResults(limit);
                if (offset != null) {
                    criteria.setFirstResult(offset);
                }
            }
            return criteria.list();
        } catch (Exception e) {
            throw new ApiException(errorCode);
        }
    }
    public List getList(Class tClass, String tableName, String condition, String order, Integer limit, Integer offset, ErrorCode errorCode) {
        SqlCreator sqlCreator = new SqlCreator(tClass);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            if (!StringUtil.isEmpty(condition)) {
                JsonNode jsonNode = objectMapper.readTree(condition);
                Iterator<String> fieldNames = jsonNode.fieldNames();
                while (fieldNames.hasNext()) {
                    String fieldName = fieldNames.next();
                    String value = jsonNode.get(fieldName).asText();
                    if (NumberUtil.isInteger(value)) {
                        sqlCreator.equalCondition(fieldName, Integer.parseInt(value));
                    } else {
                        sqlCreator.equalCondition(fieldName, value);
                    }
                }
            }
            if (!StringUtil.isEmpty(order)) {
                JsonNode jsonNode = objectMapper.readTree(order);
                Iterator<String> fieldNames = jsonNode.fieldNames();
                while (fieldNames.hasNext()) {
                    String fieldName = fieldNames.next();
                    String value = jsonNode.get(fieldName).asText().toUpperCase();
                    sqlCreator.order(fieldName, value);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        String sql = sqlCreator.selectData(tableName);
        Query query = getQuery(sqlCreator, sql);
        if (limit != null) {
            query.setMaxResults(limit);
            if (offset != null) {
                query.setFirstResult(offset * limit);
            }
        }
        return query.list();
    }
    public Integer getDataSetInt(Class tClass, String tableName, String condition) {
        SqlCreator sqlCreator = new SqlCreator(tClass);
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            if (!StringUtil.isEmpty(condition)) {
                JsonNode jsonNode = objectMapper.readTree(condition);
                Iterator<String> fieldNames = jsonNode.fieldNames();
                while (fieldNames.hasNext()) {
                    String fieldName = fieldNames.next();
                    String value = jsonNode.get(fieldName).asText();
                    if (NumberUtil.isInteger(value)) {
                        sqlCreator.equalCondition(fieldName, Integer.parseInt(value));
                    } else {
                        sqlCreator.equalCondition(fieldName, value);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        String sql = sqlCreator.countData(tableName);
        Query query = getQuery(sqlCreator, sql);
        Integer count = Integer.parseInt(StringUtil.toString(query.list().get(0)));
        return count;
    }
    @Override
    public Object get(Class tClass, String tableName, Integer id, ErrorCode errorCode) {
        try {
            SqlCreator sqlCreator = new SqlCreator(tClass);
            sqlCreator.equalCondition("id", id);
            String sql = sqlCreator.selectData(tableName);
            Query query = getQuery(sqlCreator, sql);
            return query.uniqueResult();
        } catch (Exception e) {
            throw new ApiException(errorCode);
        }
    }
    @Override
    public Query getQuery(SqlCreator sqlCreator, String sql) {
        Query query = getCurrentSession().createSQLQuery(sql);
        for (String key : sqlCreator.getKeyValueMap().keySet()) {
            Object value = sqlCreator.getKeyValueMap().get(key);
            if (value instanceof Collection) {
                query.setParameterList(key, (Collection) value);
            } else {
                query.setParameter(key, value);
            }
        }
        query.setResultTransformer(sqlCreator.getTransformer());
        return query;
    }
    @Override
    public void insertBatch(final List<String> insertSqlList) {
        Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
        session.doWork(
                new Work() {
                    public void execute(Connection connection) throws SQLException {
                        if (!CollectionUtil.isEmpty(insertSqlList)) {
                            Statement stmt = connection.createStatement();
                            connection.setAutoCommit(false);
                            for (String sql : insertSqlList) {
                                stmt.addBatch(sql);
                            }
                            try {
                                stmt.executeBatch();
                            }  catch (Exception ex) {
                                LogService.getLogger().error("insertBatch-ERROR: ", ex);
                            }
                            stmt.close();
                        }
                    }
                }
        );
    }
    public Session openSession() {
        return getHibernateTemplate().getSessionFactory().openSession();
    }
    @Override
    public Session getCurrentSession() {
        return getHibernateTemplate().getSessionFactory().getCurrentSession();
    }
    @Override
    public Integer getMaxId(String tableName) {
        String sql = "select max(id) from " + tableName;
        Query query = getCurrentSession().createSQLQuery(sql);
        Object object = query.uniqueResult();
        Integer maxId = object == null ? 1 : Integer.parseInt(object.toString()) + 1;
        return maxId;
    }
    @Override
    public Query getExeuteQuery(SqlCreator sqlCreator, String sql) {
        Query query = getCurrentSession().createSQLQuery(sql);
        for (String key : sqlCreator.getKeyValueMap().keySet()) {
            Object value = sqlCreator.getKeyValueMap().get(key);
            if (value instanceof Collection) {
                query.setParameterList(key, (Collection) value);
            } else {
                query.setParameter(key, value);
            }
        }
        return query;
    }
    protected void doClose(Session session, Statement stmt, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
                rs = null;
            } catch (Exception ex) {
                rs = null;
                LogService.getLogger().error("close-ResultSet ", ex);
                ex.printStackTrace();
            }
        }
        if (stmt != null) {
            try {
                stmt.close();
                stmt = null;
            } catch (Exception ex) {
                stmt = null;
                LogService.getLogger().error("close-ResultSet ", ex);
                ex.printStackTrace();
            }
        }
    }
}

+ 28 - 0
Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/XSQLGeneralDAO.java

@ -1,6 +1,10 @@
package com.yihu.ehr.framework.common.dao;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.model.DataGridResult;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import org.hibernate.Query;
import org.hibernate.Session;
import java.io.Serializable;
import java.util.List;
@ -112,4 +116,28 @@ public interface XSQLGeneralDAO {
     * @return
     */
    void execute(String sql) throws Exception;
    public <T> List getEntityList(Class<T> cls, String hql);
    public <T> List getEntityList(Class<T> cls, String query, String order, Integer limit, Integer offset, ErrorCode errorCode);
    public <T> List getEntityListByParentId(Class<T> cls, String patentFiledName, Integer parentId, String query, String order, Integer limit, Integer offset, ErrorCode errorCode);
    public <T> List getList(Class<T> cls, String tableName, String condition, String order, Integer limit, Integer offset, ErrorCode errorCode);
    public <T> Integer getDataSetInt(Class<T> cls, String tableName, String condition);
    public <T> Object get(Class<T> cls, String tableName, Integer id, ErrorCode errorCode);
    public Session getCurrentSession();
    public Session openSession();
    public Query getQuery(SqlCreator sqlCreator, String sql);
    public Query getExeuteQuery(SqlCreator sqlCreator, String sql);
    public Integer getMaxId(String tableName);
    public void insertBatch(final List<String> insertSqlList);
}

+ 128 - 27
Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/ErrorCode.java

@ -1,14 +1,12 @@
package com.yihu.ehr.framework.constrant;
/**
 *
 * @author Sand
 * @version 1.0
 * @created 2015.08.10 17:49
 */
public enum ErrorCode {
    // 通用错误 -- 接口调用错误列表
    MissMethod("ehr.common.miss.method"),
    MissTimestamp("ehr.common.miss.timestamp"),
    MissAppKey("ehr.common.miss.appid"),
@ -22,33 +20,27 @@ public enum ErrorCode {
    InvalidApiVersion("ehr.common.invalid.version"),
    InvalidSign("ehr.common.invalid.sign"),
    InvalidSignMethod("ehr.common.invalid.signMethod"),
    InvalidParameterFormat("ehr.common.invalid.parameterFormat"),
    MissRequiredArgument("ehr.common.miss.required.argument"),
    MissParameter("ehr.common.miss.parameter"),
    InvalidParameter("ehr.common.invalid.parameter"),
    AppTokenExpired("ehr.common.appToken.expired"),
    // 通用错误 -- 查询错误列表
    QueryNoData("ehr.common.query.null"),
    QueryTotalCount("ehr.common.query.count"),
    // 通用错误 -- 更新错误列表
    SuccessSave("ehr.common.success.update"),
    InvalidUpdate("ehr.common.invalid.update"),
    // 通用错误 -- 新增错误列表
    SuccessAdd("ehr.common.success.create"),
    // 通用错误 -- 删除错误列表
    SuccessDelete("ehr.common.success.delete"),
    InvalidDelete("ehr.common.invalid.delete"),
    // 通用错误 -- 提示信息列表
    InputRequestSingle("ehr.common.input.request.single"),
    InputRequestMultiple("ehr.common.input.request.multiple"),
    // 功能错误信息列表
    // 功能错误信息列表 - 登录
    InvalidUser("ehr.invalid.user"),
    GetUserSecurityFailed("ehr.get.user.security.failed"),
    InvalidUserNameOrPwd("ehr.invalid.username.or.pwd"),
@ -57,32 +49,24 @@ public enum ErrorCode {
    MailHasValidate("ehr.login.mail.hasinvaild"),
    InvalidMail("ehr.login.mail.invaild"),
    //功能错误信息列表 - 用户管理
    ExistUserForCreate("ehr.user.exist.create"),
    SuccessPublicKeyCreate("ehr.publicKey.success.create"),
    // 功能错误信息列表 - 机构管理
    ExistOrgForCreate("ehr.org.exist.create"),
    // 功能错误信息列表 - 应用管理
    ExistOrgForStandard("ehr.org.exist.standard"),
    InvalidAppRegister("ehr.app.register.invalid"),
    // 功能错误信息列表 - 病人管理
    MissIdentityNo("ehr.patient.miss.identity.no"),
    InvalidIdentityNo("ehr.patient.invalid.identity.no"),
    PatientRegisterFailed("ehr.patient.register.failed"),
    InvalidFormatPatientRegister("ehr.patient.invalid.register.info"),
    PatientRegisterFailedForExist("ehr.patient.exist.create"),
    // 功能错误信息列表 - 病人管理 - 档案
    MissArchiveFile("ehr.archive.miss.file"),
    MissArchiveCrypto("ehr.archive.miss.cryptograph"),
    ParseArchiveCryptoFailed("ehr.archive.parse.cryptograph.failed"),
    SaveArchiveFailed("ehr.archive.save.failed"),
    // 功能错误信息列表 - 病人管理 - 卡
    // 功能错误信息列表 - 字典
    RepeatSysDictName("ehr.sysDict.name.repeat"),
    RepeatOrgDict("ehr.orgDict.repeat"),
    RepeatOrgDictItem("ehr.orgDictItem.repeat"),
@ -98,7 +82,6 @@ public enum ErrorCode {
    InvalidDelSysDictEntry("ehr.sysDictEntry.del.invalid"),
    InvalidUpdateSysDictEntry("ehr.sysDictEntry.update.invalid"),
    // 功能错误信息列表 - 标准化
    ParamError("ehr.std.param.error"),
    InvalidStdVersion("ehr.std.invalid.version"),
    GenerateArchiveFailed("ehr.std.generate.schema.file.failed"),
@ -109,37 +92,158 @@ public enum ErrorCode {
    GetStdVersionFailed("ehr.std.get.version.fail"),
    UnknownStdVersion("ehr.std.version.unknown"),
    // 功能错误信息列表 - CDA
    GetCDAVersionListFailed("ehr.cda.version.list.get.failed"),
    GetCDAVersionFailed("ehr.cda.version.get.failed"),
    SaveCDAVersionFailed("ehr.cda.version.save.failed"),
    GetCDAInfoFailed("ehr.std.get.CDA.list.failed"),
    StdVersionHasPublished("ehr.cda.version.published"),
    GetSchemeVersionListFailed("ehr.scheme.version.list.get.failed"),
    GetSchemeVersionFailed("ehr.scheme.version.get.failed"),
    SaveSchemeVersionFailed("ehr.scheme.version.save.failed"),
    UpdateSchemeVersionFailed("ehr.scheme.version.update.failed"),
    DeleteSchemeVersionFailed("ehr.scheme.version.delete.failed"),
    ExistSchemeVersionName("ehr.scheme.version.name.exist"),
    GetSchemeListFailed("ehr.schemeList.Get.failed"),
    GetSchemeFailed("ehr.scheme.Get.failed"),
    SaveSchemeFailed("ehr.scheme.Save.failed"),
    UpdateSchemeFailed("ehr.scheme.update.failed"),
    DeleteSchemeFailed("ehr.scheme.delete.failed"),
    ExistSchemeVersion("ehr.scheme.version.exist"),
    ExistSchemeName("ehr.scheme.name.exist"),
    GetSchemeDispatchListFailed("ehr.schemeDispatchList.Get.failed"),
    GetSchemeDispatchFailed("ehr.schemeDispatch.Get.failed"),
    SaveSchemeDispatchFailed("ehr.schemeDispatch.Save.failed"),
    UpdateSchemeDispatchFailed("ehr.schemeDispatch.update.failed"),
    DeleteSchemeDispatchFailed("ehr.schemeDispatch.delete.failed"),
    StandardGetListFailed("ehr.standard.getlist.failed"),
    StandardSaveFailed("ehr.standard.save.failed"),
    StandardDeleteFailed("ehr.standard.delete.failed"),
    StandardDeletePublished("ehr.standard.delete.published"),
    StandardUpdateFailed("ehr.standard.update.failed"),
    StandardGetFailed("ehr.standard.get.failed"),
    StandardForkFailed("ehr.standard.fork.failed"),
    StandardImportFailed("ehr.standard.import.failed"),
    StandardExportFailed("ehr.standard.export.failed"),
    ExistStandardCode("ehr.standard.code.exist"),
    ExistStandardName("ehr.standard.name.exist"),
    ExistStandardVersion("ehr.standard.version.exist"),
    StandardVersionGetListFailed("ehr.standard.version.getlist.failed"),
    StandardVersionSaveFailed("ehr.standard.version.save.failed"),
    StandardVersionDeleteFailed("ehr.standard.version.delete.failed"),
    StandardVersionDeletePublished("ehr.standard.version.delete.published"),
    StandardVersionUpdateFailed("ehr.standard.version.update.failed"),
    StandardVersionGetFailed("ehr.standard.version.get.failed"),
    StandardVersionForkFailed("ehr.standard.version.fork.failed"),
    StandardVersionPublishFailed("ehr.standard.version.publish.failed"),
    ExistStandardVersionName("ehr.standard.version.name.exist"),
    StandardVersionUsedDeleteFailed("ehr.standard.version.used.delete.failed"),
    StandardCDACatalogGetListFailed("ehr.standard.cda.catalog.getlist.failed"),
    StandardCDACatalogSaveFailed("ehr.standard.cda.catalog.save.failed"),
    StandardCDACatalogDeleteFailed("ehr.standard.cda.catalog.delete.failed"),
    StandardCDACatalogUpdateFailed("ehr.standard.cda.catalog.update.failed"),
    StandardCDACatalogGetFailed("ehr.standard.cda.catalog.get.failed"),
    StandardCDADatasetMissVersion("ehr.standard.cda.dataset.miss.verison"),
    StandardCDADatasetMissID("ehr.standard.cda.dataset.miss.id"),
    StandardCDADatasetGetListFailed("ehr.standard.cda.dataset.getlist.failed"),
    StandardCDADatasetSaveFailed("ehr.standard.cda.dataset.save.failed"),
    StandardCDADatasetDeleteFailed("ehr.standard.cda.dataset.delete.failed"),
    StandardCDADatasetUpdateFailed("ehr.standard.cda.dataset.update.failed"),
    StandardCDADatasetGetFailed("ehr.standard.cda.dataset.get.failed"),
    StandardCDAMissVersion("ehr.standard.cda.miss.verison"),
    StandardCDAMissID("ehr.standard.cda.miss.id"),
    StandardCDAGetListFailed("ehr.standard.cda.getlist.failed"),
    StandardCDASaveFailed("ehr.standard.cda.save.failed"),
    StandardCDADeleteFailed("ehr.standard.cda.delete.failed"),
    StandardCDAUpdateFailed("ehr.standard.cda.update.failed"),
    StandardCDAGetFailed("ehr.standard.cda.get.failed"),
    StandardDatasetCatalogMissID("ehr.standard.dataset.catalog.miss.id"),
    StandardDatasetCatalogGetListFailed("ehr.standard.dataset.catalog.getlist.failed"),
    StandardDatasetCatalogSaveFailed("ehr.standard.dataset.catalog.save.failed"),
    StandardDatasetCatalogDeleteFailed("ehr.standard.dataset.catalog.delete.failed"),
    StandardDatasetCatalogUpdateFailed("ehr.standard.dataset.catalog.update.failed"),
    StandardDatasetCatalogGetFailed("ehr.standard.dataset.catalog.get.failed"),
    StandardDatasetMissVersion("ehr.standard.dataset.miss.version"),
    StandardDatasetMissID("ehr.standard.dataset.miss.id"),
    StandardDatasetGetListFailed("ehr.standard.dataset.getlist.failed"),
    StandardDatasetSaveFailed("ehr.standard.dataset.save.failed"),
    StandardDatasetDeleteFailed("ehr.standard.dataset.delete.failed"),
    StandardDatasetUpdateFailed("ehr.standard.dataset.update.failed"),
    StandardDatasetGetFailed("ehr.standard.dataset.get.failed"),
    ExistStandardDatasetCode("ehr.standard.dataset.code.exist"),
    StandardMetaDataMissVersion("ehr.standard.metadatamiss.version"),
    StandardMetaDataMissID("ehr.standard.metadatamiss.id"),
    StandardMetaDataGetListFailed("ehr.standard.metadatagetlist.failed"),
    StandardMetaDataSaveFailed("ehr.standard.metadatasave.failed"),
    StandardMetaDataDeleteFailed("ehr.standard.metadatadelete.failed"),
    StandardMetaDataUpdateFailed("ehr.standard.metadataupdate.failed"),
    StandardMetaDataGetFailed("ehr.standard.metadataget.failed"),
    ExistStandardMetaDataCode("ehr.standard.metaData.code.exist"),
    StandardDictMissVersion("ehr.standard.dict.miss.version"),
    StandardDictMissID("ehr.standard.dict.miss.id"),
    StandardDictGetListFailed("ehr.standard.dict.getlist.failed"),
    StandardDictSaveFailed("ehr.standard.dict.save.failed"),
    StandardDictDeleteFailed("ehr.standard.dict.delete.failed"),
    StandardDictUpdateFailed("ehr.standard.dict.update.failed"),
    StandardDictGetFailed("ehr.standard.dict.get.failed"),
    ExistStandardDictCode("ehr.standard.dict.code.exist"),
    StandardDictEntryMissVersion("ehr.standard.dict.entry.miss.version"),
    StandardDictEntryMissID("ehr.standard.dict.entry.miss.id"),
    StandardDictEntryGetListFailed("ehr.standard.dict.entry.getlist.failed"),
    StandardDictEntrySaveFailed("ehr.standard.dict.entry.save.failed"),
    StandardDictEntryDeleteFailed("ehr.standard.dict.entry.delete.failed"),
    StandardDictEntryUpdateFailed("ehr.standard.dict.entry.update.failed"),
    StandardDictEntryGetFailed("ehr.standard.dict.entry.get.failed"),
    ExistStandardDictEntryCode("ehr.standard.dict.entry.code.exist"),
    // 功能错误信息列表 - 数据集
    GetDataSetListFailed("ehr.datasetlist.Get.failed"),
    GetDataSetFailed("ehr.dataset.Get.failed"),
    SavedatasetFailed("ehr.dataset.Save.failed"),
    UpdateDatasetFailed("ehr.dataset.update.failed"),
    DeleteDataSetFailed("ehr.dataset.delete.failed"),
    GetDataSetRelationListFailed("ehr.datasetRelationlist.Get.failed"),
    GetDataSetRelationFailed("ehr.datasetRelation.Get.failed"),
    SaveDatasetRelationFailed("ehr.datasetRelation.Save.failed"),
    UpdateatasetRelationFailed("ehr.datasetRelation.update.failed"),
    DeleteDataSetRelationFailed("ehr.datasetRelation.delete.failed"),
    GetMetaDataListFaield("ehr.metadatalist.Get.failed"),
    GetMetaDataFailed("ehr.metadata.Get.failed"),
    SaveMetaDataFailed("ehr.metadata.save.failed"),
    UpdateMetaDataFailed("ehr.metadata.update.failed"),
    DeleteMetaDataFailed("ehr.metadata.delete.failed"),
    // 功能错误信息列表 - 标准字典
    GetDictListFaild("ehr.dictlist.Get.failed"),
    GetDictFaild("ehr.dict.Get.failed"),
    GetDictEntryListFailed("ehr.dict.entries.get.failed"),
    GetDictEntryFailed("ehr.dict.entry.get.failed"),
    SaveDictFailed("ehr.dict.Save.failed"),
    UpdateDictFailed("ehr.dict.update.failed"),
    DeleteDictFailed("ehr.dict.delete.failed"),
    saveDictEntryFailed("ehr.dict.entry.save.failed"),
    UpdateDictEntryFailed("ehr.dict.entry.update.failed"),
    DeleteDictEntryFailed("ehr.dict.entry.delete.failed"),
    // 功能错误信息列表 - 标准数据来源
    GetPublisherListFaield("ehr.publisherList.get.failed"),
    GetPublisherFailed("ehr.publisher.get.failed"),
    SavePublisherFailed("ehr.publisher.save.failed"),
    UpdatePublisherFailed("ehr.publisher.update.failed"),
    DeletePublisherFailed("ehr.publisher.delete.failed"),
    GetStandardSourceFailed("ehr.std.get.source.list.failed"),
    // 接口模块连接错误信息列表 - 授权Token
    GenerateUserKeyFailed("ehr.security.generate.user.key.failed"),
    GetUserKeyFailed("ehr.security.get.user.key.failed"),
    UserAccessTokenExpired("ehr.security.token.expired"),
@ -150,16 +254,13 @@ public enum ErrorCode {
    NameIsNull("ehr.system.name.null"),
    VersionCodeIsNull("ehr.system.versioncode.null"),
    // 数据库连接错误信息列表 - 事件
    GetEhrArchiveFailed("ehr.ehr.get.archive"),
    GetEhrDataSetFailed("ehr.ehr.get.data.set"),
    // 数据库连接错误信息列表 - hbase
    CreateEhrDataSetTableFailed("ehr.ehr.create.data.set.table.failed"),
    TruncateTableFailed("ehr.hbase.truncate.table.failed"),
    GetTableFailed("ehr.hbase.get.table.failed"),
    // 数据库连接错误信息列表 - solr
    ClearSolrDataFailed("ehr.clear.solr.data.failed"),
    //

+ 5 - 5
Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/TreeView.java

@ -10,7 +10,7 @@ public class TreeView {
    private String id;
    private String pid;
    private String text;
    private Boolean isChecked;
    private Boolean ischecked;
    public String getId() {
        return id;
@ -36,11 +36,11 @@ public class TreeView {
        this.text = text;
    }
    public Boolean getIsChecked() {
        return isChecked;
    public Boolean getIschecked() {
        return ischecked;
    }
    public void setIsChecked(Boolean isChecked) {
        this.isChecked = isChecked;
    public void setIschecked(Boolean ischecked) {
        this.ischecked = ischecked;
    }
}

+ 3 - 4
Hos-Resource-Mini-Update/Hos-Resource-Mini-Update.iml

@ -27,16 +27,15 @@
    <orderEntry type="library" name="Maven: com.oracle:ojdbc14:10.2.0.3.0" level="project" />
    <orderEntry type="library" name="Maven: org.xerial:sqlite-jdbc:3.8.11.2" level="project" />
    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:2.4" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.5" level="project" />
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
    <orderEntry type="library" name="Maven: org.json:json:20151123" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-dbcp2:2.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.3" level="project" />
    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.10" level="project" />
    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
    <orderEntry type="library" name="Maven: commons-dbutils:commons-dbutils:1.6" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.1.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />

+ 7 - 5
Hos-Resource-Mini-Update/src/main/java/com/yihu/ehr/thread/UpdateThread.java

@ -201,9 +201,9 @@ public class UpdateThread implements Runnable {
        try {
            String system = System.getProperty("os.name").toLowerCase();
            if (system.contains("windows")) {
                LogUtil.info("启动windows服务");
                //windows
                String batPathStart = UpdateThread.class.getResource("/").getPath() + "config/start.bat";
                LogUtil.info("启动windows服务:" + batPathStart);
                //windows
                Process psStart = Runtime.getRuntime().exec(batPathStart);
                ByteArrayOutputStream baosStart = new ByteArrayOutputStream();
                InputStream osStart = psStart.getInputStream();
@ -213,8 +213,9 @@ public class UpdateThread implements Runnable {
                }
                osStart.close();
                baosStart.close();
                int i = 0;
                LogUtil.info("开始判断服务是否启动");
                while (true) {
                    int i = 0;
                    String batPath = UpdateThread.class.getResource("/").getPath() + "config/serviceAlive.bat";
                    Process ps = Runtime.getRuntime().exec(batPath);
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
@ -225,13 +226,13 @@ public class UpdateThread implements Runnable {
                    String s = baos.toString();
                    os.close();
                    baos.close();
                    LogUtil.info("服务正在启动:" + Boolean.valueOf(s.trim()));
                    if (Boolean.valueOf(s.trim())) {
                        i++;
                        if (i > 3) {
                            LogUtil.info("服务启动成功");
                            break;
                        }
                        LogUtil.info("第" + i + "次判断服务已经启动");
                        Thread.sleep(1000L);
                    }
                }
            } else {
@ -373,6 +374,7 @@ public class UpdateThread implements Runnable {
    public static void main(String[] args) throws Exception {
        while (true) {
            String batPath = UpdateThread.class.getResource("/").getPath() + "config/serviceAlive.bat";
            System.out.println(batPath);
            Process ps = Runtime.getRuntime().exec(batPath);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            InputStream os = ps.getInputStream();

+ 1 - 1
Hos-Resource-Mini-Update/src/main/resources/config/serviceAlive.bat

@ -1,5 +1,5 @@
@echo off
for /f "skip=3 tokens=4" %%i in ('sc query tomcat8-esb-ds') do set "zt=%%i" &goto :next
for /f "skip=3 tokens=4" %%i in ('sc query tomcat8-esb-ds ') do set "zt=%%i" &goto :next
:next
if /i "%zt%"=="RUNNING" (
    echo true

+ 5 - 3
Hos-Resource-Mini-Update/target/classes/config/threadConfig.properties

@ -1,6 +1,6 @@
soft.versionCode=1
## service address
service.url=https://ehr.yihu.com/api/v1.0/
service.url=https://172.19.103.73:443/api/v1.0/
service.clientId = kHAbVppx44
service.clientKey = Bd2h8rdYhep6NKOO
service.username=user
@ -15,7 +15,7 @@ updateThread.downUpdateWar=simplified-esb/downUpdateWar
updateThread.uploadResult=simplified-esb/uploadResult
##service name
tomcat.servicename=tomcat8-esb-service
tomcat.servicename=tomcat8-esb-ds
##token
token.info={"fingerprint": "abc"}
@ -24,4 +24,6 @@ token.getToken=authorizations/clients/
token.user_name=kHAbVppx44
system.code=MINIESB
system.code=MINIESB
system.downloadPath=http://172.19.103.54/

+ 3 - 4
Hos-Resource-Mini-helper/Hos-Resource-Mini-Helper.iml

@ -27,16 +27,15 @@
    <orderEntry type="library" name="Maven: com.oracle:ojdbc14:10.2.0.3.0" level="project" />
    <orderEntry type="library" name="Maven: org.xerial:sqlite-jdbc:3.8.11.2" level="project" />
    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:2.4" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.5" level="project" />
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
    <orderEntry type="library" name="Maven: org.json:json:20151123" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-dbcp2:2.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.3" level="project" />
    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.10" level="project" />
    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
    <orderEntry type="library" name="Maven: commons-dbutils:commons-dbutils:1.6" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.1.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />

+ 8 - 6
Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/LogThread.java

@ -43,7 +43,7 @@ public class LogThread implements Runnable {
                            //发送日志文件
                            sendLogFile(file);
                            //删除日志文件
                            //deleteLogFile(file);
                            deleteLogFile(file);
                        }
                    }
                }
@ -96,7 +96,7 @@ public class LogThread implements Runnable {
            formParams.add(new BasicNameValuePair("access_token", token));
            formParams.add(new BasicNameValuePair("orgCode", orgCode));
            String booleanString = HttpsClientUtil.postFile(ThreadConfig.SERVICE_URL + ThreadConfig.LOG_THREAD_UPLOAD, file, formParams, ThreadConfig.SERVICE_USERNAME, ThreadConfig.SERVICE_PASSWORD);
            LogUtil.info("日志发送成功:" + booleanString);
            LogUtil.info("日志上传结果:" + booleanString);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
@ -105,7 +105,8 @@ public class LogThread implements Runnable {
        }
    }
    private void deleteLogFile(File file) {
    private void deleteLogFile(String filePathTemp) {
        File file=new File(filePathTemp);
        String filePath = file.getAbsolutePath();
        if (file.delete()) {
            LogUtil.info("日志删除成功");
@ -117,10 +118,11 @@ public class LogThread implements Runnable {
    public String getLogFile() {
        String home = System.getProperty("catalina.home").replace('\\', '/');
        String srcPath = home.substring(0, home.lastIndexOf('/') + 1) +  "log4j";
        String srcPath = home.substring(0, home.lastIndexOf('/') + 1) + "log4j";
        LogUtil.info("压缩日志,日志目录:" + srcPath);
        String filePath = srcPath + File.separator + logFileName;
        ZipUtil.zip(srcPath, filePath);
        LogUtil.info("日志文件路径:" + filePath);
        LogUtil.info("上传的日志文件路径:" + filePath);
        File file = new File(filePath);
        if (file.exists()) {
            LogUtil.info("-----------得到日志成功------------");
@ -133,7 +135,7 @@ public class LogThread implements Runnable {
    private void sleep() throws Exception {
        LogUtil.info("日志线程开始睡眠,睡眠时间(分钟):" + ThreadConfig.LOG_THREAD_SLEEP_TIME);
        Thread.sleep(sleepTime * ThreadConfig.SQL_THREAD_SLEEP_TIME);
        Thread.sleep(sleepTime * ThreadConfig.LOG_THREAD_SLEEP_TIME);
    }
    public static void main(String[] args) {

+ 12 - 0
Hos-Resource-Mini-helper/src/main/java/com.yihu.ehr/thread/SQLThread.java

@ -222,7 +222,19 @@ public class SQLThread implements Runnable {
                    JSONObject jo = JSONObject.fromObject(fillMiningResponString);
                    String id = (String) jo.get("id");
                    String startTime = (String) jo.get("startTime");
                    if (StringUtils.isEmpty(startTime) || startTime.equals("null")) {
                        LogUtil.info("-----------开始时间格式有错");
                        return;
                    }
                    String endtime = (String) jo.get("endTime");
                    if (StringUtils.isEmpty(endtime) || endtime.equals("null")) {
                        LogUtil.info("-----------结束时间格式有错");
                        return;
                    }
                    if (StringUtils.isEmpty(id) || id.equals("null")) {
                        LogUtil.info("-----------id格式有错");
                        return;
                    }
                    String sql = "insert into crawler_supply (id,start_time,end_time,status,remote_id) values " +
                            "('" + UUID.randomUUID() + "'," +
                            "'" + startTime + "' ," +

+ 3 - 3
Hos-Resource-Mini-helper/src/main/resources/config/threadConfig.properties

@ -1,15 +1,15 @@
soft.versionCode=1
## service address
service.url=https://172.19.103.73:443:443/api/v1.0/
service.url=https://192.168.131.15:443/api/v1.0/
service.clientId = kHAbVppx44
service.clientKey = Bd2h8rdYhep6NKOO
logThread.sleepTime=30
logThread.sleepTime=1
sqlThread.sleepTime=30
## logThread sleep time  min
logThread.uploadLog=simplified-esb/uploadLog
logThread.uploadLog=esb/uploadLog
logThread.getUploadFlag=simplified-esb/getUploadFlag

+ 6 - 1
Hos-Resource-Mini/pom.xml

@ -37,7 +37,7 @@
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>
            <version>5.1.38</version>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
@ -60,6 +60,11 @@
            <artifactId>json</artifactId>
            <version>20151123</version>
        </dependency>
        <dependency>
            <groupId>xom</groupId>
            <artifactId>xom</artifactId>
            <version>1.2.5</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>

+ 1 - 34
Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/ApplicationStart.java

@ -29,16 +29,14 @@ public class ApplicationStart implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent context) {
        try {
            String home = System.getProperty("catalina.home").replace('\\','/');
            String homeUrl = home.substring(0,home.lastIndexOf('/')+1);
            dbConfig(homeUrl);
            sslConfig(homeUrl);
            crawlerConfig(homeUrl);
            startThread();
        } catch (Exception e) {
            System.out.print(e.getStackTrace().toString());
            LogUtil.error(e.getStackTrace().toString());
        }
    }
@ -76,37 +74,6 @@ public class ApplicationStart implements ServletContextListener {
        fos.close();
    }
    /**
     * 采集配置
     * @param homeUrl
     * @throws Exception
     */
    private void crawlerConfig(String homeUrl) throws Exception {
        System.setProperty(log4jDirKey, homeUrl + "log4j");
        SysConfig.getInstance().setTempFile(homeUrl + "standard");
        SysConfig.getInstance().setTrustStorePath(homeUrl + "ssl/tomcat.keystore");
        DBHelper db = new DBHelper();
        Object obj = db.scalar("select param_value from system_param where param_key='ORG_CODE'");
        if(obj!=null) {
            SysConfig.getInstance().setOrgCode(obj.toString());
        }
    }
    private void startThread() {
        Thread crawlerThread = new Thread(new CrawlerThread());
        Thread crawlerSupplyThread = new Thread(new CrawlerSupplyThread());
        Thread standardUpdateThread = new Thread(new StandardUpdateThread());
        ThreadManage.add(ThreadManage.CRAWLER_THREAD, crawlerThread);
        ThreadManage.add(ThreadManage.CRAWLER_SUPPLY_THREAD, crawlerSupplyThread);
        ThreadManage.add(ThreadManage.STANDARD_UPDATE_THREAD, standardUpdateThread);
        ThreadManage.setCrawlerInterval();
        ThreadManage.setUpdateInterval();
        //启动线程
        crawlerThread.start();
        crawlerSupplyThread.start();
        standardUpdateThread.start();
    }
    @Override
    public void contextDestroyed(ServletContextEvent context) {

+ 9 - 224
Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/config/SysConfig.java

@ -1,13 +1,7 @@
package com.yihu.ehr.common.config;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.model.PatientIdentity;
import com.yihu.ehr.util.encrypt.RSA;
import com.yihu.ehr.util.http.HOPClient;
import com.yihu.ehr.util.http.Response;
import com.yihu.ehr.util.log.LogUtil;
import com.yihu.ehr.util.operator.ConfigureUtil;
import com.yihu.ehr.util.operator.StringUtil;
import org.dom4j.Document;
import org.dom4j.DocumentException;
@ -20,28 +14,13 @@ import java.util.List;
public class SysConfig {
    public static final String HOS_RESOURCES_CONFIG = "/config/sys.config.xml";
    public static String publicKeyMethod;
    public static String tokenMethod;
    private static volatile SysConfig instance = null;
    public static String publicKey;
    public static String orgCode;
    private String platformUrl;
    private boolean debugMode;
    private String tempFile;
    private String publicKey;
    public static String tempFile;
    public static String registerDataSet;
    public static String registerIdCardNo;
    private static volatile SysConfig instance = null;
    private HashMap<String, PatientIdentity> patientIdentityHashMap;
    private String trustStorePath;
    private String trustStorePwd;
    private String registerDataSet;
    private String registerIdCardNo;
    private String platformUserName;
    private String platformUserPass;
    private String platformAppId;
    private String platformAppSecret;
    private String accessToken;
    private String refreshToken;
    private String platformUser;
    private String basciAuthPwd;
    private String basciAuthUser;
    private SysConfig() {
        patientIdentityHashMap = new HashMap<>();
@ -69,10 +48,6 @@ public class SysConfig {
    }
    public Boolean isDebugMode() {
        return debugMode;
    }
    public String getTempFile() {
        return this.tempFile;
    }
@ -81,65 +56,12 @@ public class SysConfig {
        this.tempFile = tempFile;
    }
    public void setTrustStorePath(String trustStorePath) {
        this.trustStorePath = trustStorePath;
        HOPCLientInit();
    }
    public String getPlatformUrl() {
        return platformUrl;
    public String getPublicKey() {
        return publicKey;
    }
    /**
     * @return String
     * @throws Exception
     * @modify 2015.09.15 airhead 修订日志信息不对问题
     */
    public String getPublicKey() throws Exception {
        if (publicKey != null) {
            return publicKey;
        }
        if (publicKeyMethod == null) {
            publicKeyMethod = ConfigureUtil.getProValue(ConfigureUtil.CRAWLER_PROPERTIES, "ha.url.security.publicKey.get");
        }
        HOPClient hopClient = new HOPClient(HOPClient.HTTPS);
        hopClient.setAppId(SysConfig.getInstance().getPlatformAppId());
        hopClient.setUrl(SysConfig.getInstance().getPlatformUrl());
        hopClient.setMethod(publicKeyMethod + platformUserName);
        Response response = hopClient.get();
        if (response == null) {
            LogUtil.fatal("获取公钥失败.");
            return null;
        }
        if (response.statusCode != 200) {
            LogUtil.fatal("获取公钥失败,错误代码:" + response.statusCode);
            return null;
        }
        try {
            ObjectMapper mapper = new ObjectMapper();
            JsonNode rootNode = mapper.readValue(response.body, JsonNode.class);
            String code = rootNode.path("code").asText();
            if ("ehr.invalid.user".equals(code)) {
                LogUtil.fatal("获取公钥失败:无效用户,请检查 Sys.config.xml文件中 <user>节点值是否正确");
                return null;
            }
            JsonNode publicNode = rootNode.path("result").path("public_key");
            if (publicNode.isMissingNode()) {
                LogUtil.fatal("获取公钥失败,返回数据格式不正确.");
                return null;
            }
            publicKey = publicNode.asText();
        } catch (Exception e) {
            LogUtil.fatal("获取公钥失败,返回数据格式不正确.");
            return null;
        }
        return publicKey;
    public void setPublicKey(String publicKey) {
        this.publicKey = publicKey;
    }
    public PatientIdentity getPatientIdentity(String dataSetCode) {
@ -158,105 +80,6 @@ public class SysConfig {
        return registerIdCardNo;
    }
    /**
     * @return String
     * @modify 2015.09.15 airhead 修订日志信息不对问题
     */
    public String getAccessToken() {
        try {
            if (tokenMethod == null) {
                tokenMethod = ConfigureUtil.getProValue(ConfigureUtil.CRAWLER_PROPERTIES, "ha.url.security.token.get");
            }
            HOPClient hopClient = new HOPClient(HOPClient.HTTPS);
            hopClient.setAppId(SysConfig.getInstance().getPlatformAppId());
            hopClient.setUrl(SysConfig.getInstance().getPlatformUrl());
            hopClient.setMethod(tokenMethod);
//            hopClient.setParam("grant_type", "password");
            hopClient.setParam("user_name", getPlatformUserName());
            hopClient.setParam("app_secret", SysConfig.getInstance().getPlatformAppSecret());
            String publicKey = getPublicKey();
            String encryptPwd = RSA.encrypt(platformUserPass, RSA.genPublicKey(publicKey));
            hopClient.setParam("rsa_pw", encryptPwd);
            Response response = hopClient.get();
            if (response == null) {
                LogUtil.fatal("获取令牌失败.");
                return null;
            }
            if (response.statusCode != 200) {
                LogUtil.fatal("获取令牌失败,错误代码:" + response.statusCode);
                return null;
            }
            ObjectMapper mapper = new ObjectMapper();
            JsonNode rootNode = mapper.readValue(response.body, JsonNode.class);
            String code = rootNode.path("code").asText();
            if (code.equals("ehr.invalid.username.or.pwd")) {
                LogUtil.fatal("无效用户名或密码,请检查Sys.config.xml文件中 <user>节点值是否正确");
                return null;
            }
            if (code.equals("ehr.app.register.invalid")) {
                LogUtil.fatal("该app应用在系统中不存在,请检查Sys.config.xml文件中 <app>节点值是否正确");
                return null;
            }
            if (code.equals("ehr.security.token.expired") && !StringUtil.isEmpty(refreshToken)) {
                hopClient.reset();
                hopClient.setMethod(tokenMethod);
                hopClient.setAppId(SysConfig.getInstance().getPlatformAppId());
                hopClient.setParam("grant_type", "password");
                hopClient.setParam("refresh_token", refreshToken);
                hopClient.setParam("user_id", getPlatformUserName());
                response = hopClient.get();
                if (response == null) {
                    LogUtil.fatal("刷新令牌失败.");
                    return null;
                }
                if (response.statusCode != 200) {
                    LogUtil.fatal("刷新令牌失败,错误代码:" + response.statusCode);
                    return null;
                }
                rootNode = mapper.readValue(response.body, JsonNode.class);
                code = rootNode.path("code").asText();
                if (StringUtil.isEmpty(code) || !code.equals("0")) {
                    LogUtil.fatal("刷新令牌失败,错误代码:" + code);
                    return null;
                }
            }
            accessToken = rootNode.path("result").get("access_token").asText();
            refreshToken = rootNode.path("result").path("refresh_token").asText();
            return accessToken;
        } catch (Exception e) {
            LogUtil.error(e);
        }
        return null;
    }
    public String getPlatformUser() {
        return platformUser;
    }
    public String getPlatformUserName() {
        return platformUserName;
    }
    public String getPlatformAppId() {
        return platformAppId;
    }
    private String getPlatformAppSecret() {
        return platformAppSecret;
    }
    private Document getDocument() throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = null;
@ -282,43 +105,13 @@ public class SysConfig {
                return;
            }
            this.initPlatForm(rootElement);
            this.initCrawler(rootElement);
            this.initEventNo(rootElement);
            String debug = rootElement.elementTextTrim("debug");
            if (StringUtil.isEmpty(debug) || debug.equals("false")) {
                debugMode = false;
            }
        } catch (Exception e) {
            LogUtil.error(e);
        }
    }
    private void initPlatForm(Element rootElement) throws Exception {
        Element platform = rootElement.element("platform");
        String platformUrl = platform.elementTextTrim("url");
        if (!StringUtil.isEmpty(platformUrl)) {
            this.platformUrl = platformUrl;
        }
        Element trustStore = platform.element("trust_store");
        trustStorePwd = trustStore.attributeValue("pwd");
        Element platformUserElem = platform.element("user");
        platformUserName = platformUserElem.getTextTrim();
        platformUserPass = platformUserElem.attributeValue("pwd");
        Element platformAppElem = platform.element("app");
        platformAppId = platformAppElem.getTextTrim();
        platformAppSecret = platformAppElem.attributeValue("secret");
        Element basciAuthElem = platform.element("basic_auth");
        basciAuthUser = basciAuthElem.getTextTrim();
        basciAuthPwd = basciAuthElem.attributeValue("pwd");
        HOPClient.initBasciAuth(basciAuthUser, basciAuthPwd);
    }
    private void initCrawler(Element rootElement) {
        List queueDataSets = rootElement.element("patient_queue").elements("dataset");
        for (Object obj : queueDataSets) {
@ -349,14 +142,6 @@ public class SysConfig {
        }
    }
    private void HOPCLientInit () {
        try {
            HOPClient.initHttps(trustStorePath, trustStorePwd);
        } catch (Exception e) {
            LogUtil.error(e);
        }
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }

+ 1 - 0
Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/config/ThreadConfig.java

@ -6,4 +6,5 @@ public class ThreadConfig {
    public static int UPDATE_THREAD_SLEEP_TIME = 60;
    public static int CRAWLER_SUPPLY_THREAD_SLEEP_TIME = 60;
}

+ 20 - 0
Hos-Resource-Mini/src/main/java/com.yihu.ehr/common/constants/Constants.java

@ -69,4 +69,24 @@ public class Constants {
    public static final String MYSQL = "mysql";
    public static final String ORACLE = "oracle";
    public static final String SQLSERVER = "sqlserver";
    //===========================开放接口参数 start=============================
    /**
     * 获取就诊病人列表(GetPatientQueue)
     */
    public static final String GETPATIENTQUEUE="01001";
    /**
     *获取就诊病人档案数据集(GetPatientDataset)
     */
    public static final String GETPATIENTDATASET="01002";
    /**
     * 上传就诊病人档案数据集(PostPatientDataset)
     */
    public static final String POSTPATIENTDATASET="01003";
    // 09开头的都是系统级别
    public static final String SYSTEM_ERROR="09000";
    public static final String SYSTEM_PARAMS="09001";
    public static final String SYSTEM_PARAMS_MESSAGE="参数错误";
    //===========================开放接口参数 end=============================
}

File diff suppressed because it is too large
+ 36 - 2
Hos-Resource-Mini/src/main/java/com.yihu.ehr/controller/SystemController.java


+ 1 - 0
Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterDict.java

@ -34,6 +34,7 @@ public class AdapterDict extends BaseEntity {
        if (json == null || json.isNull("std_dict_item_code")) {
            return new String(INVALID_ADAPTER_DICT);
        }
        return json.getString("std_dict_item_code");
    }

+ 1 - 1
Hos-Resource-Mini/src/main/java/com.yihu.ehr/model/entity/adapter/AdapterMetaData.java

@ -65,7 +65,7 @@ public class AdapterMetaData extends BaseEntity {
                if (!json.isNull("dict_code")) {
                    stdMetaDataT.setDictCode(json.getString("dict_code"));
                }
                if (!json.isNull("dict_value_type")) {
                if (!json.isNull("dict_value_type") && json.getString("dict_value_type").length()>0) {
                    stdMetaDataT.setDictValueType(json.getInt("dict_value_type"));
                }
            }

+ 1 - 1
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/DatacollectManager.java

@ -95,7 +95,7 @@ public class DatacollectManager implements IDatacollectManager {
    @Override
    public DataGridResult getJobRepeat(int page,int size) throws Exception
    {
        String sql = "select * from crawler_supply where 1=1";
        String sql = "select * from crawler_supply where 1=1 and start_time is not null and end_time is not null";
        DBList list = query.queryBySql(sql,page,size);

+ 108 - 78
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/SystemManager.java

@ -2,6 +2,8 @@ package com.yihu.ehr.service;
import com.yihu.ehr.common.config.SysConfig;
import com.yihu.ehr.common.config.ThreadConfig;
import com.yihu.ehr.dbhelper.common.enums.CommonEnum;
import com.yihu.ehr.dbhelper.jdbc.DBDriver;
import com.yihu.ehr.dbhelper.jdbc.DBHelper;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.model.DataSource;
@ -10,15 +12,17 @@ import com.yihu.ehr.model.UserInfo;
import com.yihu.ehr.service.intf.ISystemManager;
import com.yihu.ehr.service.thread.StandardUpdateThread;
import com.yihu.ehr.service.thread.ThreadManage;
import com.yihu.ehr.util.http.HOPClient;
import com.yihu.ehr.util.httpclient.EsbHttp;
import com.yihu.ehr.util.httpclient.Response;
import com.yihu.ehr.util.operator.ConfigureUtil;
import org.json.JSONObject;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpSession;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Enumeration;
import java.util.List;
import java.util.UUID;
@ -147,16 +151,29 @@ public class SystemManager implements ISystemManager {
    测试数据源
     */
    @Override
    public Result testDataSource(String config) throws Exception {
        DBHelper db = new DBHelper(config, config);
        if (db.test()) {
            return Result.success("连接测试成功!");
        } else {
            if (db.errorMessage.length() > 0) {
                return Result.error(db.errorMessage);
            } else {
                return Result.error("连接测试成失败!");
    public Result testDataSource(String uri) {
        try {
            DBDriver.registerDriver(uri);
            Connection conn = DriverManager.getConnection(uri);
            if(conn!=null) {
                String message="连接测试成功!";
                if(conn.isClosed())
                {
                    message = "连接测试失败!";
                }
                conn.close();
                return Result.success(message);
            }
            else {
                return Result.error("连接测试失败!");
            }
        }
        catch (Exception ex)
        {
            return Result.error(ex.getMessage());
        }
    }
@ -164,85 +181,98 @@ public class SystemManager implements ISystemManager {
    登录操作
    */
    @Override
    public Result loginAction(HttpSession session, String user, String password) throws Exception {
        //特殊用户
        if (user.equals("admin") && password.equals("JKZL")) {
            UserInfo obj = new UserInfo();
            obj.setLoginCode("admin");
            obj.setRealName("管理员");
            obj.setOrgCode("JKZL");
            obj.setOrgName("健康之路");
            session.setAttribute("userInfo", obj);
            return Result.success("登录成功!");
        }
    public Result loginAction(HttpSession session, String user, String password) {
        try {
            //特殊用户
            if (user.equals("admin") && password.equals("JKZL")) {
                UserInfo obj = new UserInfo();
                obj.setLoginCode("admin");
                obj.setRealName("管理员");
                obj.setOrgCode("JKZL");
                obj.setOrgName("健康之路");
                session.setAttribute("userInfo", obj);
                return Result.success("登录成功!");
            }
        //根据用户名/密码到总平台校验
        Response response = EsbHttp.loginAction(user, password);
            //根据用户名/密码到总平台校验
            Response response = EsbHttp.loginAction(user, password);
        if (response == null || response.statusCode != 200) {
            return Result.error("登录失败!网络错误或者服务器不可用。");
        }
        try {
            JSONObject obj = new JSONObject(response.body);
            if (obj.has("token"))//登录成功
            {
                String token = obj.getString("token");
                //获取用户信息
                Response re = EsbHttp.getUserInfo(user, token);
                JSONObject userObject = new JSONObject(re.body);
                UserInfo userInfo = new UserInfo();
                userInfo.setLoginCode(user);
                userInfo.setRealName(userObject.getString("realName"));
                String orgCode = "";
                String orgName = "";
                if(!userObject.get("organization").equals(null)) {
                    JSONObject orgInfo = userObject.getJSONObject("organization");
                    orgCode = orgInfo.getString("orgCode");
                    orgName = orgInfo.getString("fullName");
                    userInfo.setOrgCode(orgCode);
                    userInfo.setOrgName(orgName);
                }
                else{
                    return Result.error("该用户未配置机构!");
                }
                session.setAttribute("userInfo", userInfo);
                //判断组织编码是否为空
                String orgCodeOld = this.getSystemParam("ORG_CODE");
                if (orgCodeOld==null || orgCodeOld.length() == 0) {
                    this.saveSystemParams("FINGER_PRINT", UUID.randomUUID().toString());
                    this.saveSystemParams("ORG_CODE", orgCode);
                    this.saveSystemParams("ORG_NAME", orgName);
                    //启动标准
                    if (SysConfig.getInstance().isEmptyOrgCode()) {
                        SysConfig.getInstance().setOrgCode(orgCode);
                        Thread standardUpdateThread = new Thread(new StandardUpdateThread());
                        ThreadManage.add(ThreadManage.STANDARD_UPDATE_THREAD, standardUpdateThread);
                        ThreadManage.setUpdateInterval();
                        if (!standardUpdateThread.isAlive()) {
                            standardUpdateThread.start();
            if (response != null && response.getStatusCode() == 200) {
                JSONObject obj = new JSONObject(response.getBody());
                if (obj.has("token"))//登录成功
                {
                    String token = obj.getString("token");
                    //获取用户信息
                    Response re = EsbHttp.getUserInfo(user, token);
                    if (re != null && re.getStatusCode() == 200) {
                        JSONObject userObject = new JSONObject(re.getBody());
                        UserInfo userInfo = new UserInfo();
                        userInfo.setLoginCode(user);
                        userInfo.setRealName(userObject.getString("realName"));
                        String orgCode = "";
                        String orgName = "";
                        if(userObject.has("organization") && !userObject.get("organization").equals(null)) {
                            JSONObject orgInfo = userObject.getJSONObject("organization");
                            orgCode = orgInfo.getString("orgCode");
                            orgName = orgInfo.getString("fullName");
                            userInfo.setOrgCode(orgCode);
                            userInfo.setOrgName(orgName);
                        }
                        else{
                            return Result.error("该用户未配置机构!");
                        }
                        session.setAttribute("userInfo", userInfo);
                        //判断组织编码是否为空
                        String orgCodeOld = this.getSystemParam("ORG_CODE");
                        if (orgCodeOld==null || orgCodeOld.length() == 0) {
                            this.saveSystemParams("FINGER_PRINT", UUID.randomUUID().toString());
                            this.saveSystemParams("ORG_CODE", orgCode);
                            this.saveSystemParams("ORG_NAME", orgName);
                            //启动标准
                            SysConfig.getInstance().setOrgCode(orgCode);
                            Thread standardUpdateThread = new Thread(new StandardUpdateThread());
                            ThreadManage.add(ThreadManage.STANDARD_UPDATE_THREAD, standardUpdateThread);
                            ThreadManage.setUpdateInterval();
                            if (!standardUpdateThread.isAlive()) {
                                standardUpdateThread.start();
                            }
                            return Result.success("登录成功!");
                        }
                        else {
                            if (orgCodeOld.equals(orgCode)) {
                                return Result.success("登录成功!");
                            } else {
                                return Result.error("机构编码不一致!");
                            }
                        }
                    }
                    return Result.success("登录成功!");
                } else {
                    if (orgCodeOld.equals(orgCode)) {
                        return Result.success("登录成功!");
                    } else {
                        return Result.error("机构编码不一致!");
                    else{
                        return Result.error("获取用户信息失败!");
                    }
                }
                else {
                    if(obj.has("message"))
                    {
                        return Result.error("登录失败!"+obj.getString("message"));
                    }
                    else{
                        return Result.error("登录失败!");
                    }
                }
            }
            else {
                if(obj.has("message"))
                String msg = "登录失败。";
                if (response != null)
                {
                    return Result.error("登录失败!"+obj.getString("message"));
                }
                else{
                    return Result.error("登录失败!");
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                }
                return Result.error(msg);
            }
        }
        catch (Exception ex) {
            return Result.error(ex.getMessage());

+ 40 - 8
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/CrawlerManager.java

@ -55,6 +55,13 @@ public class CrawlerManager {
    }
    public void dataCrawlerFrequency() {
        List<JSONObject> versionList = db.query("select code from std_inner_version order by code desc");
        if(versionList==null)
        {
            LogUtil.info("标准数据还未初始化,请确认!");
            return;
        }
        String uuid = UUID.randomUUID().toString();
        Date lastCralwerTime = DateUtil.getSysDateTime();
        lastCralwerTime = DateUtil.formatYMDToYMDHMS(lastCralwerTime.toString());
@ -74,6 +81,13 @@ public class CrawlerManager {
    }
    public void dataCrawlerSupply() {
        List<JSONObject> versionList = db.query("select code from std_inner_version order by code desc");
        if(versionList==null)
        {
            LogUtil.info("标准数据还未初始化,请确认!");
            return;
        }
        List<JSONObject> jsonList = db.query("select * from crawler_supply where status != 1");
        if (!CollectionUtil.isEmpty(jsonList)) {
            for (JSONObject json : jsonList) {
@ -81,14 +95,22 @@ public class CrawlerManager {
                db.execute("update crawler_supply set status = 2 where id = '"+id+"'");
                Date startTime = DateUtil.formatYMDToYMDHMS(json.getString("start_time"));
                Date endTime = DateUtil.formatYMDToYMDHMS(json.getString("end_time"));
                LogUtil.info("补采任务开始!任务ID:" + id + ",采集时间:" + startTime + "~" + endTime);
                if ((endTime.getTime() - startTime.getTime()) <= 0) {
                    LogUtil.info("补采任务提前结束,时间间隔小于或等于0!任务ID:" + id + ",采集时间:" + startTime + "~" + endTime);
                    changeFillMiningStatus(json, "补采任务提前结束,时间间隔小于或等于0!");
                    return;
                String message = "";
                if(startTime!=null && endTime!=null) {
                    LogUtil.info("补采任务开始!任务ID:" + id + ",采集时间:" + startTime + "~" + endTime);
                    if ((endTime.getTime() - startTime.getTime()) <= 0) {
                        LogUtil.info("补采任务提前结束,时间间隔小于或等于0!任务ID:" + id + ",采集时间:" + startTime + "~" + endTime);
                        changeFillMiningStatus(json, "补采任务提前结束,时间间隔小于或等于0!");
                        return;
                    }
                    message = dataCrawler(startTime, endTime, id, 1);
                    LogUtil.info("补采任务结束!任务ID:" + id + ",采集时间:" + startTime + "~" + endTime + "\n" + message);
                }
                else{
                    message = "采集时间范围:" + startTime + "~" + endTime + "无效!";
                    LogUtil.info(message);
                }
                String message = dataCrawler(startTime, endTime, id, 1);
                LogUtil.info("补采任务结束!任务ID:" + id + ",采集时间:" + startTime + "~" + endTime + "\n" +message);
                if (!StringUtil.isEmpty(message)) {
                    changeFillMiningStatus(json, message);
                }
@ -105,6 +127,9 @@ public class CrawlerManager {
    }
    public synchronized String dataCrawler(Date begin, Date end, String taskId, int type) {
        if (SysConfig.getInstance().isEmptyOrgCode()) {
            return "本次任务执行失败,机构代码为空";
        }
        Integer count = 0;
        Integer totalCount = 0;
        getAdapterDataSetList();
@ -127,6 +152,13 @@ public class CrawlerManager {
                if (!CollectionUtil.isEmpty(patientList)) {
                    totalCount = patientList.size();
                    for (Patient patient : patientList) {
                        String token;
                        try {
                            token = EsbHttp.getToken();
                        } catch (Exception e) {
                            LogUtil.error("本次任务执行失败,获取token失败!");
                            return "本次任务执行失败,获取token失败!";
                        }
                        if (type == 1) {
                            patient.setReUploadFlg(StringUtil.toString(true));
                        } else {
@ -134,7 +166,7 @@ public class CrawlerManager {
                        }
                        LogUtil.trace("采集->注册->打包上传,任务ID:"+taskId+",patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
                        // COLLECT->REGISTER->UPLOAD
                        Boolean result = dispatch.collectData(patient, adapterDataSetList, dataSourceMap);
                        Boolean result = dispatch.collectData(patient, adapterDataSetList, dataSourceMap, token);
                        SqlCreate sqlCreate = new SqlCreate();
                        sqlCreate.setTableName("task_track");

+ 14 - 10
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DBOrigin.java

@ -97,22 +97,26 @@ public class DBOrigin {
                if (data == null || ((ArrayNode) data).size() == 0) {
                    return null;
                }
                JSONObject json = new JSONObject();
                if (data != null && data.get(0) != null) {
                    Iterator fileNames = data.get(0).fieldNames();
                JSONArray jsonArray = new JSONArray();
                for(int i=0;i<data.size();i++)
                {
                    JsonNode o = data.get(i);
                    JSONObject json = new JSONObject();
                    Iterator fileNames = o.fieldNames();
                    while (fileNames.hasNext()) {
                        String fieldName = (String)fileNames.next();
                        if (!StringUtil.isEmpty(itemTagMap.get(fieldName))) {
                            json.put(itemTagMap.get(fieldName), data.get(0).get(fieldName).asText());
                            json.put(itemTagMap.get(fieldName), o.get(fieldName).asText());
                        }
                    }
                    if (json.keySet().size() != itemTagMap.keySet().size()) {
                        LogUtil.info("适配数据元数量与机构提供数据元不一致,请确认!");
                        LogUtil.info("视图提供数据元:" + json.keySet().toString() + "适配数据元:" + itemList.toString());
                    }
                    jsonArray.add(json);
                }
                if (json.keySet().size() != itemTagMap.keySet().size()) {
                    LogUtil.info("适配数据元数量与机构提供数据元不一致,请确认!");
                    LogUtil.info("视图提供数据元:" + json.keySet().toString() + "适配数据元:" + itemList.toString());
                }
                JSONArray jsonArray = new JSONArray();
                jsonArray.add(0, json);
                ObjectMapper mapper = new ObjectMapper();
                //JSON ----> JsonNode
                JsonNode jsonNode = mapper.readTree(jsonArray.toString());

+ 15 - 56
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/crawler/DataCollectDispatcher.java

@ -12,19 +12,13 @@ import com.yihu.ehr.service.patient.PatientCDAIndex;
import com.yihu.ehr.service.patient.PatientCDAUpload;
import com.yihu.ehr.util.db.DBSessionFactory;
import com.yihu.ehr.util.file.FileUtil;
import com.yihu.ehr.util.http.HOPClient;
import com.yihu.ehr.util.http.Response;
import com.yihu.ehr.util.httpclient.EsbHttp;
import com.yihu.ehr.util.log.LogUtil;
import com.yihu.ehr.util.operator.CollectionUtil;
import com.yihu.ehr.util.operator.ConfigureUtil;
import com.yihu.ehr.util.operator.StringUtil;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
public class DataCollectDispatcher {
@ -45,7 +39,7 @@ public class DataCollectDispatcher {
     * @param patient 病人
     * @return true-采集成功,false-采集失败
     */
    public Boolean collectData(Patient patient, List<AdapterDataSet> adapterDataSetList, Map<String, DBSessionFactory> dataSourceMap) {
    public Boolean collectData(Patient patient, List<AdapterDataSet> adapterDataSetList, Map<String, DBSessionFactory> dataSourceMap, String token) {
        Boolean result = true;
        Map<String, AdapterDataSet> dataSetMap = new HashMap<>();
        List<ObjectNode> dataList = new ArrayList<>();
@ -62,17 +56,19 @@ public class DataCollectDispatcher {
                    if (jsonObject == null) {
                        continue;
                    }
                    if (jsonObject != null && !StringUtil.isEmpty(jsonObject)) {
                        dataSetMap.put(adapterDataSet.getAdapterDataSetT().getStdDatasetCode(), adapterDataSet);
                        dataList.add(jsonObject);
                    }
                    //注册病人
                    if (SysConfig.getInstance().getRegisterDataSet().equals(adapterDataSet.getAdapterDataSetT().getStdDatasetCode())) {
                        if (!StringUtil.isEmpty(jsonObject.get("data")) && !StringUtil.isEmpty(jsonObject.get("data").get(0))) {
                            if (!StringUtil.isEmpty(jsonObject.get("data").get(0).get(SysConfig.getInstance().getRegisterIdCardNo()))) {
                                register(patient, StringUtil.toString(jsonObject));
                                register(patient, StringUtil.toString(jsonObject), token);
                            }
                        }
                    }
                    if (jsonObject != null && !StringUtil.isEmpty(jsonObject)) {
                        dataSetMap.put(adapterDataSet.getAdapterDataSetT().getStdDatasetCode(), adapterDataSet);
                        dataList.add(jsonObject);
                    }
                }
            }
            LogUtil.info("采集病人成功,patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
@ -82,9 +78,10 @@ public class DataCollectDispatcher {
            result = false;
        }
        //上传档案
        try {
            if (!CollectionUtil.isEmpty(dataList)) {
                if (!upload(dataList, patient, dataSetMap)) {
                if (!upload(dataList, patient, dataSetMap, token)) {
                    result = false;
                }
            }
@ -96,7 +93,7 @@ public class DataCollectDispatcher {
        return result;
    }
    public Boolean upload(List<ObjectNode> dataList, Patient patient, Map<String, AdapterDataSet> dataSetMap) {
    public Boolean upload(List<ObjectNode> dataList, Patient patient, Map<String, AdapterDataSet> dataSetMap, String token) {
        Boolean result = true;
        try {
            DataSetTransformer dataTransformer = new DataSetTransformer();
@ -117,7 +114,7 @@ public class DataCollectDispatcher {
                }
            }
            PatientCDAUpload patientCDAUpload = new PatientCDAUpload();
            if (!patientCDAUpload.upload(patient)) {
            if (!patientCDAUpload.upload(patient, token)) {
                result = false;
            }
        } catch (Exception e) {
@ -144,46 +141,8 @@ public class DataCollectDispatcher {
     * @return boolean
     * 注册不是否成功 统一返回true
     */
    public Boolean register(Patient patient, String data) {
        if (registerMethod == null) {
            registerMethod = ConfigureUtil.getProValue(ConfigureUtil.CRAWLER_PROPERTIES, "ha.url.patient.register");
        }
        if (StringUtil.isEmpty(data)){
            LogUtil.info("注册病人信息请求失败:无具体病人信息,patient_id="+patient.getPatientId()+", event_no="+patient.getEventNo());
        }
        HOPClient hopClient = new HOPClient(HOPClient.HTTPS);
        hopClient.setAppId(SysConfig.getInstance().getPlatformAppId());
        hopClient.setUrl(SysConfig.getInstance().getPlatformUrl());
        hopClient.setMethod(registerMethod);
        List<NameValuePair> formParams = new ArrayList<>();
        formParams.add(new BasicNameValuePair("user_info", data));
        Response response = hopClient.postForm(formParams);
        if (response == null) {
            LogUtil.info("注册病人信息请求失败:响应response为null,patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
        }
        if (response.statusCode != 200) {
            LogUtil.info("注册病人信息请求失败.错误代码:" + response.statusCode + "patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
        }
        ObjectMapper mapper = new ObjectMapper();
        JsonNode rootNode = null;
        try {
            rootNode = mapper.readValue(response.body, JsonNode.class);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        JsonNode codeNode = rootNode.get("code");
        JsonNode messageNode = rootNode.get("message");
        String result = codeNode.asText();
        String message = messageNode.asText();
        if (!result.equals("0") || "true".equals(message)) {
            LogUtil.info("注册病人信息请求失败.失败信息:" + message + rootNode.get("message").asText() + "patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
            return false;
        } else {
            LogUtil.info("注册病人信息成功,patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
            return true;
        }
    public Boolean register(Patient patient, String data, String token) {
        return EsbHttp.register(patient, data, token);
    }

+ 1 - 1
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/intf/ISystemManager.java

@ -21,7 +21,7 @@ public interface ISystemManager {
    Result saveDataSource(String id,String name,String config) throws Exception;
    Result testDataSource(String config) throws Exception;
    Result testDataSource(String uri) throws Exception;
    Result loginAction(HttpSession session ,String user,String password) throws Exception;
}

+ 12 - 51
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/patient/PatientCDAUpload.java

@ -1,17 +1,12 @@
package com.yihu.ehr.service.patient;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.common.config.SysConfig;
import com.yihu.ehr.model.Patient;
import com.yihu.ehr.util.compress.Zipper;
import com.yihu.ehr.util.encrypt.MD5;
import com.yihu.ehr.util.encrypt.RSA;
import com.yihu.ehr.util.file.FileUtil;
import com.yihu.ehr.util.http.HOPClient;
import com.yihu.ehr.util.http.Response;
import com.yihu.ehr.util.httpclient.EsbHttp;
import com.yihu.ehr.util.log.LogUtil;
import com.yihu.ehr.util.operator.ConfigureUtil;
import java.io.File;
import java.security.Key;
@ -34,7 +29,7 @@ public class PatientCDAUpload {
     * @modify 2015.09.15 airhead 修订删除目录
     * @modify 2015.09.19 airhead 修复无文档问题及错误信息
     */
    public Boolean upload(Patient patient) {
    public Boolean upload(Patient patient, String token) {
        ZipFile zipFile = zip(patient);
        try {
            if (zipFile == null || zipFile.file == null) {
@ -42,7 +37,7 @@ public class PatientCDAUpload {
                return false;
            }
            boolean result = upload(patient, zipFile);
            boolean result = upload(patient, zipFile, token);
            if (!result) {
                LogUtil.fatal("上传病人档案失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return result;
@ -73,7 +68,13 @@ public class PatientCDAUpload {
            String filePath = patientCDAIndex.createIndex(PatientCDAIndex.IndexType.ZIP, PatientCDAIndex.FileType.ZIP);
            UUID uuidPwd = UUID.randomUUID();
            String pwd = uuidPwd.toString();
            Key key = RSA.genPublicKey(SysConfig.getInstance().getPublicKey());
            String PublicKey = SysConfig.getInstance().getPublicKey();
            if(PublicKey== null ||  PublicKey.length() == 0) {
                PublicKey = EsbHttp.getPublicKey();
                SysConfig.getInstance().setPublicKey(PublicKey);
            }
            Key key = RSA.genPublicKey(PublicKey);
            if (key == null) {
                LogUtil.fatal("压缩文件错误,获取公钥错误.");
                return null;
@ -96,48 +97,8 @@ public class PatientCDAUpload {
        return null;
    }
    private boolean upload(Patient patient, ZipFile zipFile) {
        try {
            if (uploadMethod == null) {
                uploadMethod = ConfigureUtil.getProValue(ConfigureUtil.CRAWLER_PROPERTIES, "ha.url.patient.upload");
            }
            String fileMd5= MD5.getMd5ByFile(zipFile.file);
            HOPClient hopClient = new HOPClient(HOPClient.HTTPS);
            hopClient.setAppId(SysConfig.getInstance().getPlatformAppId());
            hopClient.setUrl(SysConfig.getInstance().getPlatformUrl());
            hopClient.setMethod(uploadMethod);
            hopClient.setParam("md5", fileMd5);
            hopClient.setParam("package_crypto", zipFile.encryptPwd);
            hopClient.setParam("user_name", SysConfig.getInstance().getPlatformUserName());
            Response response = hopClient.postFile(zipFile.file.getAbsolutePath());
            if (response == null) {
                LogUtil.fatal("上传病人档案请求失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            }
            if (response.statusCode != 200) {
                LogUtil.fatal("上传病人档案请求失败,错误代码:" + response.statusCode + ",patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            }
            ObjectMapper mapper = new ObjectMapper();
            JsonNode rootNode = mapper.readValue(response.body, JsonNode.class);
            JsonNode codeNode = rootNode.get("code");
            String result = codeNode.asText();
            if (!result.equals("0")) {
                LogUtil.fatal("上传病人档案失败,错误代码:" + result + ",patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            } else {
                LogUtil.info("上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return true;
            }
        } catch (Exception e) {
            LogUtil.fatal("上传病人档案异常,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            LogUtil.error(e);
            return false;
        }
    private boolean upload(Patient patient, ZipFile zipFile, String token) {
        return EsbHttp.upload(patient, zipFile.file, zipFile.encryptPwd, token);
    }
    private class ZipFile {

+ 54 - 157
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/standard/StandardManager.java

@ -1,19 +1,13 @@
package com.yihu.ehr.service.standard;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.common.config.SysConfig;
import com.yihu.ehr.common.constants.Constants;
import com.yihu.ehr.dbhelper.jdbc.DBHelper;
import com.yihu.ehr.util.compress.Zipper;
import com.yihu.ehr.util.encode.Base64;
import com.yihu.ehr.util.encrypt.RSA;
import com.yihu.ehr.util.file.FileUtil;
import com.yihu.ehr.util.http.HOPClient;
import com.yihu.ehr.util.http.Response;
import com.yihu.ehr.util.httpclient.EsbHttp;
import com.yihu.ehr.util.httpclient.HttpClientUtil;
import com.yihu.ehr.util.httpclient.Response;
import com.yihu.ehr.util.log.LogUtil;
import com.yihu.ehr.util.operator.CollectionUtil;
import com.yihu.ehr.util.operator.ConfigureUtil;
import com.yihu.ehr.util.operator.SqlCreate;
import com.yihu.ehr.util.operator.StringUtil;
import org.dom4j.Document;
@ -22,30 +16,19 @@ import org.dom4j.io.SAXReader;
import org.json.JSONObject;
import java.io.File;
import java.io.IOException;
import java.security.Key;
import java.util.*;
/**
 * 标准管理,负责版本的升级,解包及相关安全
 *
 * @created Created by Air on 2015/6/3.
 */
public class StandardManager {
    public static String versionMethod;
    public static String downMethod;
    private static volatile StandardManager instance;
    private DBHelper db;
    private SysConfig sysConfig;
    private String downloadFilePath;
    private String encryptPwd;
    private File[] zipFiles;
    private String localVersion;
    private String remoteVersion;
    public StandardManager(){
        if (db == null) {
            db = new DBHelper();
        }
        sysConfig = SysConfig.getInstance();
    }
@ -78,14 +61,13 @@ public class StandardManager {
        return true;
    }
    public Boolean checkUpdate() {
    public Boolean checkUpdate(String remoteVersion) {
        try {
            getRemoteVersion();
            if (remoteVersion == null) {
            if (StringUtil.isEmpty(remoteVersion)) {
                LogUtil.warn("总支撑平台尚无可用版本进行标准升级");
                return false;
            }
            localVersion = getCurrentVersion();
            String localVersion = getCurrentVersion();
            if (StringUtil.isEmpty(localVersion)) {
                return true;
            }
@ -103,13 +85,19 @@ public class StandardManager {
    }
    public boolean update() {
        if (checkUpdate()) {
            boolean result = download();
            if (!result) {
        if (sysConfig.isEmptyOrgCode()) {
            LogUtil.fatal("当前机构代码为空,版本无法更新,请确认!");
            return false;
        }
        String remoteVersion = getRemoteVersion(sysConfig.getOrgCode());
        if (checkUpdate(remoteVersion)) {
            String encryptPwd = download(remoteVersion, sysConfig.getOrgCode());
            if (StringUtil.isEmpty(encryptPwd)) {
                LogUtil.fatal("下载标准包错误.");
                return false;
            }
            versionUpdate();
            versionUpdate(encryptPwd);
            localVersion = remoteVersion;
        }
        return true;
    }
@ -120,50 +108,14 @@ public class StandardManager {
     * @return String
     */
    public synchronized String getCurrentVersion() {
        if (!StringUtil.isEmpty(localVersion)){
            return localVersion;
        }
        List<JSONObject> list = db.query("select code from std_inner_version order by code desc");
        if (!CollectionUtil.isEmpty(list)) {
            localVersion = list.get(0).getString("code");
        if (StringUtil.isEmpty(localVersion)){
            localVersion = new StandardService().getCurrentVersion();
        }
        return localVersion;
    }
    private void getRemoteVersion() {
        try {
            if (versionMethod == null){
                versionMethod = ConfigureUtil.getProValue(ConfigureUtil.CRAWLER_PROPERTIES, "ha.url.standard.getVersion");
            }
            HOPClient hopClient = new HOPClient(HOPClient.HTTPS);
            hopClient.setAppId(sysConfig.getPlatformAppId());
            hopClient.setUrl(sysConfig.getPlatformUrl());
            hopClient.setMethod(versionMethod);
            if (sysConfig.isEmptyOrgCode()) {
                LogUtil.fatal("当前机构代码为空,版本无法更新,请确认!");
                return;
            }
            hopClient.setParam("org_code", sysConfig.getOrgCode());
            Response response = hopClient.get();
            if (response == null || response.statusCode != 200) {
                LogUtil.fatal("获取健康云平台标准版本号失败,网络错误或者服务器不可用.");
                return;
            }
            ObjectMapper mapper = new ObjectMapper();
            JsonNode rootNode = mapper.readValue(response.body, JsonNode.class);
            String code = rootNode.path("code").asText();
            if (!code.equals("0")) {
                LogUtil.fatal("获取健康云平台标准版本号失败," + code);
                return;
            }
            remoteVersion = rootNode.path("result").path("version").asText();
        } catch (IOException e) {
            LogUtil.fatal("获取远程版本号异常");
            LogUtil.error(e);
        }
    private String getRemoteVersion(String orgCode) {
        return EsbHttp.getRemoteVersion(orgCode);
    }
    /**
@ -171,9 +123,9 @@ public class StandardManager {
     *
     * @return boolean
     */
    private boolean versionUpdate() {
    private boolean versionUpdate(String encryptPwd) {
        boolean result;
        result = unpack();
        result = unpack(encryptPwd);
        if (!result) {
            LogUtil.fatal("标准包解压错误.");
            return false;
@ -184,73 +136,54 @@ public class StandardManager {
            return false;
        }
        result = genData();
        result = new StandardService().genData(zipFiles);
        if (!result) {
            LogUtil.fatal("生成标准数据失败.");
            return false;
        }
        updateVersion();
        return true;
    }
    private void updateVersion() {
        if (remoteVersion != null) {
            localVersion = new String(remoteVersion);
        }
    }
    private boolean download() {
    private String download(String remoteVersion, String orgCode) {
        Response response = EsbHttp.download(remoteVersion, orgCode);
        try {
            downMethod= ConfigureUtil.getProValue(ConfigureUtil.CRAWLER_PROPERTIES, "ha.url.standard.allSchemaMappingPlan");
            HOPClient hopClient = new HOPClient(HOPClient.HTTPS);
            hopClient.setAppId(sysConfig.getPlatformAppId());
            hopClient.setUrl(sysConfig.getPlatformUrl());
            hopClient.setMethod(downMethod);
            hopClient.setParam("versionCode", remoteVersion);
            hopClient.setParam("user_name", sysConfig.getPlatformUserName());
            hopClient.setParam("orgcode", sysConfig.getOrgCode());
//            if (!bFull) {
//                hopClient.setParam("current_version", localVersion);
//            }
            Response response = hopClient.get();
            if (response == null || response.statusCode != 200) {
                LogUtil.fatal("下载标准包失败,网络错误或者服务器不可用.");
                return false;
        }
            ObjectMapper mapper = new ObjectMapper();
            JsonNode rootNode = mapper.readValue(response.body, JsonNode.class);
            String code = rootNode.path("code").asText();
            if (!code.equals("0")) {
                LogUtil.fatal("下载标准包失败," + code);
                return false;
            }
            if (response != null && response.getStatusCode() == 200) {
                JSONObject re = new JSONObject(response.getBody());
            encryptPwd = rootNode.path("result").path("cryptograph").asText();
            String zipContent = rootNode.path("result").get("zipfile").asText();
            byte[] decode = Base64.decode(zipContent);
            downloadFilePath = sysConfig.getTempFile() + "/" + Constants.STANDARD_ZIP;
            boolean writeFile = FileUtil.writeFile(downloadFilePath, decode, "UTF-8");
            if (!writeFile) {
                LogUtil.fatal("下载标准包失败,生成本地临时文件错误.");
                if (re.has("password")&&re.has("url")) {
                    String encryptPwd = re.getString("password");
                    String zipContent = re.getString("url");
                    String downloadFilePath = SysConfig.getInstance().getTempFile() + "/" + Constants.STANDARD_ZIP;
                    //boolean writeFile = FileUtil.writeFile(downloadFilePath, zipContent, "UTF-8");
                    HttpClientUtil.downLoadFile(downloadFilePath,zipContent,"","");
                return false;
                    return encryptPwd;
                }
                else{
                    LogUtil.fatal("获取标准包失败");
                    return null;
                }
            }
            else{
                LogUtil.fatal("下载标准包失败,网络错误或者服务器不可用.");
                return null;
            }
            return true;
        } catch (Exception e) {
            LogUtil.fatal("下载标准包异常:");
            LogUtil.error(e);
        }
        return false;
        return null;
    }
    private boolean unpack() {
    private boolean unpack(String encryptPwd) {
        try {
            Key key = RSA.genPublicKey(sysConfig.getPublicKey());
            String publicKey = sysConfig.getPublicKey();
            if(publicKey==null ||publicKey.length()==0)
            {
                publicKey = EsbHttp.getPublicKey();
                sysConfig.setPublicKey(publicKey);
            }
            Key key = RSA.genPublicKey(publicKey);
            if (key == null) {
                LogUtil.fatal("解压文件错误,获取公钥错误.");
                return false;
@ -285,42 +218,6 @@ public class StandardManager {
        return true;
    }
    private boolean genData() {
        List<String> sqlList = new ArrayList<>();
        List<String> fileNameList = new ArrayList<>();
        List<String> deleteDataList = new ArrayList<>();
        for (File file : zipFiles) {
            if (!file.getName().contains("_cda")) {
                if (file.getName().contains("org_")||file.getName().contains("adapter_")
                        ||file.getName().contains("std_")) {
                    fileNameList.add(StringUtil.substring(file.getName(), 0, file.getName().indexOf(Constants.DOT)));
                }
                if (!file.getParentFile().getName().equals(Constants.CDA_FILE)) {
                    createData(file, sqlList);
                }
            }
        }
        SqlCreate sqlCreate = new SqlCreate();
        for (String fileName : fileNameList) {
            sqlCreate.setTableName(fileName);
            deleteDataList.add(sqlCreate.deleteData());
        }
        String[] deleteArray = new String[deleteDataList.size()];
        deleteDataList.toArray(deleteArray);
        String[] sqlArray = new String[sqlList.size()];
        sqlList.toArray(sqlArray);
        try {
            db.executeBatch(deleteArray);
            db = new DBHelper();
            db.executeBatch(sqlArray);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }
    private void createData(File file, List<String> sqlList) {
        try {
            SAXReader reader = new SAXReader();

+ 1 - 5
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/CrawlerSupplyThread.java

@ -12,11 +12,7 @@ public class CrawlerSupplyThread implements Runnable {
        while (ThreadManage.crawlerSupplyIsRunning) {
            try {
                LogUtil.info("补采线程开始");
                if (StandardManager.getInstance().isDataInit()) {
                    CrawlerManager.getInstance().dataCrawlerSupply();
                } else {
                    LogUtil.info("标准数据还未初始化,请确认!");
                }
                CrawlerManager.getInstance().dataCrawlerSupply();
                LogUtil.info("补采线程结束");
                sleep();
            } catch (InterruptedException e) {

+ 4 - 6
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/CrawlerThread.java

@ -1,6 +1,7 @@
package com.yihu.ehr.service.thread;
import com.yihu.ehr.common.config.ThreadConfig;
import com.yihu.ehr.dbhelper.jdbc.DBConfig;
import com.yihu.ehr.dbhelper.jdbc.DBHelper;
import com.yihu.ehr.service.crawler.CrawlerManager;
import com.yihu.ehr.service.standard.StandardManager;
@ -8,16 +9,14 @@ import com.yihu.ehr.util.log.LogUtil;
public class CrawlerThread implements Runnable {
    DBHelper db = new DBHelper(Thread.currentThread().getName(), DBConfig.get("defaultUri"));
    @Override
    public void run() {
        while (ThreadManage.crawlerIsRunning) {
            try {
                LogUtil.info("采集线程开始");
                if (StandardManager.getInstance().isDataInit()) {
                    CrawlerManager.getInstance().dataCrawlerFrequency();
                } else {
                    LogUtil.info("标准数据还未初始化,请确认!");
                }
                CrawlerManager.getInstance().dataCrawlerFrequency();
                LogUtil.info("采集线程结束");
                sleep();
            } catch (InterruptedException e) {
@ -40,7 +39,6 @@ public class CrawlerThread implements Runnable {
    private void sleep() throws Exception {
        if (ThreadConfig.CRAWLER_THREAD_SLEEP_TIME == 0) {
            DBHelper db = new DBHelper();
            Object obj = db.scalar("select param_value from system_param where param_key='INTERVAL'");
            if(obj!=null) {
                ThreadConfig.CRAWLER_THREAD_SLEEP_TIME = Integer.parseInt(obj.toString());

+ 1 - 0
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/thread/StandardUpdateThread.java

@ -2,6 +2,7 @@ package com.yihu.ehr.service.thread;
import com.yihu.ehr.common.config.SysConfig;
import com.yihu.ehr.common.config.ThreadConfig;
import com.yihu.ehr.dbhelper.jdbc.DBConfig;
import com.yihu.ehr.dbhelper.jdbc.DBHelper;
import com.yihu.ehr.service.standard.StandardManager;
import com.yihu.ehr.util.log.LogUtil;

+ 58 - 29
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/file/FileUtil.java

@ -43,7 +43,7 @@ public class FileUtil {
        return true;
    }
    public static boolean writeFile(String filePath,InputStream fis, String encoding) throws IOException {
    public static boolean writeFile(String filePath, InputStream fis, String encoding) throws IOException {
        File file = new File(filePath);
        if (!file.getParentFile().exists()) {
            if (!file.getParentFile().mkdirs()) {
@ -87,13 +87,14 @@ public class FileUtil {
    /**
     * file转string
     *
     * @param file 文件
     * @return string类型流
     */
    public static String convertFileToString(File file) {
        StringBuilder sb = new StringBuilder();
        if(file.isFile()&&file.exists()) {
        if (file.isFile() && file.exists()) {
            InputStreamReader read = null;
            try {
                read = new InputStreamReader(new FileInputStream(file), "UTF-8");
@ -122,20 +123,19 @@ public class FileUtil {
    }
    /**
     * 清空文件内容
     *
     * @param filePath 文件路径
     * @param content 写入内容
     * @param content  写入内容
     */
    public static void clearInfoForFile(String filePath,String content) {
        File file =new File(filePath);
    public static void clearInfoForFile(String filePath, String content) {
        File file = new File(filePath);
        try {
            if(!file.exists()) {
            if (!file.exists()) {
                file.createNewFile();
            }
            FileWriter fileWriter =new FileWriter(file);
            FileWriter fileWriter = new FileWriter(file);
            fileWriter.write(content);
            fileWriter.flush();
            fileWriter.close();
@ -145,36 +145,34 @@ public class FileUtil {
    }
    /**
     * 记录文件最后读取的位置
     * @param readPath  被读取文件路径
     * @param savePath  保存被读取文件的最后位置 的文件路径
     *
     * @param readPath 被读取文件路径
     * @param savePath 保存被读取文件的最后位置 的文件路径
     */
    public static Integer  saveFilePos(String  readPath,  String  savePath)  {
        boolean result=false;
        File readFile=new File(readPath);
        Integer lenth=null;
        try  {
            if(readFile.exists()){
    public static Integer saveFilePos(String readPath, String savePath) {
        boolean result = false;
        File readFile = new File(readPath);
        Integer lenth = null;
        try {
            if (readFile.exists()) {
                InputStream inputStream = new FileInputStream(readPath);
                lenth = inputStream.available();
                clearInfoForFile(savePath,"");//清空内容
                writeFile(savePath,lenth.toString(),"UTF-8");//重新写入标识
                clearInfoForFile(savePath, "");//清空内容
                writeFile(savePath, lenth.toString(), "UTF-8");//重新写入标识
            }
        }
        catch  (Exception  e)  {
        } catch (Exception e) {
            e.printStackTrace();
        }
        return lenth;
    }
    public static Integer getFileSize(String path) {
        Integer size=0;
        InputStream inputStream=null;
        File file=new File(path);
        if (file.exists()){
        Integer size = 0;
        InputStream inputStream = null;
        File file = new File(path);
        if (file.exists()) {
            try {
                inputStream = new FileInputStream(path);
                size = inputStream.available();
@ -182,12 +180,13 @@ public class FileUtil {
                e.printStackTrace();
            }
        }
       return size;
        return size;
    }
    /**
     * 读取文本文件内容
     * @param file  文件路径
     *
     * @param file 文件路径
     * @return
     */
    public static String readFileText(File file) {
@ -215,4 +214,34 @@ public class FileUtil {
        return stringBuilder.toString();
    }
    public static File writeFile(String filePathAndName, String fileContent) {
        File f = new File(filePathAndName);
        OutputStreamWriter write =null;
        BufferedWriter writer=null;
        try {
            if (!f.exists()) {
                f.createNewFile();
            }
             write = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
             writer = new BufferedWriter(write);
             writer.write(fileContent);
        } catch (Exception e) {
            System.out.println("写文件内容操作出错");
            e.printStackTrace();
        }finally {
            try {
                if(writer!=null){
                    writer.close();
                }
                if(write!=null){
                    write.close();
                }
            }catch (Exception e){
                e.printStackTrace();;
            }
        }
        return f;
    }
}

+ 0 - 58
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HAHttpClient.java

@ -1,58 +0,0 @@
package com.yihu.ehr.util.http;
import org.apache.http.Header;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.util.List;
import java.util.Map;
/**
 * @author Air
 * @version 1.0
 * @created 2015.08.16 9:10
 */
public class HAHttpClient implements IHAHttpClient {
    private HAHttpClientImpl haHttpClientImpl;
    private RequestConfig requestConfig;
    private HttpClientContext context;
    public HAHttpClient(RequestConfig requestConfig, HttpClientContext context) {
        haHttpClientImpl = new HAHttpClientImpl(requestConfig, context);
    }
    @Override
    public Response get(String url) {
        return get(url,null);
    }
    @Override
    public Response get(String url,Map<String,String> header) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        return haHttpClientImpl.get(httpClient, url,header);
    }
    public Response put(String url) {
        return put(url, null);
    }
    public Response put(String url,Map<String,String> header) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        return haHttpClientImpl.put(httpClient, url, header);
    }
    @Override
    public Response postForm(String url, List<NameValuePair> formParams) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        return haHttpClientImpl.postForm(httpClient, url, formParams);
    }
    @Override
    public Response postFile(String url, String filePath) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        return haHttpClientImpl.postFile(httpClient, url, filePath);
    }
}

+ 0 - 172
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HAHttpClientImpl.java

@ -1,172 +0,0 @@
package com.yihu.ehr.util.http;
import com.yihu.ehr.util.log.LogUtil;
import org.apache.http.Consts;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
 * @author Air
 * @version 1.0
 * @created 2015.08.16 10:20
 */
public class HAHttpClientImpl {
    private RequestConfig requestConfig;
    private HttpClientContext context;
    public HAHttpClientImpl(RequestConfig requestConfig, HttpClientContext context) {
        this.requestConfig = requestConfig;
        this.context = context;
    }
    public Response postForm(CloseableHttpClient httpClient, String url, List<NameValuePair> formParams) {
        UrlEncodedFormEntity postEntity = new UrlEncodedFormEntity(formParams, Consts.UTF_8);
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(postEntity);
        httpPost.setConfig(requestConfig);
        CloseableHttpResponse response = null;
        HttpEntity entity = null;
        try {
            response = httpClient.execute(httpPost, context);
            entity = response.getEntity();
            Response res = new Response(response.getStatusLine().getStatusCode(), EntityUtils.toString(entity));
            return res;
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            close(httpClient, entity);
        }
        return null;
    }
    public Response postFile(CloseableHttpClient httpClient, String url, String filePath) {
        File file = new File(filePath);
        HttpPost httpPost = new HttpPost(url);
        FileBody fileBody = new FileBody(file);
        MultipartEntity fileEntity = new MultipartEntity();
        fileEntity.addPart("file", fileBody);
        httpPost.setEntity(fileEntity);
        httpPost.setConfig(requestConfig);
        CloseableHttpResponse response = null;
        HttpEntity entity = null;
        try {
            response = httpClient.execute(httpPost, context);
            entity = response.getEntity();
            Response res = new Response(response.getStatusLine().getStatusCode(), EntityUtils.toString(entity));
            return res;
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            close(httpClient, entity);
        }
        return null;
    }
    public Response get(CloseableHttpClient httpClient, String url) {
        return get(httpClient,url,null);
    }
    public Response get(CloseableHttpClient httpClient, String url,Map<String,String> header) {
        HttpGet httpget = new HttpGet(url);
        httpget.setConfig(requestConfig);
        CloseableHttpResponse response;
        HttpEntity entity = null;
        if(header!=null)
        {
            for (String key : header.keySet()) {
                httpget.addHeader(key, header.get(key));
            }
        }
        try {
            response = httpClient.execute(httpget, context);
            entity = response.getEntity();
            Response res = new Response(response.getStatusLine().getStatusCode(), EntityUtils.toString(entity));
            return res;
        } catch (IOException e) {
            LogUtil.error(e);
        } finally {
            close(httpClient, entity);
        }
        return null;
    }
    public Response put(CloseableHttpClient httpClient, String url) {
        return put(httpClient, url, null);
    }
    public Response put(CloseableHttpClient httpClient, String url,Map<String,String> header) {
        HttpPut http = new HttpPut(url);
        http.setConfig(requestConfig);
        CloseableHttpResponse response;
        HttpEntity entity = null;
        if(header!=null)
        {
            for (String key : header.keySet()) {
                http.addHeader(key, header.get(key));
            }
        }
        try {
            response = httpClient.execute(http, context);
            entity = response.getEntity();
            Response res = new Response(response.getStatusLine().getStatusCode(), EntityUtils.toString(entity));
            return res;
        } catch (IOException e) {
            LogUtil.error(e);
        } finally {
            close(httpClient, entity);
        }
        return null;
    }
    private void close(CloseableHttpClient httpClient, HttpEntity entity) {
        try {
            EntityUtils.consume(entity);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            httpClient.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

+ 0 - 71
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HAHttpsClient.java

@ -1,71 +0,0 @@
package com.yihu.ehr.util.http;
import org.apache.http.Header;
import org.apache.http.NameValuePair;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.util.List;
import java.util.Map;
/**
 * @author Air
 * @version 1.0
 * @created 2015.07.02 15:37
 */
public class HAHttpsClient implements IHAHttpClient {
    private HAHttpClientImpl haHttpClientImpl;
    private SSLConnectionSocketFactory sslConnectionSocketFactory;
    private RequestConfig requestConfig;
    private HttpClientContext context;
    public HAHttpsClient(SSLConnectionSocketFactory sslConnectionSocketFactory, RequestConfig requestConfig, HttpClientContext context) {
        haHttpClientImpl = new HAHttpClientImpl(requestConfig, context);
        this.sslConnectionSocketFactory = sslConnectionSocketFactory;
    }
    public Response get(String url) {
        return get(url, null);
    }
    public Response get(String url,Map<String,String> header) {
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLSocketFactory(this.sslConnectionSocketFactory)
                .build();
        return haHttpClientImpl.get(httpClient, url,header);
    }
    public Response put(String url) {
        return put(url, null);
    }
    public Response put(String url,Map<String,String> header) {
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLSocketFactory(this.sslConnectionSocketFactory)
                .build();
        return haHttpClientImpl.put(httpClient, url, header);
    }
    public Response postForm(String url, List<NameValuePair> formParams) {
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLSocketFactory(this.sslConnectionSocketFactory)
                .build();
        return haHttpClientImpl.postForm(httpClient, url, formParams);
    }
    public Response postFile(String url, String filePath) {
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLSocketFactory(this.sslConnectionSocketFactory)
                .build();
        return haHttpClientImpl.postFile(httpClient, url, filePath);
    }
}

+ 0 - 241
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HOPClient.java

@ -1,241 +0,0 @@
package com.yihu.ehr.util.http;
import com.yihu.ehr.util.encrypt.MD5;
import com.yihu.ehr.util.file.FileUtil;
import com.yihu.ehr.util.log.LogUtil;
import com.yihu.ehr.util.operator.StringUtil;
import org.apache.http.NameValuePair;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.BasicCredentialsProvider;
import sun.misc.BASE64Encoder;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
public class HOPClient {
    static final public String HTTPS = "https";
    static final public String HTTP = "http";
    static private HttpsInitialise initialise = new HttpsInitialise();
    static private RequestConfig requestConfig;
    static private HttpClientContext context;
    private final String version = "1.0";
    private final String signMethod = "md5";
    private String method;
    private String timestamp;
    private String format;
    private String appId;
    private String accessToken;
    private String url;
    private TreeMap<String, String> paramMap;
    private IHAHttpClient ihaHttpClient;
    public HOPClient(String protocol) {
        paramMap = new TreeMap<>();
        if (protocol.equals(HTTPS)) {
            ihaHttpClient = new HAHttpsClient(initialise.getSslConnectionSocketFactory(), requestConfig, context);
        } else {
            ihaHttpClient = new HAHttpClient(requestConfig, context);
        }
    }
    public static void initHttps(String trustStorePath, String password) throws Exception {
        initialise.init(trustStorePath, password);
    }
    public static void initBasciAuth(String username, String password) throws Exception {
        requestConfig = RequestConfig.custom().
                setAuthenticationEnabled(true).build();
        context = HttpClientContext.create();
        //通过http的上下文设置账号密码
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                new org.apache.http.auth.UsernamePasswordCredentials(username, password));
        context.setCredentialsProvider(credsProvider);
    }
    public void reset() {
        paramMap.clear();
    }
    public void setMethod(String method) {
        this.method = method;
    }
    public void setFormat(String format) {
        this.format = format;
    }
    public void setAccessToken(String accessToken) {
        this.accessToken = accessToken;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public void setParam(String key, String value) {
        paramMap.put(key, value);
    }
    public Response get() {
        String completeUrl = completeUrl();
        if (completeUrl == null) {
            return null;
        }
        return ihaHttpClient.get(completeUrl);
    }
    public Response basicPut(String user,String password)
    {
        String completeUrl = completeUrl();
        if (completeUrl == null) {
            return null;
        }
        Map<String,String> header = new HashMap<>();
        String auth  = new BASE64Encoder().encode((user+":"+password).getBytes());
        header.put("Authorization","Basic "+auth);
        return ihaHttpClient.put(completeUrl,header);
    }
    public boolean downLoad(String path) {
        String completeUrl = completeUrl();
        if (completeUrl == null) {
            return false;
        }
        Response response = ihaHttpClient.get(completeUrl);
        if (response == null || response.statusCode != 200) {
            return false;
        }
        try {
            boolean result = FileUtil.writeFile(path, response.body, "UTF-8");
            if (!result) {
                LogUtil.fatal("下载文件失败.");
            }
            return result;
        } catch (IOException e) {
            e.printStackTrace();
            LogUtil.error("下载文件失败:");
            LogUtil.error(e);
        }
        return false;
    }
    public Response postForm(List<NameValuePair> formParams) {
        String completeUrl = completeUrl();
        if (completeUrl == null) {
            return null;
        }
        return ihaHttpClient.postForm(completeUrl, formParams);
    }
    public Response postFile(String filePath) {
        String completeUrl = completeUrl();
        try {
            Response response = ihaHttpClient.postFile(completeUrl, filePath);
            return response;
        } catch (Exception e) {
            LogUtil.fatal(completeUrl);
            return null;
        }
    }
    public void setAppId(String appId) {
        this.appId = appId;
    }
    private String completeUrl() {
        try {
//            addParam("method", method, true);
            addParam("format", format, false);
            addParam("app_id", appId, true);
            addParam("timestamp", getTimestamp(), true);
            addParam("v", version, true);
            addParam("sign_method", signMethod, true);
            addParam("access_token", accessToken, false);
            addParam("sign", signParam(), true);
            String completeUrl = url +method+ genParam();
            LogUtil.trace(completeUrl);
            return completeUrl;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    private void addParam(String paramName, String paramValue, boolean bMust) throws Exception {
        if (StringUtil.isEmpty(paramValue)) {
            if (bMust) {
                throw new Exception(paramName + "参数不能为空.");
            } else {
                return;
            }
        }
        String encodeValue = URLEncoder.encode(paramValue, "UTF-8");
        paramMap.put(paramName, encodeValue);
    }
    private String signParam() {
        Iterator<Map.Entry<String, String>> iterator = paramMap.entrySet().iterator();
        StringBuilder builder = new StringBuilder();
        while (iterator.hasNext()) {
            Map.Entry<String, String> next = iterator.next();
            String key = next.getKey();
            String value = next.getValue();
            builder.append(key);
            builder.append(value);
        }
        try {
            return MD5.hash(builder.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    private String genParam() throws Exception {
        Iterator<Map.Entry<String, String>> iterator = paramMap.entrySet().iterator();
        StringBuilder builder = new StringBuilder();
        while (iterator.hasNext()) {
            Map.Entry<String, String> next = iterator.next();
            String key = next.getKey();
            String value = next.getValue();
            if (value == null) {
                throw new Exception("参数错误:参数" + key + "值为空.");
            }
            if (builder.length() == 0) {
                builder.append("?");
            } else {
                builder.append("&");
            }
            builder.append(key);
            builder.append("=");
            builder.append(URLEncoder.encode(value, "UTF-8"));
        }
        return builder.toString();
    }
    private String getTimestamp() {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        timestamp = format.format(new Date());
        return timestamp;
    }
}

+ 0 - 22
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HopHostnameVerifier.java

@ -1,22 +0,0 @@
package com.yihu.ehr.util.http;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;
/**
 * @author Air
 * @version 1.0
 * @created 2015.07.02 15:48
 */
public class HopHostnameVerifier implements HostnameVerifier {
    @Override
    public boolean verify(String hostname, SSLSession session) {
//        if("localhost".equals(hostname)){
//            return true;
//        } else {
//            return false;
//        }
        return true;
    }
}

+ 0 - 408
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HttpClientUtil.java

@ -1,408 +0,0 @@
package com.yihu.ehr.util.http;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.*;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.util.StringUtils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * HTTP 请求工具类
 *
 * @author : cwd
 * @version : 1.0.0
 * @date : 2016/1/14
 * @see : TODO
 */
public class HttpClientUtil {
    /**
     * 发送 GET 请求(HTTP),不带输入数据 不加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url) throws Exception {
        return doGet(url, new HashMap<String, Object>(), "", "");
    }
    /**
     * 发送 GET 请求(HTTP),不带输入数据 不加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url, Map<String, Object> params) throws Exception {
        return doGet(url, params, "", "");
    }
    /**
     * 发送 GET 请求(HTTP),不带输入数据 加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url, String username, String password) throws Exception {
        return doGet(url, new HashMap<String, Object>(), username, password);
    }
    /**
     * httpClient的get请求方式
     *
     * @return
     * @throws Exception
     */
    public static String doGet(String url, Map<String, Object> params, String username, String password)
            throws Exception {
        String responString = "";
        CloseableHttpResponse response1 = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        //设置请求信息
        try {
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            HttpGet httpget = new HttpGet(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
            httpget.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response1 = httpclient.execute(httpget, context);
            } else {
                response1 = httpclient.execute(httpget);
            }
            HttpEntity entity1 = response1.getEntity();
            responString = EntityUtils.toString(entity1, "UTF-8");
        } finally {
            response1.close();
            httpclient.close();
        }
        return responString;
    }
    /**
     * httpClient的post请求方式
     *
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doPost(String url, Map<String, Object> params, String username, String password) throws Exception {
        String responString = "";
        CloseableHttpResponse response = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            HttpPost httpPost = new HttpPost(url);
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //设置参数
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
            for (Map.Entry<String, Object> entry : params.entrySet()) {
                formparams.add(new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())));
            }
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
            httpPost.setEntity(entity);
            httpPost.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response = httpclient.execute(httpPost, context);
            } else {
                response = httpclient.execute(httpPost);
            }
            HttpEntity httpEntity = response.getEntity();
            //流转字符串
            responString = EntityUtils.toString(httpEntity);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            response.close();
            httpclient.close();
        }
        return responString;
    }
    /**
     * httpClient的put请求方式
     *
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doPut(String url, Map<String, Object> params, String username, String password) throws Exception {
        String responString = "";
        CloseableHttpResponse response1 = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            HttpPut httpPut = new HttpPut(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
            httpPut.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response1 = httpclient.execute(httpPut, context);
            } else {
                response1 = httpclient.execute(httpPut);
            }
            HttpEntity entity1 = response1.getEntity();
            responString = EntityUtils.toString(entity1, "UTF-8");
        } finally {
            response1.close();
            httpclient.close();
        }
        return responString;
    }
    /**
     * httpClient的delete请求方式
     *
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doDelete(String url, Map<String, Object> params, String username, String password) throws Exception {
        String responString = "";
        CloseableHttpResponse response1 = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            HttpDelete httpget = new HttpDelete(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
            httpget.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response1 = httpclient.execute(httpget, context);
            } else {
                response1 = httpclient.execute(httpget);
            }
            HttpEntity entity1 = response1.getEntity();
            responString = EntityUtils.toString(entity1, "UTF-8");
        } finally {
            response1.close();
            httpclient.close();
        }
        return responString;
    }
    /**
     * 文件上传
     *
     * @param file
     * @param url
     * @param username
     * @param password
     * @return
     * @throws IOException
     */
    public static String sendFile(File file, String url, String username, String password) throws IOException {
        String responString = "";
        CloseableHttpResponse response = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            HttpPost httpPost = new HttpPost(url);
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            httpPost.setConfig(requestConfig);
            FileBody bin = new FileBody(file);
            MultipartEntityBuilder reqEntity = MultipartEntityBuilder.create();
            reqEntity.addPart("file", bin);
            httpPost.setEntity(reqEntity.build());
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response = httpclient.execute(httpPost, context);
            } else {
                response = httpclient.execute(httpPost);
            }
            HttpEntity httpEntity = response.getEntity();
            //流转字符串
            responString = EntityUtils.toString(httpEntity);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            response.close();
            httpclient.close();
        }
        return responString;
    }
    /**
     * 文件下载
     *
     * @param filePath
     * @param url
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static File downFile(String filePath, Map<String, Object> params, String url, String username, String password) throws Exception {
        File file = null;
        CloseableHttpResponse response = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            HttpPost httpPost = new HttpPost(url);
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //设置参数
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
            for (Map.Entry<String, Object> entry : params.entrySet()) {
                formparams.add(new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())));
            }
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
            httpPost.setEntity(entity);
            httpPost.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response = httpclient.execute(httpPost, context);
            } else {
                response = httpclient.execute(httpPost);
            }
            HttpEntity httpEntity = response.getEntity();
            InputStream is = httpEntity.getContent();
            file = new File(filePath);
            file.getParentFile().mkdirs();
            FileOutputStream fileout = new FileOutputStream(file);
            /**
             * 根据实际运行效果 设置缓冲区大小
             */
            byte[] buffer = new byte[1024];
            int ch = 0;
            while ((ch = is.read(buffer)) != -1) {
                fileout.write(buffer, 0, ch);
            }
            is.close();
            fileout.flush();
            fileout.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            response.close();
            httpclient.close();
        }
        return file;
    }
    public static void main(String[] args) throws Exception {
        Map<String, Object> params = new HashMap<String, Object>();
//        params.put("standard", "{\n" +
//                "    \"id\": 4,\n" +
//                "    \"name\": \"电子健康档案标准bbb\",\n" +
//                "    \"code\": \"YY20160114\",\n" +
//                "    \"publisher\": \"健康之路2\",\n" +
//                "    \"publisherOrgCode\": \"jkzl\",\n" +
//                "    \"summary\": \"string\",\n" +
//                "    \"refStandard\": \"WS2012\",\n" +
//                "    \"refStandardVersion\": \"V1.0\",\n" +
//                "    \"versionStatus\": 0\n" +
//                "}");
        // params.put("versionId", "5694696eb80d");
        //  params.put("publisher", "lfq");
        //   System.out.println(HttpClientUtil.doPost("http://192.168.131.17:6020/api/v1.0/standard_center/version/publish", params, "user", "standard"));
        //文件上传
        //File file = new File("F:/111.txt");
        // HttpClientUtil.sendFile(file, "http://192.168.131.6:8890/api/v1.0/resource/upload", "user", "standard");
        //文件下载
        params.put("field", "[{\"key\":\"name\",\"value\":\"资源名称\"},{\"key\":\"code\",\"value\":\"资源代码\"},{\"key\":\"type\",\"value\":\"资源类型\"},{\"key\":\"category\",\"value\":\"资源类别\"}]");
        params.put("name", "授权资源清单");
        params.put("id", "aaaaaaaa1");
        params.put("queryParams", "[]");
        HttpClientUtil.downFile("E:/aaa.xls", params, "http://192.168.131.6:8080/resource/exportAllExcel", "", "");
    }
}

+ 0 - 56
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/HttpsInitialise.java

@ -1,56 +0,0 @@
package com.yihu.ehr.util.http;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContexts;
import javax.net.ssl.SSLContext;
import java.io.File;
/**
 * Https相关环境初始化
 *
 * @author Air
 * @version 1.0
 * @created 2015.07.07 9:21
 */
public class HttpsInitialise {
    private static volatile HttpsInitialise instance = null;
    private SSLContext sslcontext;
    private SSLConnectionSocketFactory sslConnectionSocketFactory;
    public HttpsInitialise() {
    }
    public void finalize() throws Throwable {
    }
    /**
     * 初始化SSLConnectionSocketFactory.
     *
     * @param password       密码
     * @param trustStorePath 信任库路径
     * @throws Exception
     */
    public void init(String trustStorePath, String password) throws Exception {
        sslcontext = SSLContexts.custom()
                .loadTrustMaterial(new File(trustStorePath), password.toCharArray(),
                        new TrustSelfSignedStrategy())
                .build();
        // Allow TLSv1 protocol only
        sslConnectionSocketFactory = new SSLConnectionSocketFactory(
                sslcontext,
                new String[]{"TLSv1"},
                null,
                new HopHostnameVerifier());
    }
    public SSLConnectionSocketFactory getSslConnectionSocketFactory() {
        return sslConnectionSocketFactory;
    }
}

+ 0 - 20
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/IHAHttpClient.java

@ -1,20 +0,0 @@
package com.yihu.ehr.util.http;
import org.apache.http.NameValuePair;
import java.util.List;
import java.util.Map;
/**
 * @author Air
 * @version 1.0
 * @created 2015.08.16 9:22
 */
public interface IHAHttpClient {
    Response get(String url);
    Response get(String url,Map<String,String> header);
    Response put(String url);
    Response put(String url,Map<String,String> header);
    Response postForm(String url, List<NameValuePair> formParams);
    Response postFile(String url, String filePath);
}

+ 0 - 20
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/http/Response.java

@ -1,20 +0,0 @@
package com.yihu.ehr.util.http;
/**
 * @author Air
 * @version 1.0
 * @created 2015.07.02 14:43
 */
public class Response {
    public Response(int statusCode, String body) {
        this.statusCode = statusCode;
        this.body = body;
    }
    public final int statusCode;// e.g. 200
    public final String body;
//    public final String status; // e.g. "200 OK"
//    public final String proto; // e.g. "HTTP/1.0"
//    public final int protoMajor;     // e.g. 1
//    public final int protoMinor;    // e.g. 0
}

+ 271 - 37
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/EsbHttp.java

@ -1,12 +1,27 @@
package com.yihu.ehr.util.httpclient;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.common.config.SysConfig;
import com.yihu.ehr.common.constants.Constants;
import com.yihu.ehr.model.Patient;
import com.yihu.ehr.service.intf.ISystemManager;
import com.yihu.ehr.util.encrypt.MD5;
import com.yihu.ehr.util.log.LogUtil;
import com.yihu.ehr.util.operator.ConfigureUtil;
import com.yihu.ehr.util.operator.StringUtil;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import sun.misc.BASE64Encoder;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -22,7 +37,7 @@ public class EsbHttp {
     * 用户登录验证
     */
    public static Response loginAction(String user,String password) throws Exception{
        String loginAction = HttpHelper.defaultHttpUrl+"/api/v1.0/authorizations/users/" + user;
        String loginAction = HttpHelper.defaultHttpUrl+"/authorizations/users/" + user;
        Map<String,Object> header = new HashMap<>();
        String auth  = new BASE64Encoder().encode((user+":"+password).getBytes());
        header.put("Authorization","Basic "+auth);
@ -34,7 +49,7 @@ public class EsbHttp {
    * */
    public static Response getUserInfo(String user,String token)
    {
        String url = HttpHelper.defaultHttpUrl+"/api/v1.0/users/" + user;
        String url = HttpHelper.defaultHttpUrl+"/users/" + user;
        Map<String,Object> params = new HashMap<>();
        params.put("token",token);
        params.put("user",user);
@ -43,14 +58,13 @@ public class EsbHttp {
    /***************************** 应用接口 *********************************************/
    private static String fingerprint;
    /**
     * 获取本机指纹
     * @return
     */
    private static String GetFingerprint(){
        try {
            if (fingerprint == null || fingerprint.length() == 0) {
                fingerprint = system.getSystemParam("FINGER_PRINT");
            }
            return fingerprint;
            return system.getSystemParam("FINGER_PRINT");
        }
        catch (Exception e)
        {
@ -58,46 +72,266 @@ public class EsbHttp {
            return "";
        }
    }
    /**
     * 应用登录验证
     */
    public static String getToken() throws Exception{
        String loginAction = HttpHelper.defaultHttpUrl + "/api/v1.0/authorizations/clients/" + HttpHelper.clientId;
        Map<String, Object> header = new HashMap<>();
        header.put("Authorization", "Basic " + HttpHelper.clientKey);
        //本地指纹
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("info", "{\"fingerprint\": \""+GetFingerprint()+"\"}");
        Response response = HttpHelper.put(loginAction, params, header);
        JSONObject obj = new JSONObject(response.body);
        //判断是否成功
        if(obj.has("token"))
    public static String getToken(){
        try {
            String loginAction = HttpHelper.defaultHttpUrl + "/authorizations/clients/" + HttpHelper.clientId;
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            //本地指纹
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("info", "{\"fingerprint\": \"" + GetFingerprint() + "\"}");
            Response response = HttpHelper.put(loginAction, params, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                JSONObject obj = new JSONObject(response.getBody());
                //判断是否成功
                if (obj.has("token")) {
                    return obj.getString("token");
                } else {
                    LogUtil.info("返回未包含token。");
                    return null;
                }
            } else {
                String msg = "获取Token失败。";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                LogUtil.info(msg);
                return null;
            }
        }
        catch (Exception ex)
        {
            return obj.getString("token");
            LogUtil.info("获取Token失败," + ex.getMessage());
            return null;
        }
        else{
            throw new Exception("获取token失败!");
    }
    /**
     * 修改远程补传状态
     */
    public static void changeFillMiningStatus(String remoteId,String message, String status){
        try {
            String token = getToken();
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.put("id", remoteId);
            paramMap.put("status", status);
            paramMap.put("message", message);
            paramMap.put("token", token);
            String fillMiningMethod = HttpHelper.defaultHttpUrl + "/simplified-esb/changeFillMiningStatus";
            Response response = HttpHelper.post(fillMiningMethod, paramMap);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                LogUtil.info("修改远程补传状态成功。");
            }
            else{
                String msg = "修改远程补传状态失败。";
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                }
                LogUtil.info(msg);
            }
        }
        catch (Exception ex)
        {
            LogUtil.info("修改远程补传状态失败." + ex.getMessage());
        }
    }
    public static void changeFillMiningStatus(String remoteId,String message, String status) {
        String token;
    /**
     * 获取公钥
     */
    public static String getPublicKey(){
        try {
            token = getToken();
            String token = getToken();
            if (SysConfig.getInstance().getPublicKey() != null) {
                return SysConfig.getInstance().getPublicKey();
            }
            String orgCode = SysConfig.getInstance().getOrgCode();
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.put("org_code", orgCode);
            paramMap.put("token", token);
            String publicKeyMethod = HttpHelper.defaultHttpUrl + "/organizations/"+orgCode+"/key";
            Response response = HttpHelper.get(publicKeyMethod, paramMap);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                JSONObject json = new JSONObject(response.getBody());
                if(json.has("publicKey"))
                {
                    String key = json.getString("publicKey");
                    SysConfig.getInstance().setPublicKey(key);
                    return key;
                }
                else{
                    LogUtil.info("获取公钥失败,返回未包含publicKey。");
                    return null;
                }
            }
            else{
                String msg = "获取公钥失败。";
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                }
                LogUtil.info(msg);
                return null;
            }
        } catch (Exception e) {
            LogUtil.error("修改远程补传状态时,获取token失败!");
            return;
            LogUtil.info(e.getMessage());
            return null;
        }
        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("id", remoteId);
        paramMap.put("status", status);
        paramMap.put("message", message);
        paramMap.put("token", token);
        String fillMiningMethod = HttpHelper.defaultHttpUrl+"/api/v1.0/simplified-esb/changeFillMiningStatus";
        Response response = HttpHelper.post(fillMiningMethod, paramMap);
        if (response == null || response.statusCode != 200) {
            LogUtil.fatal("修改远程补传状态失败,网络错误或者服务器不可用.");
    }
    /**
     * 获取健康云平台标准版本号
     */
    public static String getRemoteVersion(String orgCode) {
        try {
            String token = getToken();
            String versionMethod = HttpHelper.defaultHttpUrl + "/adaptions/org_plan/version";
            Map<String, Object> params = new HashMap<>();
            params.put("org_code", orgCode);
            params.put("token", token);
            Response response = HttpHelper.get(versionMethod, params);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                return response.getBody();
            }
            else{
                String msg = "获取健康云平台标准版本号失败";
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                }
                LogUtil.info(msg);
                return null;
            }
        } catch (Exception e) {
            LogUtil.fatal("获取远程版本号异常");
            LogUtil.error(e);
            return null;
        }
    }
    /**
     * 注册病人
     */
    public static Boolean register(Patient patient, String data, String token) {
        try {
            JSONObject json = new JSONObject(data);
            String colName = SysConfig.registerIdCardNo;
            if(json!=null && json.has("data"))
            {
                JSONObject p = (JSONObject)json.getJSONArray("data").get(0);
                if(!p.has(colName) || p.get(colName).equals(null) || p.getString(colName).length()==0)
                {
                    LogUtil.info("注册病人信息请求失败:身份证号码为空,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                    return false;
                }
                else{
                    String idCord = p.getString(colName);
                    String registerMethod = HttpHelper.defaultHttpUrl + "/patients/"+idCord;
                    if (StringUtil.isEmpty(data)) {
                        LogUtil.info("注册病人信息请求失败:无具体病人信息,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                        return false;
                    }
                    Map<String, Object> paramMap = new HashMap<>();
                    paramMap.put("demographic_id", idCord);
                    paramMap.put("json", data);
                    paramMap.put("token", token);
                    Response response = HttpHelper.post(registerMethod, paramMap);
                    if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                        LogUtil.info("注册病人信息成功。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
                        return true;
                    }
                    else{
                        String msg = "注册病人信息请求失败。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo();
                        if(response != null)
                        {
                            msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                        }
                        LogUtil.info(msg);
                        return false;
                    }
                }
            }
            else{
                LogUtil.info("注册病人信息请求失败:传入数据无效,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                return false;
            }
        }
        catch (Exception e)
        {
            LogUtil.info("注册病人信息请求失败."+e.getMessage());
            return false;
        }
    }
    /**
     * 上传病人档案
     */
    public static boolean upload(Patient patient, File file, String encryptPwd, String token) {
        try {
            String uploadMethod = HttpHelper.defaultHttpUrl + "/packages";
            String fileMd5= MD5.getMd5ByFile(file);
            Map<String, Object> paramMap = new HashMap<>();
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("md5", fileMd5));
            formParams.add(new BasicNameValuePair("package_crypto", encryptPwd));
            formParams.add(new BasicNameValuePair("org_code", SysConfig.getInstance().getOrgCode()));
            formParams.add(new BasicNameValuePair("token", token));
            Response response = HttpHelper.postFile(uploadMethod, formParams, file.getAbsolutePath());
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                LogUtil.info("上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return true;
            }
            else {
                String msg = "上传病人档案请求失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo();
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                }
                LogUtil.info(msg);
                return false;
            }
        }
        catch (Exception e) {
            LogUtil.fatal("上传病人档案异常,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            LogUtil.error(e);
            return false;
        }
    }
    /**
     * 下载标准包
     */
    public static Response download(String remoteVersion, String orgCode) {
        try {
            String token = getToken();
            String downLoadMethod = HttpHelper.defaultHttpUrl + "/adaptions/"+orgCode+"/source";
            Map<String, Object> params = new HashMap<>();
            params.put("version_code", remoteVersion);
            params.put("org_code", orgCode);
            params.put("token", token);
            Response response = HttpHelper.get(downLoadMethod, params);
            return response;
        } catch (Exception e) {
            LogUtil.fatal("下载标准包异常:");
            LogUtil.error(e);
            return null;
        }
    }

+ 38 - 55
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpClientUtil.java

@ -97,7 +97,6 @@ public class HttpClientUtil {
                request.addHeader(key, header.get(key).toString());
            }
        }
        return request;
    }
    /****************************** 公用方法 *******************************************/
@ -127,58 +126,50 @@ public class HttpClientUtil {
            } else {
                response = httpclient.execute(request);
            }
            re.setStatusCode(200);
            re.setStatusCode(response.getStatusLine().getStatusCode());
            re.setBody(EntityUtils.toString(response.getEntity(), "UTF-8"));
        } catch (Exception e) {
            re.setStatusCode(201);
            re.setBody(e.getMessage());
            System.out.print(e.getMessage());
        } finally {
            close(httpclient, response);
        }
        return re;
    }
    /**
     * 发送文件
     *
     * @param url        路径
     * @param filePath   文件路径
     * @param formParams 参数
     * @return
     */
    public static String postFile(String url, String filePath, List<NameValuePair> formParams, String username, String password) {
        CloseableHttpClient httpClient = getCloseableHttpClient(null);
        File file = new File(filePath);
    public static Response postFile(String url,
                                    File file, List<NameValuePair> formParams,SSLConnectionSocketFactory ssl, String username, String password) {
        Response re = new Response();
        CloseableHttpResponse response = null;
        CloseableHttpClient httpClient = getCloseableHttpClient(ssl);
        //设置请求信息
        RequestConfig requestConfig = RequestConfig.custom().
                setAuthenticationEnabled(true).build();
        //创建httppost请求
        HttpPost httpPost = new HttpPost(url);
        ArrayList<Header> headers = new ArrayList<Header>();
        try{
        httpPost.addHeader(new BasicHeader(HttpHeaders.AUTHORIZATION, "Basic a0hBYlZwcHg0NDpCZDJoOHJkWWhlcDZOS09P"));
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //创建httppost请求
            HttpPost httpPost = new HttpPost(url);
        httpPost.setConfig(requestConfig);
        //新建文件对象并且设置文件
        FileBody bin = new FileBody(file);
        MultipartEntityBuilder reqEntity = MultipartEntityBuilder.create();
        reqEntity.addPart("file", bin);
        //设置参数
        if (formParams != null && formParams.size() > 0) {
            for (NameValuePair nv : formParams) {
                reqEntity.addTextBody(nv.getName(), nv.getValue(), ContentType.create("text/plain", Charset.forName(HTTP.UTF_8)));
            httpPost.setConfig(requestConfig);
            //新建文件对象并且设置文件
            FileBody bin = new FileBody(file);
            MultipartEntityBuilder reqEntity = MultipartEntityBuilder.create();
            reqEntity.addPart("file", bin);
            //设置参数
            if (formParams != null && formParams.size() > 0) {
                for (NameValuePair nv : formParams) {
                    reqEntity.addTextBody(nv.getName(), nv.getValue(), ContentType.create("text/plain", Charset.forName(HTTP.UTF_8)));
                }
            }
        }
        httpPost.setEntity(reqEntity.build());
        CloseableHttpResponse response = null;
        HttpEntity entity = null;
        try {
            httpPost.setEntity(reqEntity.build());
            //设置验证
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
@ -192,24 +183,20 @@ public class HttpClientUtil {
            } else {
                response = httpClient.execute(httpPost);
            }
            entity = response.getEntity();
            return EntityUtils.toString(entity, "UTF-8");
        } catch (IOException e) {
            return e.getMessage();
            re.setStatusCode(response.getStatusLine().getStatusCode());
            re.setBody(EntityUtils.toString(response.getEntity(), "UTF-8"));;
        } catch (Exception e) {
            re.setStatusCode(201);
            re.setBody(e.getMessage());
            System.out.print(e.getMessage());
        } finally {
            close(httpClient, response);
        }
        return re;
    }
    /**
     * 发送File
     *
     * @param filePath 文件路径
     * @param params   参数
     * @param url      http路径
     * @param username
     * @param password
     * @return
     */
    public static File downLoadFileByBase64(String filePath, Map<String, Object> params, String url, String username, String password) {
        File file = null;
@ -268,25 +255,21 @@ public class HttpClientUtil {
        return file;
    }
    public static File downLoadFile(String filePath, Map<String, Object> params, String url, String username, String password) {
    /**
     * 下载文件
     */
    public static File downLoadFile(String filePath, String url, String username, String password) {
        File file = null;
        CloseableHttpResponse response = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = getCloseableHttpClient(null);
        try {
            HttpPost httpPost = new HttpPost(url);
            HttpGet httpGet = new HttpGet(url);
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //设置参数
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
            for (Map.Entry<String, Object> entry : params.entrySet()) {
                formparams.add(new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())));
            }
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
            httpPost.setEntity(entity);
            httpPost.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
@ -295,9 +278,9 @@ public class HttpClientUtil {
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response = httpclient.execute(httpPost, context);
                response = httpclient.execute(httpGet, context);
            } else {
                response = httpclient.execute(httpPost);
                response = httpclient.execute(httpGet);
            }
            HttpEntity httpEntity = response.getEntity();
            InputStream is = httpEntity.getContent();

+ 25 - 6
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpHelper.java

@ -1,6 +1,6 @@
package com.yihu.ehr.util.httpclient;
import com.yihu.ehr.util.http.HopHostnameVerifier;
import org.apache.http.NameValuePair;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContexts;
@ -11,12 +11,10 @@ import org.springframework.core.io.support.PropertiesLoaderUtils;
import javax.net.ssl.SSLContext;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
 * Created by hzp on 2016/3/10.
 */
public class HttpHelper {
    private static String defaultPropertiesPath = "config/http.properties";
    private static SSLConnectionSocketFactory defaultSSL;
@ -137,10 +135,31 @@ public class HttpHelper {
    }
    public static Response post(String url,Map<String,Object> params,Map<String,Object> header,SSLConnectionSocketFactory ssl,String user,String password)
    {
        return HttpClientUtil.request("POST",url,params,header,ssl,user,password);
    }
    public static Response postFile(String url, List<NameValuePair> formParams, String filePath)
    {
        File file = new File(filePath);
        if(url.startsWith("https"))
        {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL,defaultHttpUser,defaultHttpPassword);
        }
        else{
        //默认http不走ssl和用户密码
        return HttpClientUtil.postFile(url, file, formParams, null,defaultHttpUser,defaultHttpPassword);
    }
    }
    public static Response postFile(String url, List<NameValuePair> formParams, File file)
    {
        if(url.startsWith("https"))
        {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL,defaultHttpUser,defaultHttpPassword);
        }
        else{
            //默认http不走ssl和用户密码
            return HttpClientUtil.postFile(url, file, formParams, null,defaultHttpUser,defaultHttpPassword);
        }
    }
    /************************** Put方法 ******************************************/
    public static Response put(String url)
    {

+ 2 - 2
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/Response.java

@ -14,8 +14,8 @@ public class Response {
        this.body = body;
    }
    public int statusCode;
    public String body;
    private int statusCode;
    private String body;
    public int getStatusCode() {

+ 5 - 7
Hos-Resource-Mini/src/main/resources/config/crawler.properties

@ -2,11 +2,9 @@
agency.name=健康之路
#总支撑平台接口请求
ha.url.standard.getVersion=/rest/v1.0/adapter-dispatcher/versionplan
ha.url.patient.register=/rest/v1.0/patient/registration
ha.url.patient.upload=/rest/v1.0/json_package/
ha.url.security.publicKey.get=/rest/v1.0/security/user_key/
ha.url.security.token.get=/rest/v1.0/security/token
ha.url.standard.allSchemaMappingPlan=/rest/v1.0/adapter-dispatcher/allSchemaMappingPlan
ha.url.user.loginAction=/api/v1.0/authorizations/users
ha.url.standard.getVersion=/api/v1.0/adaptions/version_plan
ha.url.patient.register=/api/v1.0/patient/registration
ha.url.patient.upload=/api/v1.0/packages/
ha.url.security.publicKey.get=/api/v1.0/securities/org_key/
ha.url.standard.allSchemaMappingPlan=/api/v1.0/adaptions/organization/adaption
ha.url.user.org=/api/v1.0/authorizations/users

+ 5 - 2
Hos-Resource-Mini/src/main/resources/config/http.properties

@ -1,6 +1,9 @@
httpUrl = https://ehr.yihu.com
#https://192.168.131.151:443/
httpUrl = https://172.19.103.73:443/api/v1.0
#ÖÒhttps://192.168.131.15:4432/api/v1.0
  #https://172.19.103.73:443/api/v1.0
sslKeystore = I:/ssl/tomcat.keystore
sslPassword = 123456
clientId = kHAbVppx44

+ 0 - 8
Hos-Resource-Mini/src/main/resources/config/sys.config.xml

@ -1,14 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <debug>true</debug>
    <!--存储模式:轻量模式:0,传统模式:1-->
    <platform>
        <url>https://172.19.103.49:5666/ehr</url>
        <user pwd="123456">2</user>
        <app secret="u2akgXkkRRkiiCVR">gAP3ma6grh</app>
        <trust_store pwd="123456"></trust_store>
        <basic_auth pwd="123456">admin</basic_auth>
    </platform>
    <event_no>
        <item>HDSD03_01_031</item>
        <item>HDSD00_01_579</item>

+ 1 - 1
Hos-Resource-Mini/src/main/resources/log4j2.xml

@ -26,7 +26,7 @@
                           pattern='%d{yyyy-MM-dd HH:mm:ss}-- %p %t %c - %m%n'/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
                <SizeBasedTriggeringPolicy size="1 MB"/>
            </Policies>
            <DefaultRolloverStrategy fileIndex="max" max="10"/>
        </RollingFile>

+ 3 - 4
Hos-Resource-Mini/src/main/resources/spring/applicationContext.xml

@ -3,18 +3,17 @@
       xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"
       >
>
    <!--业务Beans, 使用注解方式配置-->
    <context:component-scan base-package="com.yihu">

+ 2 - 1
Hos-Resource-Mini/src/main/webapp/WEB-INF/jsp/common/indexJs.jsp

@ -67,7 +67,8 @@
                {id: 2, text: '采集标准',icon:'${staticRoot}/images/index/menu2_icon.png', url: '${contextRoot}/datacollect/stdManager'},
                {id: 3, text: '任务跟踪',icon:'${staticRoot}/images/index/menu3_icon.png', url: '${contextRoot}/datacollect/trackJob'},
                {id: 4, text: '任务补采',icon:'${staticRoot}/images/index/menu4_icon.png', url: '${contextRoot}/datacollect/repeatJob'},
                {id: 5, text: '系统参数',icon:'${staticRoot}/images/index/menu5_icon.png', url: '${contextRoot}/system/paramManager'}
                {id: 5, text: '系统参数',icon:'${staticRoot}/images/index/menu5_icon.png', url: '${contextRoot}/system/paramManager'},
                {id: 6, text: '接口配置',icon:'${staticRoot}/images/index/menu5_icon.png', url: '${contextRoot}/dataAcquisition/dataAcquisitionManager'}
            ];
            me.menuTree = $('#ulTree').ligerTree({
                data: menu,

+ 2 - 2
Hos-Resource-Mini/src/main/webapp/WEB-INF/jsp/system/dataSourceJs.jsp

@ -54,7 +54,7 @@
            var resultStr="";
            if(data.type=="mysql"){//mysql
                resultStr ="jdbc:mysql://"+ data.ip +":"+ data.port +"/"+ data.dbName +"?user="+ data.dbUser +"&password="+ data.dbPassword;
                resultStr ="jdbc:mysql://"+ data.ip +":"+ data.port +"/"+ data.dbName +"?user="+ data.dbUser +"&password="+ data.dbPassword +"&useUnicode=true&characterEncoding=UTF-8";
            }
            else if(data.type=="oracle"){//oracle
                resultStr ="jdbc:oracle:thin:"+ data.dbUser +"/"+ data.dbPassword +"@//"+ data.ip +":"+ data.port +"/"+ data.dbName ;
@ -115,7 +115,7 @@
                type: "POST",
                url : "${contextRoot}/system/testDataSource",
                dataType : "json",
                data:{config:me.getConfigString(data)},
                data:{uri:me.getConfigString(data)},
                cache:false,
                success :function(data){
                    if(data.successFlg) {

+ 15 - 11
Hos-Resource-Mini/src/main/webapp/WEB-INF/web.xml

@ -9,6 +9,20 @@
        <listener-class>com.yihu.ehr.common.ApplicationStart</listener-class>
    </listener>
    <!--Spring-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/applicationContext.xml</param-value>
    </context-param>
    <!--线程-->
    <listener>
        <listener-class>com.yihu.ehr.common.ThreadStart</listener-class>
    </listener>
    <!--servlet设-->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
@ -49,7 +63,7 @@
        </init-param>
        <init-param>
            <param-name>notCheckURLList</param-name>
            <param-value>/loginPage;/system/loginAction;/error</param-value>
            <param-value>/loginPage;/system/loginAction;/error;/dataAcquisition/getData;/dataAcquisition/getDataAcquisition;</param-value>
        </init-param>
    </filter>
    <filter-mapping>
@ -57,16 +71,6 @@
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!--Spring-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/applicationContext.xml</param-value>
    </context-param>
    <!-- 默认页面 -->
    <welcome-file-list>
        <welcome-file>/indexPage</welcome-file>

+ 2 - 2
Hos-resource/Hos-Resource.iml

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="web" name="Web">
      <configuration>
@ -22,7 +22,7 @@
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.5" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.6" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:1.6.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.1.7.RELEASE" level="project" />

+ 6 - 6
Hos-resource/src/main/java/com/yihu/ehr/datacollect/controller/DataCollectController.java

@ -9,8 +9,10 @@ import com.yihu.ehr.framework.constrant.DateConvert;
import com.yihu.ehr.framework.model.ActionResult;
import com.yihu.ehr.framework.model.Result;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
import com.yihu.ehr.std.service.intf.IStdService;
import com.yihu.ehr.system.service.intf.IDatasourceManager;
import net.sf.json.JSONArray;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.PropertyUtils;
@ -21,10 +23,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
/**
 * 数据采集配置页面
@ -73,8 +72,9 @@ public class DataCollectController extends BaseController {
            }
            //获取方案列表
            String data = stdService.getSchemeVersion();
            model.addAttribute("schemeList", "{\"detailModelList\":"+(data.length()==0?"[]":data)+"}");
            List data = stdService.getSchemeVersion();
            JSONArray jsonArray = JSONArray.fromObject(data);
            model.addAttribute("schemeList", "{\"detailModelList\":"+(CollectionUtil.isEmpty(data)?"[]":jsonArray)+"}");
            model.addAttribute("contentPage", "/datacollect/editorJob");
            return "pageView";

+ 6 - 4
Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectManager.java

@ -10,6 +10,8 @@ import com.yihu.ehr.framework.model.DictItem;
import com.yihu.ehr.framework.model.SimpleChartItem;
import com.yihu.ehr.framework.util.quartz.QuartzManager;
import com.yihu.ehr.resource.model.RsDatasourceDataset;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.model.standard.StdDataSetModel;
import com.yihu.ehr.std.service.intf.IStdService;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@ -204,7 +206,7 @@ public class DatacollectManager implements IDatacollectManager {
    public DataGridResult getSchemeDataset(String schemeId,String schemeVersion,String jobId) throws Exception
    {
        //获取适配数据集总和
        String datasetString = stdManager.getDatasetByScheme(schemeVersion);
        List<AdapterDatasetModel> datasetString = stdManager.getDatasetByScheme(schemeVersion);
        JSONArray jsonArray =  JSONArray.fromObject(datasetString);
        //获取任务数据集
        List<RsJobDataset> jobDataset = datacollectDao.getJobDataset(jobId);
@ -253,7 +255,7 @@ public class DatacollectManager implements IDatacollectManager {
    public DataGridResult getSchemeDatasetCol(String schemeId,String schemeVersion,String datasetId) throws Exception
    {
        //获取适配字段
        String datacolString = stdManager.getDatacolByScheme(schemeVersion, datasetId);
        List datacolString = stdManager.getDatacolByScheme(schemeVersion, datasetId);
        JSONArray datacolList = JSONArray.fromObject(datacolString);
        DataGridResult re = new DataGridResult();
@ -398,8 +400,8 @@ public class DatacollectManager implements IDatacollectManager {
    public DataGridResult getDatasetSource(String stdVersion) throws Exception
    {
        //获取版本下全部数据集
        String datasetString = stdManager.getDatasetByVersion(stdVersion);
        JSONArray datasetList = JSONArray.fromObject(datasetString);
        List<StdDataSetModel> stdDataSetModelList = stdManager.getDatasetByVersion(stdVersion);
        JSONArray datasetList = JSONArray.fromObject(stdDataSetModelList);
        //获取已配数据集
        List<RsDatasourceDataset> jobDataset = datacollectDao.getDatasourceDataset(stdVersion);

+ 4 - 4
Hos-resource/src/main/java/com/yihu/ehr/datacollect/service/DatacollectService.java

@ -141,7 +141,7 @@ public class DatacollectService implements IDatacollectService {
                dictCol.setAdapterDictId(dictId);
                dictCol.setAdapterDataType(dictType.length()>0?dictType:"1");//默认通过code转换字典
                //获取字典数据
                String dictString = stdService.getDictByScheme(schemeVersion,dictId);
                List dictString = stdService.getDictByScheme(schemeVersion,dictId);
                JSONArray dictAdapterArray = new JSONArray(dictString);
                dictCol.setDictList(dictAdapterArray);
@ -253,7 +253,7 @@ public class DatacollectService implements IDatacollectService {
            DBType dbType = db.dbType;
            //获取数据集映射
            String datasetString = stdService.getDatasetByScheme(schemeVersion, datasetId);
            List datasetString = stdService.getDatasetByScheme(schemeVersion, datasetId);
            JSONArray datasetList = new JSONArray(datasetString);
            String stdTableName ="";
            String adapterTableName ="";
@ -264,7 +264,7 @@ public class DatacollectService implements IDatacollectService {
            }
            //获取数据集字段映射结构
            String colString = stdService.getDatacolByScheme(schemeVersion,datasetId);
            List colString = stdService.getDatacolByScheme(schemeVersion,datasetId);
            JSONArray colList = new JSONArray(colString);
            if(colList!=null && colList.length()>0)
@ -543,7 +543,7 @@ public class DatacollectService implements IDatacollectService {
        //获取数据集字段映射结构
        String schemeVersion = log.getSchemeVersion();
        String datasetId = log.getJobDatasetId();
        String colString = stdService.getDatacolByScheme(schemeVersion,datasetId);
        List colString = stdService.getDatacolByScheme(schemeVersion,datasetId);
        JSONArray colList = new JSONArray(colString);
        List<JSONObject> list = db.query(sql);
        String message = intoMongodb(list,schemeVersion,stdDatasetCode,colList);

+ 110 - 90
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterController.java

@ -1,45 +1,60 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.model.DictItem;
import com.yihu.ehr.framework.model.DictionaryResult;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.standard.model.standard.StdPublisherModel;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeService;
import com.yihu.ehr.standard.service.standard.StandardService;
import com.yihu.ehr.standard.service.standard.StandardVersionService;
import com.yihu.ehr.standard.service.standard.StdPublisherService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by LLH on 2016/1/16.
 */
@Controller
@RestController("AdapterController")
@RequestMapping("/adapter")
@Api(protocols = "https", value = "AdapterController", description = "适配管理", tags = {"适配"})
public class AdapterController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = AdapterSchemeService.BEAN_ID)
    private AdapterSchemeService adapterSchemeService;
    @Resource(name = StandardService.BEAN_ID)
    private StandardService standardService;
    @Resource(name = StandardVersionService.BEAN_ID)
    private StandardVersionService standardVersionService;
    @Resource(name = StdPublisherService.BEAN_ID)
    private StdPublisherService stdPublisherService;
    /**
     * 查询适配方案首页信息(get)
     * @param condition
     * @return
     * @throws Exception
     */
    @RequestMapping("/searchSchemesList")
    @ResponseBody
    public String searchSchemesList(String condition) throws Exception {
        String url = "/api/v1.0/adapter_center/schemes";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("condition", condition);
        String resutl = HttpClientUtil.doGet( host+url, params, username, password);
        return resutl;
    @RequestMapping(value = "/searchSchemesList")
    @ApiOperation(value = "获取适配方案列表", response = AdapterSchemeModel.class, responseContainer = "List", produces = "application/json", notes = "获取适配方案列表")
    public List<AdapterSchemeModel> getList(
            @ApiParam(name = "condition", value = "Search param,Must be json")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        return adapterSchemeService.getEntityList(AdapterSchemeModel.class, condition, order, rows, page - 1, ErrorCode.GetSchemeListFailed);
    }
    /**
@ -48,14 +63,12 @@ public class AdapterController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/getForSchemeId")
    @ResponseBody
    public String getForStandardId(Integer schemeId) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("schemeId",schemeId);
        String resutl = HttpClientUtil.doGet( host+url,params,username,password);
        return resutl;
    @RequestMapping(value = "/getForSchemeId")
    @ApiOperation(value = "获取适配方案", response = AdapterSchemeModel.class, produces = "application/json", notes = "获取适配方案")
    public AdapterSchemeModel get(
            @ApiParam(name = "schemeId", value = "标准版本ID")
            @RequestParam(value = "schemeId") Integer schemeId) {
        return adapterSchemeService.get(schemeId);
    }
    /**
@ -65,13 +78,11 @@ public class AdapterController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/updateScheme")
    @ResponseBody
    public String updateScheme(String scheme) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("scheme",scheme);
        String resutl = HttpClientUtil.doPut(host + url, params, username, password);
        return resutl;
    @ApiOperation(value = "修改适配方案", response = AdapterSchemeModel.class, produces = "application/json", notes = "修改适配方案")
    public AdapterSchemeModel modify(
            @ApiParam(name = "scheme", value = "适配方案")
            @RequestParam(value = "scheme") String scheme) {
        return adapterSchemeService.update(scheme);
    }
    /**
@ -80,14 +91,12 @@ public class AdapterController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/addScheme")
    @ResponseBody
    public String addScheme(String scheme) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("scheme",scheme);
        String resutl = HttpClientUtil.doPost(host + url, params, username, password);
        return resutl;
    @RequestMapping(value = "/addScheme")
    @ApiOperation(value = "保存适配方案", response = AdapterSchemeModel.class, produces = "application/json", notes = "保存适配方案")
    public AdapterSchemeModel add(
            @ApiParam(name = "scheme", value = "适配方案信息")
            @RequestParam(value = "scheme") String scheme) {
        return adapterSchemeService.add(scheme);
    }
    /**
@ -96,14 +105,12 @@ public class AdapterController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/deleteScheme")
    @ResponseBody
    public String deleteScheme(Integer schemeId) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("schemeId",schemeId);
        String resutl = HttpClientUtil.doDelete(host + url, params, username, password);
        return resutl;
    @RequestMapping(value = "/deleteScheme")
    @ApiOperation(value = "删除适配方案", produces = "application/json", notes = "删除适配方案")
    public void delete(
            @ApiParam(name = "schemeId", value = "适配方案ID")
            @RequestParam(value = "schemeId") Integer schemeId) {
        adapterSchemeService.delete(schemeId);
    }
    /**
@ -112,23 +119,25 @@ public class AdapterController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/getStandards")
    @ResponseBody
    public DictionaryResult getStandards(String condition) throws Exception {
        String url = "/api/v1.0/standard_center/standards";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("condition",condition);
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        JSONArray array = JSONArray.fromObject(result);
    @RequestMapping(value = "/getStandards")
    @ApiOperation(value = "获取标准列表", response = DictionaryResult.class, produces = "application/json", notes = "获取标准列表")
    public DictionaryResult getStandardList(
            @ApiParam(name = "condition", value = "Must be Json,其中type为区分集成与应用标准")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Must be Json")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StandardModel> standardModelList = standardService.getList(condition, order, rows, page - 1);
        DictionaryResult dictionaryResult = new DictionaryResult();
        List<DictItem> detailModelList = new ArrayList<DictItem>();
        for(int i = 0; i < array.size(); i++){
            JSONObject jsonObject = array.getJSONObject(i);
        for(StandardModel standardModel : standardModelList){
            DictItem items = new DictItem();
            Integer  id = (Integer) jsonObject.get("id");
            String name = (String)jsonObject.get("name");
            Integer id = standardModel.getId();
            items.setCode(id.toString());
            items.setValue(name);
            items.setValue(standardModel.getName());
            detailModelList.add(items);
        }
        dictionaryResult.setDetailModelList(detailModelList);
@ -141,21 +150,28 @@ public class AdapterController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/getVersions")
    @ResponseBody
    public DictionaryResult getVersions(Integer standardId) throws Exception {
        String url = "/api/v1.0/standard_center/versions";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("standardId",standardId);
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        JSONArray array = JSONArray.fromObject(result);
    @RequestMapping(value = "/getVersions")
    @ApiOperation(value = "获取标准版本列表", response = DictionaryResult.class, produces = "application/json", notes = "获取标准版本列表")
    public DictionaryResult getVersionList(
            @ApiParam(name = "apiVersion", value = "API版本号", defaultValue = "v1.0")
            @PathVariable(value = "apiVersion") String apiVersion,
            @ApiParam(name = "standardId", value = "标准ID")
            @RequestParam(value = "standardId") Integer standardId,
            @ApiParam(name = "condition", value = "Must be Json")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Must be Json")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StandardVersionModel> standardVersionModelList = standardVersionService.getList(standardId, condition, order, rows, page - 1);
        DictionaryResult dictionaryResult = new DictionaryResult();
        List<DictItem> detailModelList = new ArrayList<DictItem>();
        for(int i = 0; i < array.size(); i++){
            JSONObject jsonObject = array.getJSONObject(i);
        for(StandardVersionModel standardVersionModel : standardVersionModelList){
            DictItem items = new DictItem();
            String  id = (String) jsonObject.get("version");
            String name = (String)jsonObject.get("name");
            String id = standardVersionModel.getVersion();
            String name = standardVersionModel.getName();
            items.setCode(id.toString());
            items.setValue(name);
            detailModelList.add(items);
@ -169,20 +185,24 @@ public class AdapterController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/getPublishers")
    @ResponseBody
    public DictionaryResult getPublishers() throws Exception {
        String url = "/api/v1.0/standard_center/publishers";
        Map<String, Object> params = new HashMap<String, Object>();
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        JSONArray array = JSONArray.fromObject(result);
    @RequestMapping(value = "/getPublishers")
    @ApiOperation(value = "获取发布机构列表", response = DictionaryResult.class, produces = "application/json", notes = "获取发布机构列表")
    public DictionaryResult getPublishers(
            @ApiParam(name = "condition", value = "Must be Json")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Must be Json")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StdPublisherModel> stdPublisherModelList = stdPublisherService.getList(condition, order, rows, page - 1);
        DictionaryResult dictionaryResult = new DictionaryResult();
        List<DictItem> detailModelList = new ArrayList<DictItem>();
        for(int i = 0; i < array.size(); i++){
            JSONObject jsonObject = array.getJSONObject(i);
        for(StdPublisherModel stdPublisherModel : stdPublisherModelList){
            DictItem items = new DictItem();
            String  id = (String) jsonObject.get("code");
            String name = (String)jsonObject.get("name");
            String id = stdPublisherModel.getCode();
            String name = stdPublisherModel.getName();
            items.setCode(id.toString());
            items.setValue(name);
            detailModelList.add(items);

+ 61 - 65
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterVersionController.java

@ -1,45 +1,44 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.model.DictItem;
import com.yihu.ehr.framework.model.DictionaryResult;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeVersionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("AdapterVersionController")
@RequestMapping("/adapterversion")
@Api(protocols = "https", value = "AdapterVersionController", description = "适配版本管理", tags = {"适配"})
public class AdapterVersionController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = AdapterSchemeVersionService.BEAN_ID)
    private AdapterSchemeVersionService adapterSchemeVersion;
    /**
     * 根据版本id获取适配方案信息(get)
     * @param versionId
     * @return
     * @throws Exception
     */
    @RequestMapping("/getForVersionId")
    @ResponseBody
    public String getForVersionId(Integer versionId) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("versionId",versionId);
        String resutl = HttpClientUtil.doGet(host + url, params, username, password);
        return resutl;
    @RequestMapping(value = "/getForVersionId")
    @ApiOperation(value = "获取适配版本", response = AdapterSchemeVersionModel.class, produces = "application/json", notes = "获取适配版本")
    public AdapterSchemeVersionModel getForVersionId(
            @ApiParam(name = "versionId", value = "适配版本ID")
            @RequestParam(value = "versionId") Integer versionId) {
        return adapterSchemeVersion.get(versionId);
    }
    /**
@ -48,14 +47,12 @@ public class AdapterVersionController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/addVersion")
    @ResponseBody
    public String addVersion(String version) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("version",version);
        String resutl = HttpClientUtil.doPost(host + url, params, username, password);
        return resutl;
    @RequestMapping(value = "/addVersion")
    @ApiOperation(value = "保存适配版本", response = AdapterSchemeVersionModel.class, produces = "application/json", notes = "保存适配版本")
    public AdapterSchemeVersionModel add(
            @ApiParam(name = "version", value = "适配版本信息")
            @RequestParam(value = "version") String version) {
        return adapterSchemeVersion.add(version);
    }
    /**
@ -64,14 +61,12 @@ public class AdapterVersionController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/updateVersion")
    @ResponseBody
    public String updateVersion(String version) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("version",version);
        String resutl = HttpClientUtil.doPut(host + url, params, username, password);
        return resutl;
    @RequestMapping(value = "/updateVersion")
    @ApiOperation(value = "修改适配版本", response = AdapterSchemeVersionModel.class, produces = "application/json", notes = "修改适配版本")
    public AdapterSchemeVersionModel updateVersion(
            @ApiParam(name = "version", value = "标准版本")
            @RequestParam(value = "version") String version) {
        return adapterSchemeVersion.update(version);
    }
    /**
@ -81,13 +76,11 @@ public class AdapterVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/publishVersion")
    @ResponseBody
    public String publishVersion(String version) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("version",version);
        String resutl = HttpClientUtil.doPut(host + url, params, username, password);
        return resutl;
    @ApiOperation(value = "发布适配版本", response = AdapterSchemeVersionModel.class, produces = "application/json", notes = "修改适配版本")
    public AdapterSchemeVersionModel publishVersion(
            @ApiParam(name = "version", value = "标准版本")
            @RequestParam(value = "version") String version) {
        return adapterSchemeVersion.update(version);
    }
    /**
@ -96,14 +89,12 @@ public class AdapterVersionController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/deleteVersion")
    @ResponseBody
    public String deleteVersion(Integer versionId) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("versionId",versionId);
        String resutl = HttpClientUtil.doDelete(host + url, params, username, password);
        return resutl;
    @RequestMapping(value = "/deleteVersion")
    @ApiOperation(value = "删除版本", produces = "application/json", notes = "删除版本")
    public void delete(
            @ApiParam(name = "versionId", value = "标准版本ID")
            @RequestParam(value = "versionId") Integer versionId) {
        adapterSchemeVersion.delete(versionId);
    }
    /**
@ -112,25 +103,31 @@ public class AdapterVersionController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/getVersions")
    @ResponseBody
    public DictionaryResult getVersions(Integer schemeId) throws Exception {
        String url = "/api/v1.0/adapter_center/versions";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("schemeId",schemeId);
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        JSONArray array = JSONArray.fromObject(result);
    @RequestMapping(value = "/getVersions")
    @ApiOperation(value = "获取适配方案版本列表", response = DictionaryResult.class, produces = "application/json", notes = "获取标准版本列表")
    public DictionaryResult getList(
            @ApiParam(name = "schemeId", value = "适配方案ID")
            @RequestParam(value = "schemeId") Integer schemeId,
            @ApiParam(name = "condition", value = "Search param,Must be json")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<AdapterSchemeVersionModel> adapterSchemeVersionModelList = adapterSchemeVersion.getEntityListByParentId(
                AdapterSchemeVersionModel.class, "schemeId", schemeId, condition, order, rows, page - 1, ErrorCode.GetSchemeVersionListFailed);
        DictionaryResult dictionaryResult = new DictionaryResult();
        List<DictItem> detailModelList = new ArrayList<DictItem>();
        DictItem item = new DictItem();
        item.setCode("");
        item.setValue("-无-");
        detailModelList.add(item);
        for(int i = 0; i < array.size(); i++){
            JSONObject jsonObject = array.getJSONObject(i);
        for(AdapterSchemeVersionModel adapterSchemeVersionModel : adapterSchemeVersionModelList){
            DictItem items = new DictItem();
            String  id = (String) jsonObject.get("version");
            String name = (String)jsonObject.get("name");
            String id = adapterSchemeVersionModel.getVersion();
            String name = adapterSchemeVersionModel.getName();
            items.setCode(id.toString());
            items.setValue(name);
            detailModelList.add(items);
@ -138,5 +135,4 @@ public class AdapterVersionController extends BaseController {
        dictionaryResult.setDetailModelList(detailModelList);
        return dictionaryResult;
    }
}
}

+ 40 - 49
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/PublisherController.java

@ -1,39 +1,39 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.standard.StdPublisherModel;
import com.yihu.ehr.standard.service.standard.StdPublisherService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("PublisherController")
@RequestMapping("/standardCenter")
@Api(protocols = "https", value = "PublisherController", description = "发布者管理", tags = {"发布者"})
public class PublisherController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = StdPublisherService.BEAN_ID)
    private StdPublisherService stdPublisherService;
    /**
     * 根据标准ID获取发布机构(get)
     * @param publisherId
     * @return
     * @throws Exception
     */
    @RequestMapping("/getForPublisherId")
    @ResponseBody
    public String getForStandardId(Integer publisherId) throws Exception {
        String url = "/api/v1.0/standard_center/publisher";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("publisherId", publisherId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @RequestMapping(value = "/getForPublisherId")
    @ApiOperation(value = "获取发布机构", response = StdPublisherModel.class, produces = "application/json", notes = "获取发布机构")
    public StdPublisherModel get(
            @ApiParam(name = "publisherId", value = "机构ID")
            @RequestParam(value = "publisherId") Integer publisherId) {
        return stdPublisherService.get(publisherId);
    }
    /**
@ -41,13 +41,10 @@ public class PublisherController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/getStandardPublisher")
    @ResponseBody
    public String getStandardPublisher() throws Exception {
        String url = "/api/v1.0/standard_center/publisher/standard";
        Map<String, Object> params = new HashMap<String, Object>();
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @RequestMapping(value = "/getStandardPublisher")
    @ApiOperation(value = "获取发布机构", response = StdPublisherModel.class, produces = "application/json", notes = "获取发布机构")
    public StdPublisherModel get() {
        return stdPublisherService.getStandardPublisher();
    }
    /**
@ -56,14 +53,12 @@ public class PublisherController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/updatePublisher")
    @ResponseBody
    public String updateStandard(String publisher) throws Exception {
        String url = "/api/v1.0/standard_center/publisher";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("publisher", publisher);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/updatePublisher")
    @ApiOperation(value = "修改发布机构", response = StdPublisherModel.class, produces = "application/json", notes = "修改发布机构")
    public StdPublisherModel updatePublisher(
            @ApiParam(name = "publisher", value = "机构信息")
            @RequestParam(value = "publisher") String publisher) {
        return stdPublisherService.update(publisher);
    }
    /**
@ -72,14 +67,12 @@ public class PublisherController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/addPublisher")
    @ResponseBody
    public String addStandard(String publisher) throws Exception {
        String url = "/api/v1.0/standard_center/publisher";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("publisher", publisher);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/addPublisher")
    @ApiOperation(value = "保存发布机构", response = StdPublisherModel.class, produces = "application/json", notes = "保存发布机构")
    public StdPublisherModel addPublisher(
            @ApiParam(name = "publisher", value = "机构信息")
            @RequestParam(value = "publisher") String publisher) {
        return stdPublisherService.add(publisher);
    }
    /**
@ -88,14 +81,12 @@ public class PublisherController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/deletePublisher")
    @ResponseBody
    public String deleteStandard(Integer publisherId) throws Exception {
        String url = "/api/v1.0/standard_center/publisher";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("publisherId", publisherId);
        String result = HttpClientUtil.doDelete(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/deletePublisher")
    @ApiOperation(value = "删除发布机构", produces = "application/json", notes = "删除发布机构")
    public void deletePublisher(
            @ApiParam(name = "publisherId", value = "机构ID")
            @RequestParam(value = "publisherId") Integer publisherId) {
        stdPublisherService.delete(publisherId);
    }
}

+ 44 - 55
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeController.java

@ -1,39 +1,37 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
import com.yihu.ehr.standard.model.adapter.resultModel.SchemeResultDetailModel;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import java.util.List;
/**
 * Created by LLH on 2016/1/16.
 */
@Controller
@RestController("SchemeController")
@RequestMapping("/adapterCenter")
@Api(protocols = "https", value = "SchemeController", description = "适配方案管理", tags = {"适配方案"})
public class SchemeController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = AdapterSchemeService.BEAN_ID)
    private AdapterSchemeService adapterSchemeService;
    /**
     * 查询适配方案首页信息(get)
     * @param condition
     * @return
     * @throws Exception
     */
    @RequestMapping("/searchScheme")
    @ResponseBody
    public String searchSchemesList(String condition) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("condition", condition);
        String result = HttpClientUtil.doGet(host+url, params, username, password);
        return result;
    @RequestMapping(value = "/searchScheme")
    @ApiOperation(value = "获取方案列表", response = SchemeResultDetailModel.class, responseContainer = "List", notes = "获取方案列表")
    public List<SchemeResultDetailModel> searchScheme(
            @ApiParam(name = "condition", value = "查询条件:适配方案名称、适配方案版本名称")
            @RequestParam(value = "condition", required = false) String condition) {
        return adapterSchemeService.getSchemeList(condition);
    }
    /**
@ -42,14 +40,12 @@ public class SchemeController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/getForSchemeId")
    @ResponseBody
    public String getForStandardId(Integer schemeId) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("schemeId",schemeId);
        String result = HttpClientUtil.doGet( host+url,params,username,password);
        return result;
    @RequestMapping(value = "/getForSchemeId")
    @ApiOperation(value = "获取适配方案", response = AdapterSchemeModel.class, produces = "application/json", notes = "获取适配方案")
    public AdapterSchemeModel getForSchemeId(
            @ApiParam(name = "schemeId", value = "标准版本ID")
            @RequestParam(value = "schemeId") Integer schemeId) {
        return adapterSchemeService.get(schemeId);
    }
    /**
@ -58,14 +54,12 @@ public class SchemeController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/updateScheme")
    @ResponseBody
    public String updateScheme(String scheme) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("scheme",scheme);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/updateScheme")
    @ApiOperation(value = "修改适配方案", response = AdapterSchemeModel.class, produces = "application/json", notes = "修改适配方案")
    public AdapterSchemeModel updateScheme(
            @ApiParam(name = "scheme", value = "适配方案")
            @RequestParam(value = "scheme") String scheme) {
        return adapterSchemeService.update(scheme);
    }
    /**
@ -74,14 +68,12 @@ public class SchemeController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/addScheme")
    @ResponseBody
    public String addScheme(String scheme) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("scheme",scheme);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/addScheme")
    @ApiOperation(value = "保存适配方案", response = AdapterSchemeModel.class, produces = "application/json", notes = "保存适配方案")
    public AdapterSchemeModel addScheme(
            @ApiParam(name = "scheme", value = "适配方案信息")
            @RequestParam(value = "scheme") String scheme) {
        return adapterSchemeService.add(scheme);
    }
    /**
@ -90,14 +82,11 @@ public class SchemeController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/deleteScheme")
    @ResponseBody
    public String deleteScheme(Integer schemeId) throws Exception {
        String url = "/api/v1.0/adapter_center/scheme";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("schemeId",schemeId);
        String result = HttpClientUtil.doDelete(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/deleteScheme")
    @ApiOperation(value = "删除适配方案", produces = "application/json", notes = "删除适配方案")
    public void deleteScheme(
            @ApiParam(name = "schemeId", value = "适配方案ID")
            @RequestParam(value = "schemeId") Integer schemeId) {
        adapterSchemeService.delete(schemeId);
    }
}

+ 85 - 83
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDatasetController.java

@ -1,29 +1,34 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.constrant.Result;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.constrant.TreeView;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.standard.model.AdapterDatasetModel;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.service.adapter.AdapterDatasetService;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("SchemeDatasetController")
@RequestMapping("/adapterCenter")
@Api(protocols = "https", value = "SchemeDatasetController", description = "适配数据集管理", tags = {"适配数据集"})
public class SchemeDatasetController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = AdapterDatasetService.BEAN_ID)
    private AdapterDatasetService datasetService;
    /**
     * 查询数据集列表信息(get)
     * @param adapterVersion
@ -34,23 +39,22 @@ public class SchemeDatasetController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/searchDatasetList")
    @ResponseBody
    public Result searchDatasetList(String adapterVersion,String condition,String order,Integer rows,Integer page) throws Exception {
        String url = "/api/v1.0/adapter_center/datasets/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("condition", condition);
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", page - 1);
    @RequestMapping(value = "/searchDatasetList")
    @ApiOperation(value = "获取数据集列表", response = Result.class, produces = "application/json", notes = "获取数据集列表")
    public Result getDatasetList(
            @ApiParam(name = "adapterVersion", value = "适配方案版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "condition", value = "查询条件:编码或名称")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        String resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        List<AdapterDatasetModel> dataSetModelList = jsonArrayToList(resultStr, AdapterDatasetModel.class);
        url = "/api/v1.0/adapter_center/datasets/totalCount";
        resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        Integer count = Integer.parseInt(resultStr);
        List<AdapterDatasetModel> dataSetModelList = datasetService.getDatasetList(AdapterDatasetModel.class, adapterVersion, condition, order, rows, page - 1);;
        Integer count = datasetService.getDatasetInt(AdapterDatasetModel.class, adapterVersion, condition);
        Result result = new Result();
        result.setDetailModelList(dataSetModelList);
        result.setTotalCount(count);
@ -58,71 +62,69 @@ public class SchemeDatasetController extends BaseController {
    }
    @RequestMapping("/getForDatasetId")
    @ResponseBody
    public String getForDatasetId(String adapterVersion, Integer datasetId) throws Exception {
        String url = "/api/v1.0/adapter_center/dataset";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("datasetId", datasetId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @ApiOperation(value = "获取适配数据集", response = AdapterDatasetModel.class, produces = "application/json", notes = "获取适配数据集")
    public AdapterDatasetModel getForDatasetId(
            @ApiParam(name = "adapterVersion", value = "适配版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "datasetId", value = "适配数据集ID")
            @RequestParam(value = "datasetId") Integer datasetId) {
        AdapterVersion version = new AdapterVersion(adapterVersion);
        return (AdapterDatasetModel) datasetService.get(AdapterDatasetModel.class, version.getDataSetTableName(), datasetId, ErrorCode.GetDataSetListFailed);
    }
    @RequestMapping("/delDataset")
    @ResponseBody
    public String delDataset(String adapterVersion, Integer id) throws Exception {
        String url = "/api/v1.0/adapter_center/dataset";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("datasetId", id);
        String result = HttpClientUtil.doDelete(host+url,params,username,password);
        return result;
    @RequestMapping(value = "/delDataset")
    @ApiOperation(value = "删除数据集", produces = "application/json", notes = "删除适配数据集")
    public void delDataset(
            @ApiParam(name = "adapterVersion", value = "适配版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "datasetId", value = "适配数据集ID")
            @RequestParam(value = "datasetId") Integer datasetId) {
        datasetService.delete(adapterVersion, datasetId);
    }
    @RequestMapping("/updateDataset")
    @ResponseBody
    public String updateDataset(String adapterVersion, String dataset) throws Exception {
        String url = "/api/v1.0/adapter_center/dataset";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dataset", dataset);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/updateDataset")
    @ApiOperation(value = "修改适配数据集", response = AdapterDatasetModel.class, produces = "application/json", notes = "修改适配数据集")
    public AdapterDatasetModel modify(
            @ApiParam(name = "adapterVersion", value = "适配版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dataset", value = "数据集,JSON")
            @RequestParam(value = "dataset") String dataset) {
        return datasetService.modify(adapterVersion, dataset);
    }
    @RequestMapping("/addDataset")
    @ResponseBody
    public String addDataset(String adapterVersion, String dataset) throws Exception {
        String url = "/api/v1.0/adapter_center/dataset";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dataset", dataset);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/addDataset")
    @ApiOperation(value = "保存适配数据集", response = AdapterDatasetModel.class, produces = "application/json", notes = "保存数据集")
    public AdapterDatasetModel add(
            @ApiParam(name = "adapterVersion", value = "适配版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dataset", value = "数据集信息")
            @RequestParam(value = "dataset") String dataset) {
        return datasetService.add(adapterVersion, dataset);
    }
    @RequestMapping("/getAdapterDataset")
    @ResponseBody
    public String getAdapterDataset(String adapterVersion,String stdVersion) throws Exception {
        String url = "/api/v1.0/adapter_center/datasets/customization";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("stdVersion", stdVersion);
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/getAdapterDataset")
    @ApiOperation(value = "获取定制数据集列表", response = TreeView.class, responseContainer = "List",produces = "application/json", notes = "获取数据集列表")
    public List<TreeView> getDatasetCustomize(
            @ApiParam(name = "adapterVersion", value = "适配版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion) {
        return datasetService.getDatasetCustomize(adapterVersion, stdVersion);
    }
    @RequestMapping(value = "/saveAdapterDataset",method = RequestMethod.POST)
    @ResponseBody
    public String saveAdapterDataset(Integer schemeId,String adapterVersion,String stdVersion,String datasetIdStr,String metaDataIdStr) throws Exception {
        String url = "/api/v1.0/adapter_center/datasets/customization";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("schemeId", schemeId);
        params.put("adapterVersion", adapterVersion);
        params.put("stdVersion", stdVersion);
        params.put("datasetIdStr", datasetIdStr.replaceAll("AD",""));
        params.put("metaDataIdStr", metaDataIdStr.replaceAll("AM",""));
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/saveAdapterDataset", method = RequestMethod.POST)
    @ApiOperation(value = "定制适配数据集", response = TreeView.class, responseContainer = "List",produces = "application/json", notes = "获取数据集列表")
    public boolean adapterDataSet(
            @ApiParam(name = "schemeId", value = "适配方案ID")
            @RequestParam(value = "schemeId") Integer schemeId,
            @ApiParam(name = "adapterVersion", value = "适配版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "datasetIdStr", value = "适配数据集信息")
            @RequestParam(value = "datasetIdStr") String datasetIdStr,
            @ApiParam(name = "metaDataIdStr", value = "适配数据元信息")
            @RequestParam(value = "metaDataIdStr") String metaDataIdStr) throws UnsupportedEncodingException {
        return datasetService.updateCustomize(schemeId, adapterVersion, stdVersion, datasetIdStr,metaDataIdStr);
    }
}

+ 62 - 63
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDictController.java

@ -1,28 +1,31 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.constrant.Result;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.standard.model.AdapterDictModel;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.adapter.AdapterDictModel;
import com.yihu.ehr.standard.service.adapter.AdapterDictService;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("SchemeDictController")
@RequestMapping("/adapterCenter")
@Api(protocols = "https", value = "SchemeDictController", description = "适配字典管理", tags = {"适配字典"})
public class SchemeDictController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = AdapterDictService.BEAN_ID)
    private AdapterDictService dictService;
    /**
     * 查询字典列表信息(get)
     * @param adapterVersion
@ -33,71 +36,67 @@ public class SchemeDictController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/searchDictList")
    @ResponseBody
    public Result searchDictList(String adapterVersion,String condition,String order,Integer rows,Integer page) throws Exception {
        String url = "/api/v1.0/adapter_center/dicts/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("condition", condition);
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", page - 1);
    @RequestMapping(value = "/searchDictList")
    @ApiOperation(value = "获取字典列表", response = Result.class, produces = "application/json", notes = "获取字典列表")
    public Result searchDictList(
            @ApiParam(name = "adapterVersion", value = "适配标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "condition", value = "查询条件:编码或名称")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<AdapterDictModel> dictModelList = dictService.getDictList(AdapterDictModel.class, adapterVersion, condition, order, rows, page - 1);
        String resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        List<AdapterDictModel> dictModelList = jsonArrayToList(resultStr, AdapterDictModel.class);
        url = "/api/v1.0/adapter_center/dicts/totalCount";
        resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        Integer count = Integer.parseInt(resultStr);
        Integer count = dictService.getDictInt(AdapterDictModel.class, adapterVersion, condition);
        Result result = new Result();
        result.setDetailModelList(dictModelList);
        result.setTotalCount(count);
        return result;
    }
    @RequestMapping("/getForDictId")
    @ResponseBody
    public String getForDictId(String adapterVersion, Integer dictId) throws Exception {
        String url = "/api/v1.0/adapter_center/dict";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dictId", dictId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @RequestMapping(value = "/getForDictId")
    @ApiOperation(value = "获取字典", response = AdapterDictModel.class, produces = "application/json", notes = "获取字典")
    public AdapterDictModel get(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dictId", value = "字典ID")
            @RequestParam(value = "dictId") Integer dictId) {
        AdapterVersion version = new AdapterVersion(adapterVersion);
        return (AdapterDictModel) dictService.get(AdapterDictModel.class, version.getDictTableName(), dictId, ErrorCode.GetDictFaild);
    }
    @RequestMapping("/delDict")
    @ResponseBody
    public String delDict(String adapterVersion, Integer id) throws Exception {
        String url = "/api/v1.0/adapter_center/dict";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dictId", id);
        String result = HttpClientUtil.doDelete(host+url,params,username,password);
        return result;
    @RequestMapping(value = "/delDict")
    @ApiOperation(value = "删除字典", produces = "application/json", notes = "删除字典")
    public void delDict(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dictId", value = "字典ID")
            @RequestParam(value = "dictId") Integer dictId) {
        dictService.delete(adapterVersion, dictId);
    }
    
    @RequestMapping("/updateDict")
    @ResponseBody
    public String updateDict(String adapterVersion, String dict) throws Exception {
        String url = "/api/v1.0/adapter_center/dict";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dict", dict);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/updateDict")
    @ApiOperation(value = "修改字典", response = AdapterDictModel.class, produces = "application/json", notes = "修改字典")
    public AdapterDictModel updateDict(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dict", value = "字典")
            @RequestParam(value = "dict") String dict) {
        return dictService.modify(adapterVersion, dict);
    }
    @RequestMapping("/addDict")
    @ResponseBody
    public String addDict(String adapterVersion, String dict) throws Exception {
        String url = "/api/v1.0/adapter_center/dict";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dict", dict);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/addDict")
    @ApiOperation(value = "保存字典", response = AdapterDictModel.class, produces = "application/json", notes = "保存字典")
    public AdapterDictModel addDict(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dict", value = "字典")
            @RequestParam(value = "dict") String dict) {
        return dictService.add(adapterVersion, dict);
    }
}

+ 73 - 72
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeDictEntryController.java

@ -1,28 +1,32 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.constrant.Result;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.standard.model.AdapterDictEntryResultDetailModel;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.adapter.AdapterDictentryModel;
import com.yihu.ehr.standard.model.adapter.resultModel.AdapterDictEntryResultDetailModel;
import com.yihu.ehr.standard.service.adapter.AdapterDictentryService;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("SchemeDictEntryController")
@RequestMapping("/adapterCenter")
@Api(protocols = "https", value = "SchemeDictEntryController", description = "适配字典项管理", tags = {"适配字典项"})
public class SchemeDictEntryController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = AdapterDictentryService.BEAN_ID)
    private AdapterDictentryService dictentryService;
    /**
     * 查询字典项列表信息(get)
     * @param adapterVersion
@ -33,82 +37,79 @@ public class SchemeDictEntryController extends BaseController {
     * @return
     * @throws Exception
     */
    @RequestMapping("/searchDictEntryList")
    @ResponseBody
    public Result searchDictEntryList(String adapterVersion,String condition,String order,Integer rows,Integer page) throws Exception {
        String url = "/api/v1.0/adapter_center/dictEntrys/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("condition", condition);
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", page - 1);
        String resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        List<AdapterDictEntryResultDetailModel> detailModelList = jsonArrayToList(resultStr, AdapterDictEntryResultDetailModel.class);
        url = "/api/v1.0/adapter_center/dictEntrys/totalCount";
        resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        Integer count = Integer.parseInt(resultStr);
    @RequestMapping(value = "/searchDictEntryList")
    @ApiOperation(value = "获取字典项列表", response = Result.class, produces = "application/json", notes = "获取字典项列表")
    public Result getDictEntryList(
            @ApiParam(name = "adapterVersion", value = "适配版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "condition", value = "查询条件")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<AdapterDictEntryResultDetailModel> detailModelList = dictentryService.getDictEntryList(AdapterDictentryModel.class, adapterVersion, condition, order, rows, page - 1);
        Integer count = dictentryService.getDictEntryInt(AdapterDictentryModel.class, adapterVersion, condition);
        Result result = new Result();
        result.setDetailModelList(detailModelList);
        result.setTotalCount(count);
        return result;
    }
    @RequestMapping("/getForDictEntryId")
    @ResponseBody
    public String getForDictEntryId(String adapterVersion, Integer dictId, Integer dictEntryId) throws Exception {
        String url = "/api/v1.0/adapter_center/dictEntry";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dictId", dictId);
        params.put("dictEntryId", dictEntryId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @RequestMapping(value = "/getForDictEntryId")
    @ApiOperation(value = "获取字典项", response = AdapterDictentryModel.class, produces = "application/json", notes = "获取字典项")
    public AdapterDictentryModel get(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dictEntryId", value = "字典项ID")
            @RequestParam(value = "dictEntryId") Integer dictentryId) {
        AdapterVersion version = new AdapterVersion(adapterVersion);
        return (AdapterDictentryModel) dictentryService.get(AdapterDictentryModel.class, version.getDictEntryTableName(), dictentryId, ErrorCode.GetDictEntryFailed);
    }
    @RequestMapping("/updateDictEntry")
    @ResponseBody
    public String updateDictEntry(String adapterVersion, String dictEntry) throws Exception {
        String url = "/api/v1.0/adapter_center/dictEntry";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dictEntry", dictEntry);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/updateDictEntry")
    @ApiOperation(value = "修改字典项", response = AdapterDictentryModel.class, produces = "application/json", notes = "修改字典项")
    public AdapterDictentryModel updateDictEntry(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dictEntry", value = "字典项")
            @RequestParam(value = "dictEntry") String dictEntry) {
        return dictentryService.modify(adapterVersion, dictEntry);
    }
    @RequestMapping("/addDictEntry")
    @ResponseBody
    public String addDictEntry(String adapterVersion, String dictEntry) throws Exception {
        String url = "/api/v1.0/adapter_center/dictEntry";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("dictEntry", dictEntry);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @RequestMapping(value = "/addDictEntry")
    @ApiOperation(value = "保存字典项", response = AdapterDictentryModel.class, produces = "application/json", notes = "保存字典项")
    public AdapterDictentryModel add(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dictEntry", value = "字典项")
            @RequestParam(value = "dictEntry") String dictEntry) {
        return dictentryService.add(adapterVersion, dictEntry);
    }
    @RequestMapping("/updateDictEntrys")
    @ResponseBody
    public String updateDictEntrys(String adapterVersion, String list) throws Exception {
        String url = "/api/v1.0/adapter_center/dictEntrys";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("list", list);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存字典项", response = AdapterDictEntryResultDetailModel.class, responseContainer = "list", produces = "application/json", notes = "保存数据元")
    public List<AdapterDictEntryResultDetailModel> updateDictEntrys(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "list", value = "字典项列表")
            @RequestParam(value = "list") String list) {
        return  dictentryService.updateDictEntrys(adapterVersion, list);
    }
    @RequestMapping("/delDictEntry")
    @ResponseBody
    public boolean delDictEntry(String adapterVersion, String list) throws Exception {
        String url = "/api/v1.0/adapter_center/dictEntry/single";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("list", list);
        HttpClientUtil.doDelete(host+url,params,username,password);
        return true;
    @ApiOperation(value = "删除字典项", response = AdapterDictentryModel.class, produces = "application/json", notes = "删除字典项,若字典项表为空管理字典清掉")
    public void delete(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "dictEntryId", value = "字典项ID")
            @RequestParam(value = "dictEntryId") Integer dictEntryId,
            @ApiParam(name = "stdDictId", value = "标准字典ID")
            @RequestParam(value = "stdDictId") Integer stdDictId,
            @ApiParam(name = "adapterDictId", value = "适配字典ID")
            @RequestParam(value = "adapterDictId") Integer adapterDictId) {
        dictentryService.deleteMultiple(adapterVersion, dictEntryId, stdDictId, adapterDictId);
    }
}

+ 69 - 69
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeMetadataController.java

@ -1,28 +1,31 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.constrant.Result;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.standard.model.ApiMetadataResultDetailModel;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.adapter.AdapterMetadataModel;
import com.yihu.ehr.standard.model.adapter.resultModel.ApiMetadataResultDetailModel;
import com.yihu.ehr.standard.service.adapter.AdapterMetadataService;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("SchemeMetadataController")
@RequestMapping("/adapterCenter")
@Api(protocols = "https", value = "SchemeMetadataController", description = "适配字典管理", tags = {"适配字典"})
public class SchemeMetadataController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = AdapterMetadataService.BEAN_ID)
    private AdapterMetadataService metadataService;
    /**
     * 查询数据元列表信息(get)
     * @param adapterVersion
@ -34,22 +37,20 @@ public class SchemeMetadataController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/searchMetadataList")
    @ResponseBody
    public Result searchMetadataList(String adapterVersion,String condition,String order,Integer rows,Integer page) throws Exception {
        String url = "/api/v1.0/adapter_center/metadatas/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("condition", condition);
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", page - 1);
        String resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        List<ApiMetadataResultDetailModel> metadataModelList = jsonArrayToList(resultStr, ApiMetadataResultDetailModel.class);
        url = "/api/v1.0/adapter_center/metadatas/totalCount";
        resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        Integer count = Integer.parseInt(resultStr);
    @ApiOperation(value = "获取数据元列表", response = Result.class, produces = "application/json", notes = "获取数据元列表")
    public Result getMetadataList(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "condition", value = "查询条件")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<ApiMetadataResultDetailModel> metadataModelList = metadataService.getMetadataList(AdapterMetadataModel.class, adapterVersion, condition, order, rows, page - 1);
        Integer count = metadataService.getMetadataCount(AdapterMetadataModel.class, adapterVersion, condition);
        Result result = new Result();
        result.setDetailModelList(metadataModelList);
        result.setTotalCount(count);
@ -57,58 +58,57 @@ public class SchemeMetadataController extends BaseController {
    }
    @RequestMapping("/getForMetadataId")
    @ResponseBody
    public String getForMetadataId(String adapterVersion, Integer datasetId, Integer metadataId) throws Exception {
        String url = "/api/v1.0/adapter_center/metadata";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("datasetId", datasetId);
        params.put("metadataId", metadataId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @ApiOperation(value = "获取数据元", response = AdapterMetadataModel.class, produces = "application/json", notes = "获取数据元")
    public AdapterMetadataModel get(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "metadataId", value = "数据元ID")
            @RequestParam(value = "metadataId") Integer metadataId) {
        AdapterVersion version = new AdapterVersion(adapterVersion);
        return (AdapterMetadataModel) metadataService.get(AdapterMetadataModel.class, version.getMetaDataTableName(), metadataId, ErrorCode.GetMetaDataFailed);
    }
    @RequestMapping("/updateMetadata")
    @ResponseBody
    public String updateMetadata(String adapterVersion, String metadata) throws Exception {
        String url = "/api/v1.0/adapter_center/metadata";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("metadata", metadata);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "修改数据元", response = AdapterMetadataModel.class, produces = "application/json", notes = "修改数据元")
    public AdapterMetadataModel updateMetadata(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "metadata", value = "数据元")
            @RequestParam(value = "metadata") String metadata) {
        return metadataService.modify(adapterVersion, metadata);
    }
    @RequestMapping("/addMetadata")
    @ResponseBody
    public String addMetadata(String adapterVersion, String metadata) throws Exception {
        String url = "/api/v1.0/adapter_center/metadata";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("metadata", metadata);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存数据元", response = AdapterMetadataModel.class, produces = "application/json", notes = "保存数据元")
    public AdapterMetadataModel addMetadata(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "metadata", value = "数据元")
            @RequestParam(value = "metadata") String metadata) {
        return metadataService.add(adapterVersion, metadata);
    }
    @RequestMapping("/updateMetadatas")
    @ResponseBody
    public String updateMetadatas(String adapterVersion, String list) throws Exception {
        String url = "/api/v1.0/adapter_center/metadatas";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("list", list);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存数据元", response = ApiMetadataResultDetailModel.class, responseContainer = "list", produces = "application/json", notes = "保存数据元")
    public List<ApiMetadataResultDetailModel> updateMetadatas(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "list", value = "数据元列表")
            @RequestParam(value = "list") String list) {
        return metadataService.updateMetadatas(adapterVersion, list);
    }
    @RequestMapping("/delMetadata")
    @ResponseBody
    public boolean delDictEntry(String adapterVersion, String list) throws Exception {
        String url = "/api/v1.0/adapter_center/metadata/single";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("adapterVersion", adapterVersion);
        params.put("list", list);
        HttpClientUtil.doDelete(host+url,params,username,password);
        return true;
    @ApiOperation(value = "删除数据元", produces = "application/json", notes = "删除数据元")
    public void delete(
            @ApiParam(name = "adapterVersion", value = "标准版本号")
            @RequestParam(value = "adapterVersion") String adapterVersion,
            @ApiParam(name = "metadataId", value = "数据元ID")
            @RequestParam(value = "metadataId") Integer metadataId,
            @ApiParam(name = "stdDatasetId", value = "标准数据集ID")
            @RequestParam(value = "stdDatasetId") Integer stdDatasetId,
            @ApiParam(name = "adapterDatasetId", value = "适配数据集ID")
            @RequestParam(value = "adapterDatasetId") Integer adapterDatasetId) {
        metadataService.deleteMultiple(adapterVersion, metadataId, stdDatasetId, adapterDatasetId);
    }
}

+ 39 - 51
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/SchemeVersionController.java

@ -1,25 +1,23 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeVersionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("SchemeVersionController")
@RequestMapping("/adapterCenter")
@Api(protocols = "https", value = "SchemeVersionController", description = "适配版本管理", tags = {"适配版本"})
public class SchemeVersionController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = AdapterSchemeVersionService.BEAN_ID)
    private AdapterSchemeVersionService adapterSchemeVersion;
    /**
     * 根据版本id获取适配方案信息(get)
     * @param versionId
@ -27,13 +25,11 @@ public class SchemeVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/getForVersionId")
    @ResponseBody
    public String getForVersionId(Integer versionId) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("versionId",versionId);
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        return result;
    @ApiOperation(value = "获取适配版本", response = AdapterSchemeVersionModel.class, produces = "application/json", notes = "获取适配版本")
    public AdapterSchemeVersionModel get(
            @ApiParam(name = "versionId", value = "适配版本ID")
            @RequestParam(value = "versionId") Integer versionId) {
        return adapterSchemeVersion.get(versionId);
    }
    /**
@ -43,13 +39,11 @@ public class SchemeVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/addVersion")
    @ResponseBody
    public String addVersion(String version) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("version",version);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存适配版本", response = AdapterSchemeVersionModel.class, produces = "application/json", notes = "保存适配版本")
    public AdapterSchemeVersionModel add(
            @ApiParam(name = "version", value = "适配版本信息")
            @RequestParam(value = "version") String version) {
        return adapterSchemeVersion.add(version);
    }
    /**
@ -59,13 +53,11 @@ public class SchemeVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/updateVersion")
    @ResponseBody
    public String updateVersion(String version) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("version",version);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "修改适配版本", response = AdapterSchemeVersionModel.class, produces = "application/json", notes = "修改适配版本")
    public AdapterSchemeVersionModel modify(
            @ApiParam(name = "version", value = "标准版本")
            @RequestParam(value = "version") String version) {
        return adapterSchemeVersion.update(version);
    }
    /**
@ -75,14 +67,13 @@ public class SchemeVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/publishVersion")
    @ResponseBody
    public String publishVersion(Integer versionId, String publisher) throws Exception {
        String url = "/api/v1.0/adapter_center/version/publish";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("versionId", versionId);
        params.put("publisher", publisher);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "发布适配版本", response = AdapterSchemeVersionModel.class, produces = "application/json", notes = "发布适配版本")
    public AdapterSchemeVersionModel publish(
            @ApiParam(name = "versionId", value = "适配版本ID")
            @RequestParam(value = "versionId") Integer versionId,
            @ApiParam(name = "publisher", value = "发布者")
            @RequestParam(value = "publisher", required = false) String publisher) {
        return adapterSchemeVersion.publish(versionId, publisher);
    }
    /**
@ -92,13 +83,10 @@ public class SchemeVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/deleteVersion")
    @ResponseBody
    public String deleteVersion(Integer versionId) throws Exception {
        String url = "/api/v1.0/adapter_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("versionId",versionId);
        String result = HttpClientUtil.doDelete(host + url, params, username, password);
        return result;
    @ApiOperation(value = "删除版本", produces = "application/json", notes = "删除版本")
    public void delete(
            @ApiParam(name = "versionId", value = "标准版本ID")
            @RequestParam(value = "versionId") Integer versionId) {
        adapterSchemeVersion.delete(versionId);
    }
}

+ 44 - 56
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardController.java

@ -1,26 +1,26 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.standard.model.StandardResultDetailModel;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.resultModel.StandardResultDetailModel;
import com.yihu.ehr.standard.service.standard.StandardService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("StandardController")
@RequestMapping("/standardCenter")
@Api(protocols = "https", value = "StandardController", description = "标准管理", tags = {"标准"})
public class StandardController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = StandardService.BEAN_ID)
    private StandardService standardService;
    /**
     * 查询集成标准首页信息(get)
@ -29,13 +29,11 @@ public class StandardController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/searchStandard")
    @ResponseBody
    public String searchStandard(String condition) throws Exception {
        String url = "/api/v1.0/standard_center/standards/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("condition", condition);
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        return result;
    @ApiOperation(value = "获取标准列表", response = StandardResultDetailModel.class, responseContainer = "List", notes = "获取标准列表")
    public List<StandardResultDetailModel> searchStandard(
            @ApiParam(name = "condition", value = "查询条件name:厂商、标准、标准版本名称,标准类别type:0为集成标准,1为应用标准")
            @RequestParam(value = "condition", required = false) String condition) {
        return standardService.getStandardList(condition);
    }
    /**
@ -44,12 +42,11 @@ public class StandardController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/getSysParamList")
    @ResponseBody
    public String getSysParamList() throws Exception {
        String url = "/api/v1.0/standard_center/standards/sysparam";
        Map<String, Object> params = new HashMap<String, Object>();
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        return result;
    @ApiOperation(value = "获取集成标准系统参数", response = String.class, notes = "获取集成标准系统参数")
    public String getSysParamList() {
        List<Object[]> list = standardService.getSysParamList();
        String code = StringUtil.toString(list.get(0)[0]);
        return code;
    }
@ -60,13 +57,11 @@ public class StandardController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/getForStandardId")
    @ResponseBody
    public String getForStandardId(Integer standardId) throws Exception {
        String url = "/api/v1.0/standard_center/standard";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("standardId",standardId);
        String result = HttpClientUtil.doGet( host+url,params,username,password);
        return result;
    @ApiOperation(value = "获取标准", response = StandardModel.class, produces = "application/json", notes = "获取标准")
    public StandardModel getForStandardId(
            @ApiParam(name = "standardId", value = "标准ID")
            @RequestParam(value = "standardId") Integer standardId){
        return standardService.get(standardId);
    }
    /**
@ -76,13 +71,11 @@ public class StandardController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/updateStandard")
    @ResponseBody
    public String updateStandard(String standard) throws Exception {
        String url = "/api/v1.0/standard_center/standard";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("standard",standard);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "修改标准", response = StandardModel.class, produces = "application/json", notes = "修改标准")
    public StandardModel modify(
            @ApiParam(name = "standard", value = "标准基本信息")
            @RequestParam(value = "standard") String standard) {
        return standardService.update(standard);
    }
    /**
@ -92,13 +85,11 @@ public class StandardController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/addStandard")
    @ResponseBody
    public String addStandard(String standard) throws Exception {
        String url = "/api/v1.0/standard_center/standard";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("standard",standard);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存标准", response = StandardModel.class, produces = "application/json", notes = "保存标准")
    public StandardModel add(
            @ApiParam(name = "standard", value = "标准基本信息")
            @RequestParam(value = "standard") String standard) {
        return (StandardModel) standardService.add(standard);
    }
    /**
@ -108,13 +99,10 @@ public class StandardController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/deleteStandard")
    @ResponseBody
    public String deleteStandard(Integer standardId) throws Exception {
        String url = "/api/v1.0/standard_center/standard";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("standardId",standardId);
        String result = HttpClientUtil.doDelete(host + url, params, username, password);
        return result;
    @ApiOperation(value = "删除标准", produces = "application/json", notes = "删除标准")
    public void delete(
            @ApiParam(name = "standardId", value = "标准ID")
            @RequestParam(value = "standardId") Integer standardId) {
        standardService.delete(standardId);
    }
}

+ 57 - 61
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardVersionController.java

@ -2,30 +2,29 @@ package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.model.DictItem;
import com.yihu.ehr.framework.model.DictionaryResult;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.standard.service.standard.StandardVersionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("StandardVersionController")
@RequestMapping("/standardCenter")
@Api(protocols = "https", value = "StandardVersionController", description = "标准版本管理", tags = {"标准版本"})
public class StandardVersionController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = StandardVersionService.BEAN_ID)
    private StandardVersionService standardVersionService;
    /**
     * 根据版本id获取标准版本信息(get)
     * @param versionId
@ -33,13 +32,11 @@ public class StandardVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/getForVersionId")
    @ResponseBody
    public String getForVersionId(String versionId) throws Exception {
        String url = "/api/v1.0/standard_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("versionId",Integer.parseInt(versionId));
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        return result;
    @ApiOperation(value = "获取标准版本", response = StandardVersionModel.class, produces = "application/json", notes = "获取标准版本")
    public StandardVersionModel getForVersionId(
            @ApiParam(name = "versionId", value = "标准版本ID")
            @RequestParam(value = "versionId") Integer versionId) {
        return standardVersionService.get(versionId);
    }
    /**
@ -49,13 +46,11 @@ public class StandardVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/addVersion")
    @ResponseBody
    public String addVersion(String version) throws Exception {
        String url = "/api/v1.0/standard_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("version",version);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存标准版本", response = StandardVersionModel.class, produces = "application/json", notes = "保存标准版本")
    public StandardVersionModel addVersion(
            @ApiParam(name = "version", value = "标准版本信息")
            @RequestParam(value = "version") String version) {
        return (StandardVersionModel) standardVersionService.add(version);
    }
    /**
@ -65,13 +60,11 @@ public class StandardVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/updateVersion")
    @ResponseBody
    public String updateVersion(String version) throws Exception {
        String url = "/api/v1.0/standard_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("version",version);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "修改版本", response = StandardVersionModel.class, produces = "application/json", notes = "修改版本")
    public StandardVersionModel updateVersion(
            @ApiParam(name = "version", value = "标准版本")
            @RequestParam(value = "version") String version) {
        return standardVersionService.update(version);
    }
    /**
@ -82,14 +75,13 @@ public class StandardVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/publishVersion")
    @ResponseBody
    public String publishVersion(Integer versionId,String publisher) throws Exception {
        String url = "/api/v1.0/standard_center/version/publish";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("versionId",versionId);
        params.put("publisher",publisher);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "发布版本", response = StandardVersionModel.class, produces = "application/json", notes = "发布版本")
    public StandardVersionModel publish(
            @ApiParam(name = "versionId", value = "标准版本ID")
            @RequestParam(value = "versionId") Integer versionId,
            @ApiParam(name = "publisher", value = "发布者")
            @RequestParam(value = "publisher") String publisher) {
        return standardVersionService.publish(versionId, publisher);
    }
    /**
@ -99,14 +91,13 @@ public class StandardVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/deleteVersion")
    @ResponseBody
    public String deleteVersion(Integer versionId,String version) throws Exception {
        String url = "/api/v1.0/standard_center/version";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("versionId",versionId);
        params.put("version",version);
        String result = HttpClientUtil.doDelete(host + url, params, username, password);
        return result;
    @ApiOperation(value = "删除版本", produces = "application/json", notes = "删除版本")
    public void delete(
            @ApiParam(name = "versionId", value = "标准版本ID")
            @RequestParam(value = "versionId") Integer versionId,
            @ApiParam(name = "version", value = "标准版本值")
            @RequestParam(value = "version") String version) {
        standardVersionService.delete(versionId,version);
    }
    /**
@ -116,24 +107,29 @@ public class StandardVersionController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/getVersions")
    @ResponseBody
    public DictionaryResult getVersions(Integer standardId) throws Exception {
        String url = "/api/v1.0/standard_center/versions";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("standardId",standardId);
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        JSONArray array = JSONArray.fromObject(result);
    @ApiOperation(value = "获取标准版本列表", response = DictionaryResult.class, produces = "application/json", notes = "获取标准版本列表")
    public DictionaryResult getVersions(
            @ApiParam(name = "standardId", value = "标准ID")
            @RequestParam(value = "standardId") Integer standardId,
            @ApiParam(name = "condition", value = "Must be Json")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Must be Json")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StandardVersionModel> standardVersionModelList = standardVersionService.getList(standardId, condition, order, rows, page - 1);
        DictionaryResult dictionaryResult = new DictionaryResult();
        List<DictItem> detailModelList = new ArrayList<DictItem>();
        DictItem item = new DictItem();
        item.setCode("");
        item.setValue("-无-");
        detailModelList.add(item);
        for(int i = 0; i < array.size(); i++){
            JSONObject jsonObject = array.getJSONObject(i);
        for (StandardVersionModel standardVersionModel : standardVersionModelList) {
            DictItem items = new DictItem();
            String  id = (String) jsonObject.get("version");
            String name = (String)jsonObject.get("name");
            String  id = standardVersionModel.getVersion();
            String name = standardVersionModel.getName();
            items.setCode(id.toString());
            items.setValue(name);
            detailModelList.add(items);

+ 70 - 70
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDatasetController.java

@ -1,17 +1,20 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.Result;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.standard.model.Select2;
import com.yihu.ehr.standard.model.StdDataSetModel;
import com.yihu.ehr.standard.model.standard.StdDataSetModel;
import com.yihu.ehr.standard.service.standard.StdDatasetService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -19,13 +22,12 @@ import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("StdDatasetController")
@RequestMapping("/standardCenter")
@Api(protocols = "https", value = "StdDatasetController", description = "标准数据集管理", tags = {"标准数据集"})
public class StdDatasetController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = StdDatasetService.BEAN_ID)
    private StdDatasetService stdDatasetService;
    /**
     * 查询数据集列表信息(get)
     * @param stdVersion
@ -37,22 +39,20 @@ public class StdDatasetController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/searchDatasetList")
    @ResponseBody
    public Result searchDatasetList(String stdVersion,String condition,String order,Integer rows,Integer page) throws Exception {
        String url = "/api/v1.0/standard_center/datasets/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("condition", condition);
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", page - 1);
        String resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        List<StdDataSetModel> dataSetModelList = jsonArrayToList(resultStr, StdDataSetModel.class);
        url = "/api/v1.0/standard_center/datasets/totalCount";
        resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        Integer count = Integer.parseInt(resultStr);
    @ApiOperation(value = "获取数据集列表", response = Result.class, produces = "application/json", notes = "获取数据集列表")
    public Result searchDatasetList(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "condition", value = "查询条件:编码或名称")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StdDataSetModel> dataSetModelList = stdDatasetService.getDatasetList(StdDataSetModel.class, stdVersion, condition, order, rows, page - 1);
        Integer count = stdDatasetService.getDatasetInt(StdDataSetModel.class, stdVersion, condition);
        Result result = new Result();
        result.setDetailModelList(dataSetModelList);
        result.setTotalCount(count);
@ -60,52 +60,60 @@ public class StdDatasetController extends BaseController {
    }
    @RequestMapping("/getForDatasetId")
    @ResponseBody
    public String getForDatasetId(String stdVersion, Integer datasetId) throws Exception {
        String url = "/api/v1.0/standard_center/dataset";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("datasetId", datasetId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @ApiOperation(value = "获取数据集", response = StdDataSetModel.class, produces = "application/json", notes = "获取数据集")
    public StdDataSetModel getForDatasetId(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "datasetId", value = "数据集ID")
            @RequestParam(value = "datasetId") Integer datasetId) {
        return stdDatasetService.get(stdVersion, datasetId);
    }
    @RequestMapping("/delDataset")
    @ResponseBody
    public String delDataset(String stdVersion, Integer id) throws Exception {
        String url = "/api/v1.0/standard_center/dataset";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("datasetId", id);
        String result = HttpClientUtil.doDelete(host+url,params,username,password);
        return result;
    @ApiOperation(value = "删除数据集", produces = "application/json", notes = "删除数据集")
    public void delDataset(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "datasetId", value = "数据集ID")
            @RequestParam(value = "datasetId") Integer datasetId) {
        stdDatasetService.delete(stdVersion, datasetId);
    }
    @RequestMapping("/updateDataset")
    @ResponseBody
    public String updateDataset(String stdVersion, String dataset) throws Exception {
        String url = "/api/v1.0/standard_center/dataset";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dataset", dataset);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "修改数据集", response = StdDataSetModel.class, produces = "application/json", notes = "修改数据集")
    public StdDataSetModel updateDataset(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dataset", value = "数据集")
            @RequestParam(value = "dataset") String dataset) {
        return (StdDataSetModel) stdDatasetService.update(stdVersion, dataset);
    }
    @RequestMapping("/addDataset")
    @ResponseBody
    public String addDataset(String stdVersion, String dataset) throws Exception {
        String url = "/api/v1.0/standard_center/dataset";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dataset", dataset);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存数据集", response = StdDataSetModel.class, produces = "application/json", notes = "保存数据集")
    public StdDataSetModel add(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dataset", value = "数据集")
            @RequestParam(value = "dataset") String dataset) {
        return stdDatasetService.add(stdVersion, dataset);
    }
    @RequestMapping(value="/getDatasetCodeValues")
    @ResponseBody
    public String getDatasetCodeValues(String stdVersion, String q,String initVal, String order, Integer rows) throws Exception {
    @ApiOperation(value = "获取数据集下拉框信息", response = Result.class, produces = "application/json", notes = "获取机构数据元下拉框信息")
    public Result getSelectList(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "q", value = "数据集名称或编码", required = false)
            @RequestParam(value = "q", required = false) String q,
            @ApiParam(name = "initVal", value = "初始化数据集名称或编码", required = false)
            @RequestParam(value = "initVal", required = false) String initVal,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        Map<String,String> condition = new HashMap<String,String>();
        if(!StringUtil.isEmpty(q)){
            condition.put("name", q);
@ -115,17 +123,9 @@ public class StdDatasetController extends BaseController {
            condition.put("initVal", initVal);//默认值
        }
        JSONObject jsonpObject = JSONObject.fromObject(condition);
        String url = "/api/v1.0/standard_center/datasets/selectList";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("condition", jsonpObject.toString());
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", 0);
        String resultStr = HttpClientUtil.doGet(host+url,params,username,password);
        List<Select2> detailModelList = jsonArrayToList(resultStr, Select2.class);
        List<Select2> detailModelList = stdDatasetService.getDatasetSelectList(stdVersion, jsonpObject.toString(), order, rows, 0);
        Result result = getResult(detailModelList, detailModelList.size(), 1, rows);
        return result.toJson();
        return result;
    }
}

+ 71 - 69
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDictController.java

@ -1,17 +1,20 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.Result;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.standard.model.Select2;
import com.yihu.ehr.standard.model.StdDictionaryModel;
import com.yihu.ehr.standard.model.standard.StdDictionaryModel;
import com.yihu.ehr.standard.service.standard.StdDictService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -19,13 +22,12 @@ import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("StdDictController")
@RequestMapping("/standardCenter")
@Api(protocols = "https", value = "StdDictController", description = "标准字典管理", tags = {"标准字典"})
public class StdDictController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = StdDictService.BEAN_ID)
    StdDictService stdDictService;
    /**
     * 查询字典列表信息(get)
     * @param stdVersion
@ -37,22 +39,20 @@ public class StdDictController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/searchDictList")
    @ResponseBody
    public Result searchDictList(String stdVersion,String condition,String order,Integer rows,Integer page) throws Exception {
        String url = "/api/v1.0/standard_center/dicts/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("condition", condition);
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", page - 1);
        String resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        List<StdDictionaryModel> dictModelList = jsonArrayToList(resultStr, StdDictionaryModel.class);
        url = "/api/v1.0/standard_center/dicts/totalCount";
        resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        Integer count = Integer.parseInt(resultStr);
    @ApiOperation(value = "获取字典列表", response = Result.class, produces = "application/json", notes = "获取字典列表")
    public Result getDictList(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "condition", value = "查询条件:编码或名称")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StdDictionaryModel> dictModelList = stdDictService.getDictList(StdDictionaryModel.class, stdVersion, condition, order, rows, page - 1);
        Integer count = stdDictService.getDictInt(StdDictionaryModel.class, stdVersion, condition);
        Result result = new Result();
        result.setDetailModelList(dictModelList);
        result.setTotalCount(count);
@ -60,52 +60,61 @@ public class StdDictController extends BaseController {
    }
    @RequestMapping("/getForDictId")
    @ResponseBody
    public String getForDictId(String stdVersion, Integer dictId) throws Exception {
        String url = "/api/v1.0/standard_center/dict";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dictId", dictId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @ApiOperation(value = "获取字典", response = StdDictionaryModel.class, produces = "application/json", notes = "获取字典")
    public StdDictionaryModel get(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dictId", value = "字典ID")
            @RequestParam(value = "dictId") Integer dictId) {
        return stdDictService.get(stdVersion, dictId);
    }
    @RequestMapping("/delDict")
    @ResponseBody
    public boolean delDict(String stdVersion, Integer id) throws Exception {
        String url = "/api/v1.0/standard_center/dict";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dictId", id);
         HttpClientUtil.doDelete(host+url,params,username,password);
        return true;
    @ApiOperation(value = "删除字典", produces = "application/json", notes = "删除字典")
    public void delete(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dictId", value = "字典ID")
            @RequestParam(value = "dictId") Integer dictId) {
        stdDictService.delete(stdVersion, dictId);
    }
    
    @RequestMapping("/updateDict")
    @ResponseBody
    public String updateDict(String stdVersion, String dict) throws Exception {
        String url = "/api/v1.0/standard_center/dict";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dict", dict);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "修改字典", response = StdDictionaryModel.class, produces = "application/json", notes = "修改字典")
    public StdDictionaryModel modify(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dict", value = "字典")
            @RequestParam(value = "dict") String dict) {
        return (StdDictionaryModel) stdDictService.update(stdVersion, dict);
    }
    @RequestMapping("/addDict")
    @ResponseBody
    public String addDict(String stdVersion, String dict) throws Exception {
        String url = "/api/v1.0/standard_center/dict";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dict", dict);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存字典", response = StdDictionaryModel.class, produces = "application/json", notes = "保存字典")
    public StdDictionaryModel addDict(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dict", value = "字典")
            @RequestParam(value = "dict") String dict) {
        return (StdDictionaryModel) stdDictService.add(stdVersion, dict);
    }
    @RequestMapping(value="/getDictCodeValues")
    @ResponseBody
    public String getDictCodeValues(String stdVersion, String q, String initVal, String order, Integer rows) throws Exception {
    @ApiOperation(value = "获取字典下拉框信息", response = String.class, produces = "application/json", notes = "获取字典下拉框信息")
    public String getSelectList(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "q", value = "数据集名称或编码", required = false)
            @RequestParam(value = "q", required = false) String q,
            @ApiParam(name = "initVal", value = "初始化数据集名称或编码", required = false)
            @RequestParam(value = "initVal", required = false) String initVal,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        Map<String,String> condition = new HashMap<String,String>();
        if(!StringUtil.isEmpty(q)){
            condition.put("name", q);
@ -114,15 +123,8 @@ public class StdDictController extends BaseController {
            condition.put("initVal", initVal);//默认值
        }
        JSONObject jsonpObject = JSONObject.fromObject(condition);
        String url = "/api/v1.0/standard_center/dicts/selectList";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("condition", jsonpObject.toString());
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", 0);
        String resultStr = HttpClientUtil.doGet(host+url,params,username,password);
        List<Select2> detailModelList = jsonArrayToList(resultStr, Select2.class);
        List<StdDictionaryModel> dictList = stdDictService.getDictList(StdDictionaryModel.class, stdVersion, jsonpObject.toString(), order, rows, 0);
        List<Select2> detailModelList = stdDictService.getDictSelectList(dictList);
        Result result = getResult(detailModelList, detailModelList.size(), 1, rows);
        return result.toJson();

+ 76 - 74
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdDictEntryController.java

@ -1,17 +1,20 @@
package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.Result;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.standard.model.Select2;
import com.yihu.ehr.standard.model.StdDictionaryEntryModel;
import com.yihu.ehr.standard.model.standard.StdDictionaryEntryModel;
import com.yihu.ehr.standard.service.standard.StdDictEntryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -19,13 +22,12 @@ import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("StdDictEntryController")
@RequestMapping("/standardCenter")
@Api(protocols = "https", value = "StdDictEntryController", description = "标准字典项管理", tags = {"标准字典项"})
public class StdDictEntryController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = StdDictEntryService.BEAN_ID)
    StdDictEntryService stdDictEntryService;
    /**
     * 查询字典项列表信息(get)
     * @param stdVersion
@ -38,80 +40,89 @@ public class StdDictEntryController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/searchDictEntryList")
    @ResponseBody
    public Result searchDictEntryList(String stdVersion,Integer dictId,String condition,String order,Integer rows,Integer page) throws Exception {
    @ApiOperation(value = "获取字典项列表", response = StdDictionaryEntryModel.class, responseContainer = "List",produces = "application/json", notes = "获取字典项列表")
    public Result getDictEntryList(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dictId", value = "字典ID")
            @RequestParam(value = "dictId") Integer dictId,
            @ApiParam(name = "condition", value = "查询条件")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        Result result = new Result();
        if(dictId==null){//没有字典数据时,返回空数据
            return result;
        }
        String url = "/api/v1.0/standard_center/dictEntrys/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dictId", dictId);
        params.put("condition", condition);
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", page - 1);
        String resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        List<StdDictionaryEntryModel> detailModelList = jsonArrayToList(resultStr, StdDictionaryEntryModel.class);
        url = "/api/v1.0/standard_center/dictEntrys/totalCount";
        resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        Integer count = Integer.parseInt(resultStr);
        List<StdDictionaryEntryModel> detailModelList = stdDictEntryService.getDictEntryList(StdDictionaryEntryModel.class, stdVersion, dictId, condition, order, rows, page - 1);
        Integer count = stdDictEntryService.getDictEntryInt(StdDictionaryEntryModel.class, stdVersion, dictId, condition, order, rows, page - 1);
        result.setDetailModelList(detailModelList);
        result.setTotalCount(count);
        return result;
    }
    @RequestMapping("/getForDictEntryId")
    @ResponseBody
    public String getForDictEntryId(String stdVersion, Integer dictId, Integer dictEntryId) throws Exception {
        String url = "/api/v1.0/standard_center/dictEntry";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dictId", dictId);
        params.put("dictEntryId", dictEntryId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @ApiOperation(value = "获取字典", response = StdDictionaryEntryModel.class, produces = "application/json", notes = "获取字典")
    public StdDictionaryEntryModel get(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dictEntryId", value = "字典ID")
            @RequestParam(value = "dictEntryId") Integer dictEntryId) {
        return stdDictEntryService.get(stdVersion, dictEntryId);
    }
    @RequestMapping("/delDictEntry")
    @ResponseBody
    public boolean delDictEntry(String stdVersion, Integer id) throws Exception {
        String url = "/api/v1.0/standard_center/dictEntry";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dictEntryId", id);
        HttpClientUtil.doDelete( host+url,params,username,password);
        return true;
    @ApiOperation(value = "删除字典", produces = "application/json", notes = "删除字典")
    public void delete(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dictEntryId", value = "字典ID")
            @RequestParam(value = "dictEntryId") Integer dictEntryId) {
        stdDictEntryService.delete(stdVersion, dictEntryId);
    }
    @RequestMapping("/updateDictEntry")
    @ResponseBody
    public String updateDictEntry(String stdVersion, String dictEntry) throws Exception {
        String url = "/api/v1.0/standard_center/dictEntry";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dictEntry", dictEntry);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "修改字典", response = StdDictionaryEntryModel.class, produces = "application/json", notes = "修改字典")
    public StdDictionaryEntryModel modify(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dictEntry", value = "字典")
            @RequestParam(value = "dictEntry") String dictEntry) {
        return (StdDictionaryEntryModel) stdDictEntryService.update(stdVersion, dictEntry);
    }
    @RequestMapping("/addDictEntry")
    @ResponseBody
    public String addDictEntry(String stdVersion, String dictEntry) throws Exception {
        String url = "/api/v1.0/standard_center/dictEntry";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dictEntry", dictEntry);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存字典", response = StdDictionaryEntryModel.class, produces = "application/json", notes = "保存字典")
    public StdDictionaryEntryModel add(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dictEntry", value = "字典")
            @RequestParam(value = "dictEntry") String dictEntry) {
        return (StdDictionaryEntryModel) stdDictEntryService.add(stdVersion, dictEntry);
    }
    @RequestMapping(value="/getDictEntryCodeValues")
    @ResponseBody
    public String getDictEntryCodeValues(String stdVersion, Integer dictId, String q, String initDictValue, String order, Integer rows) throws Exception {
    @ApiOperation(value = "获取字典下拉框信息", response = Result.class, produces = "application/json", notes = "获取适配字典下拉框信息")
    public Result searchOrgDictItem(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "dictId", value = "数据集ID")
            @RequestParam(value = "dictId") Integer dictId,
            @ApiParam(name = "q", value = "字典名称或编码", required = false)
            @RequestParam(value = "q", required = false) String q,
            @ApiParam(name = "initDictValue", value = "初始化字典名称或编码", required = false)
            @RequestParam(value = "initDictValue", required = false) String initDictValue,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        Map<String,String> condition = new HashMap<String,String>();
        if (StringUtil.isEmpty(initDictValue)) {
            initDictValue = "";
@ -122,18 +133,9 @@ public class StdDictEntryController extends BaseController {
            condition.put("name", q);
        }
        JSONObject jsonpObject = JSONObject.fromObject(condition);
        String url = "/api/v1.0/standard_center/dictEntrys/selectList";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("dictId", dictId);
        params.put("condition", jsonpObject.toString());
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", 0);
        String resultStr = HttpClientUtil.doGet(host+url,params,username,password);
        List<Select2> detailModelList = jsonArrayToList(resultStr, Select2.class);
        List<StdDictionaryEntryModel> dictEntryModelList = stdDictEntryService.getDictEntryList(StdDictionaryEntryModel.class, stdVersion, dictId, jsonpObject.toString(), order, rows, 0);
        List<Select2> detailModelList = stdDictEntryService.getDictEntrySelectList(dictEntryModelList);
        Result result = getResult(detailModelList, detailModelList.size(), 1, rows);
        return result.toJson();
        return result;
    }
}

+ 98 - 88
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StdMetadataController.java

@ -3,18 +3,22 @@ package com.yihu.ehr.standard.controller;
import com.yihu.ehr.framework.constrant.Result;
import com.yihu.ehr.framework.model.DictItem;
import com.yihu.ehr.framework.model.DictionaryResult;
import com.yihu.ehr.framework.util.ResourceProperties;
import com.yihu.ehr.framework.util.controller.BaseController;
import com.yihu.ehr.framework.util.httpclient.HttpClientUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.standard.model.Select2;
import com.yihu.ehr.standard.model.StdMetaDataModel;
import net.sf.json.JSONArray;
import com.yihu.ehr.standard.model.standard.StdDictionaryModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
import com.yihu.ehr.standard.service.standard.StdDictService;
import com.yihu.ehr.standard.service.standard.StdMetadataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -23,13 +27,14 @@ import java.util.Map;
/**
 * Created by LLH on 2016/1/6.
 */
@Controller
@RestController("StdMetadataController")
@RequestMapping("/standardCenter")
@Api(protocols = "https", value = "StdMetadataController", description = "标准数据元管理", tags = {"标准数据元"})
public class StdMetadataController extends BaseController {
    private static   String host = "http://"+ ResourceProperties.getProperty("serverip")+":"+ResourceProperties.getProperty("port");
    private static   String username = ResourceProperties.getProperty("username");
    private static   String password = ResourceProperties.getProperty("password");
    @Resource(name = StdMetadataService.BEAN_ID)
    StdMetadataService stdMetadataService;
    @Resource(name = StdDictService.BEAN_ID)
    StdDictService stdDictService;
    /**
     * 查询数据元列表信息(get)
     * @param stdVersion
@ -42,80 +47,89 @@ public class StdMetadataController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/searchMetadataList")
    @ResponseBody
    public Result searchMetadataList(String stdVersion,Integer datasetId,String condition,String order,Integer rows,Integer page) throws Exception {
    @ApiOperation(value = "获取数据元列表", response = Result.class, produces = "application/json", notes = "获取数据元列表")
    public Result getMetadataList(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "datasetId", value = "数据集ID")
            @RequestParam(value = "datasetId") Integer datasetId,
            @ApiParam(name = "condition", value = "查询条件")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StdMetaDataModel> metadataModelList = stdMetadataService.getMetadataList(StdMetaDataModel.class, stdVersion, datasetId, condition, order, rows, page - 1);
        Integer count = stdMetadataService.getMetadataCount(StdMetaDataModel.class, stdVersion, datasetId, condition);
        Result result = new Result();
        if(datasetId==null){//没有数据集数据时,返回空数据
            return result;
        }
        String url = "/api/v1.0/standard_center/metadatas/list";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("datasetId", datasetId);
        params.put("condition", condition);
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", page - 1);
        String resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        List<StdMetaDataModel> metadataModelList = jsonArrayToList(resultStr, StdMetaDataModel.class);
        url = "/api/v1.0/standard_center/metadatas/totalCount";
        resultStr = HttpClientUtil.doGet(host+url, params, username, password);
        Integer count = Integer.parseInt(resultStr);
        result.setDetailModelList(metadataModelList);
        result.setTotalCount(count);
        return result;
    }
    @RequestMapping("/getForMetadataId")
    @ResponseBody
    public String getForMetadataId(String stdVersion, Integer datasetId, Integer metadataId) throws Exception {
        String url = "/api/v1.0/standard_center/metadata";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("datasetId", datasetId);
        params.put("metadataId", metadataId);
        String result = HttpClientUtil.doGet(host+url,params,username,password);
        return result;
    @ApiOperation(value = "获取数据元", response = StdMetaDataModel.class, produces = "application/json", notes = "获取数据元")
    public StdMetaDataModel getForMetadataId(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "metadataId", value = "数据元ID")
            @RequestParam(value = "metadataId") Integer metadataId) {
        return stdMetadataService.get(stdVersion, metadataId);
    }
    @RequestMapping("/delMetaData")
    @ResponseBody
    public boolean delMetaData(String stdVersion, Integer id) throws Exception {
        String url = "/api/v1.0/standard_center/metadata";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("metadataId", id);
        HttpClientUtil.doDelete( host+url,params,username,password);
        return true;
    @ApiOperation(value = "删除数据元", produces = "application/json", notes = "删除数据元")
    public void delMetaData(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "metadataId", value = "数据元ID")
            @RequestParam(value = "metadataId") Integer metadataId) {
        stdMetadataService.delete(stdVersion, metadataId);
    }
    @RequestMapping("/updateMetadata")
    @ResponseBody
    public String updateMetadata(String stdVersion, String metadata) throws Exception {
        String url = "/api/v1.0/standard_center/metadata";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("metadata", metadata);
        String result = HttpClientUtil.doPut(host + url, params, username, password);
        return result;
    @ApiOperation(value = "修改数据元", response = StdMetaDataModel.class, produces = "application/json", notes = "修改数据元")
    public StdMetaDataModel updateMetadata(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "metadata", value = "数据元")
            @RequestParam(value = "metadata") String metadata) {
        return stdMetadataService.update(stdVersion, metadata);
    }
    @RequestMapping("/addMetadata")
    @ResponseBody
    public String addMetadata(String stdVersion, String metadata) throws Exception {
        String url = "/api/v1.0/standard_center/metadata";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("metadata", metadata);
        String result = HttpClientUtil.doPost(host + url, params, username, password);
        return result;
    @ApiOperation(value = "保存数据元", response = StdMetaDataModel.class, produces = "application/json", notes = "保存数据元")
    public StdMetaDataModel addMetadata(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "metadata", value = "数据元")
            @RequestParam(value = "metadata") String metadata) {
        return (StdMetaDataModel) stdMetadataService.add(stdVersion, metadata);
    }
    @RequestMapping(value="/getMetadataCodeValues")
    @ResponseBody
    public String getMetadataCodeValues(String stdVersion, Integer datasetId, String q, String initMetadataNm, String order, Integer rows) throws Exception {
    @ApiOperation(value = "获取数据元下拉框信息", response = String.class, produces = "application/json", notes = "获取机构数据元下拉框信息")
    public String getSelectList(
            @ApiParam(name = "stdVersion", value = "标准版本号")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "datasetId", value = "数据集ID")
            @RequestParam(value = "datasetId") Integer datasetId,
            @ApiParam(name = "q", value = "数据元名称或编码", required = false)
            @RequestParam(value = "q", required = false) String q,
            @ApiParam(name = "initMetadataNm", value = "初始化数据元名称或编码", required = false)
            @RequestParam(value = "initMetadataNm", required = false) String initMetadataNm,
            @ApiParam(name = "order", value = "Order param,Must be json.ascending:asc,descending:desc")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        Map<String,String> condition = new HashMap<String,String>();
        if (StringUtil.isEmpty(initMetadataNm)) {
            initMetadataNm = "";
@ -126,17 +140,8 @@ public class StdMetadataController extends BaseController {
            condition.put("name", q);
        }
        JSONObject jsonpObject = JSONObject.fromObject(condition);
        String url = "/api/v1.0/standard_center/metadatas/selectList";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion", stdVersion);
        params.put("datasetId", datasetId);
        params.put("condition", jsonpObject.toString());
        params.put("order", order);
        params.put("limit", rows);
        params.put("offset", 0);
        String resultStr = HttpClientUtil.doGet(host+url,params,username,password);
        List<Select2> detailModelList = jsonArrayToList(resultStr, Select2.class);
        List<StdMetaDataModel> metadataList = stdMetadataService.getMetadataList(StdMetaDataModel.class, stdVersion, datasetId, jsonpObject.toString(), order, rows, 0);
        List<Select2> detailModelList = stdMetadataService.getMetadataSelectList(metadataList);
        Result result = getResult(detailModelList, detailModelList.size(), 1, rows);
        return result.toJson();
    }
@ -148,24 +153,29 @@ public class StdMetadataController extends BaseController {
     * @throws Exception
     */
    @RequestMapping("/getDicts")
    @ResponseBody
    public DictionaryResult getDicts(String stdVersion) throws Exception {
        String url = "/api/v1.0/standard_center/dicts";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("stdVersion",stdVersion);
        String result = HttpClientUtil.doGet(host + url, params, username, password);
        JSONArray array = JSONArray.fromObject(result);
    @ApiOperation(value = "获取字典列表", response = DictionaryResult.class, produces = "application/json", notes = "获取字典列表")
    public DictionaryResult getList(
            @ApiParam(name = "stdVersion", value = "stdVersion")
            @RequestParam(value = "stdVersion") String stdVersion,
            @ApiParam(name = "condition", value = "Must be Json")
            @RequestParam(value = "condition", required = false) String condition,
            @ApiParam(name = "order", value = "Must be Json")
            @RequestParam(value = "order", required = false) String order,
            @ApiParam(name = "rows", value = "Limit the size of result set. Must be an integer")
            @RequestParam(value = "rows", required = false) Integer rows,
            @ApiParam(name = "page", value = "Start position of result set. Must be an integer")
            @RequestParam(value = "page", required = false) Integer page) {
        List<StdDictionaryModel> stdDictionaryModelList = stdDictService.getList(stdVersion, condition, order, rows, page - 1);
        DictionaryResult dictionaryResult = new DictionaryResult();
        List<DictItem> detailModelList = new ArrayList<DictItem>();
        DictItem item = new DictItem();
        item.setCode("");
        item.setValue("-无-");
        detailModelList.add(item);
        for(int i = 0; i < array.size(); i++){
            JSONObject jsonObject = array.getJSONObject(i);
        for (StdDictionaryModel stdDictionaryModel : stdDictionaryModelList) {
            DictItem items = new DictItem();
            Integer  id = (Integer) jsonObject.get("id");
            String name = (String)jsonObject.get("name");
            Integer  id = stdDictionaryModel.getId();
            String name = stdDictionaryModel.getName();
            items.setCode(id.toString());
            items.setValue(name);
            detailModelList.add(items);

+ 0 - 79
Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterDatasetModel.java

@ -1,79 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * Created by lingfeng on 2015/9/16.
 */
public class AdapterDatasetModel {
    private Integer id;
    private Integer schemeId;
    private Integer stdDatasetId;
    private String stdDatasetCode;
    private String stdDatasetName;
    private Integer adapterDatasetId;
    private String adapterDatasetCode;
    private String adapterDatasetName;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getSchemeId() {
        return schemeId;
    }
    public void setSchemeId(Integer schemeId) {
        this.schemeId = schemeId;
    }
    public Integer getStdDatasetId() {
        return stdDatasetId;
    }
    public void setStdDatasetId(Integer stdDatasetId) {
        this.stdDatasetId = stdDatasetId;
    }
    public String getStdDatasetCode() {
        return stdDatasetCode;
    }
    public void setStdDatasetCode(String stdDatasetCode) {
        this.stdDatasetCode = stdDatasetCode;
    }
    public String getStdDatasetName() {
        return stdDatasetName;
    }
    public void setStdDatasetName(String stdDatasetName) {
        this.stdDatasetName = stdDatasetName;
    }
    public Integer getAdapterDatasetId() {
        return adapterDatasetId;
    }
    public void setAdapterDatasetId(Integer adapterDatasetId) {
        this.adapterDatasetId = adapterDatasetId;
    }
    public String getAdapterDatasetCode() {
        return adapterDatasetCode;
    }
    public void setAdapterDatasetCode(String adapterDatasetCode) {
        this.adapterDatasetCode = adapterDatasetCode;
    }
    public String getAdapterDatasetName() {
        return adapterDatasetName;
    }
    public void setAdapterDatasetName(String adapterDatasetName) {
        this.adapterDatasetName = adapterDatasetName;
    }
}

+ 0 - 115
Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterDictEntryResultDetailModel.java

@ -1,115 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * Created by lingfeng on 2015/9/16.
 */
public class AdapterDictEntryResultDetailModel {
    private Integer id;
    private Integer schemeId;
    private Integer stdDictId;
    private Integer stdEntryId;
    private String stdEntryCode;
    private String stdEntryValue;
    private Integer adapterDictId;
    private Integer adapterEntryId;
    private String adapterEntryCode;
    private String adapterEntryValue;
    private String adapterDictCode;
    private String adapterDictName;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getSchemeId() {
        return schemeId;
    }
    public void setSchemeId(Integer schemeId) {
        this.schemeId = schemeId;
    }
    public Integer getStdDictId() {
        return stdDictId;
    }
    public void setStdDictId(Integer stdDictId) {
        this.stdDictId = stdDictId;
    }
    public Integer getStdEntryId() {
        return stdEntryId;
    }
    public void setStdEntryId(Integer stdEntryId) {
        this.stdEntryId = stdEntryId;
    }
    public String getStdEntryCode() {
        return stdEntryCode;
    }
    public void setStdEntryCode(String stdEntryCode) {
        this.stdEntryCode = stdEntryCode;
    }
    public String getStdEntryValue() {
        return stdEntryValue;
    }
    public void setStdEntryValue(String stdEntryValue) {
        this.stdEntryValue = stdEntryValue;
    }
    public Integer getAdapterDictId() {
        return adapterDictId;
    }
    public void setAdapterDictId(Integer adapterDictId) {
        this.adapterDictId = adapterDictId;
    }
    public Integer getAdapterEntryId() {
        return adapterEntryId;
    }
    public void setAdapterEntryId(Integer adapterEntryId) {
        this.adapterEntryId = adapterEntryId;
    }
    public String getAdapterEntryCode() {
        return adapterEntryCode;
    }
    public void setAdapterEntryCode(String adapterEntryCode) {
        this.adapterEntryCode = adapterEntryCode;
    }
    public String getAdapterEntryValue() {
        return adapterEntryValue;
    }
    public void setAdapterEntryValue(String adapterEntryValue) {
        this.adapterEntryValue = adapterEntryValue;
    }
    public String getAdapterDictCode() {
        return adapterDictCode;
    }
    public void setAdapterDictCode(String adapterDictCode) {
        this.adapterDictCode = adapterDictCode;
    }
    public String getAdapterDictName() {
        return adapterDictName;
    }
    public void setAdapterDictName(String adapterDictName) {
        this.adapterDictName = adapterDictName;
    }
}

+ 0 - 79
Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterDictModel.java

@ -1,79 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * Created by lingfeng on 2015/9/16.
 */
public class AdapterDictModel {
    private Integer id;
    private Integer schemeId;
    private Integer stdDictId;
    private String stdDictCode;
    private String stdDictName;
    private Integer adapterDictId;
    private String adapterDictCode;
    private String adapterDictName;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getSchemeId() {
        return schemeId;
    }
    public void setSchemeId(Integer schemeId) {
        this.schemeId = schemeId;
    }
    public Integer getStdDictId() {
        return stdDictId;
    }
    public void setStdDictId(Integer stdDictId) {
        this.stdDictId = stdDictId;
    }
    public String getStdDictCode() {
        return stdDictCode;
    }
    public void setStdDictCode(String stdDictCode) {
        this.stdDictCode = stdDictCode;
    }
    public String getStdDictName() {
        return stdDictName;
    }
    public void setStdDictName(String stdDictName) {
        this.stdDictName = stdDictName;
    }
    public Integer getAdapterDictId() {
        return adapterDictId;
    }
    public void setAdapterDictId(Integer adapterDictId) {
        this.adapterDictId = adapterDictId;
    }
    public String getAdapterDictCode() {
        return adapterDictCode;
    }
    public void setAdapterDictCode(String adapterDictCode) {
        this.adapterDictCode = adapterDictCode;
    }
    public String getAdapterDictName() {
        return adapterDictName;
    }
    public void setAdapterDictName(String adapterDictName) {
        this.adapterDictName = adapterDictName;
    }
}

+ 0 - 97
Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterDictentryModel.java

@ -1,97 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * Created by lingfeng on 2015/9/16.
 */
public class AdapterDictentryModel {
    private Integer id;
    private Integer schemeId;
    private Integer stdDictId;
    private Integer stdEntryId;
    private String stdEntryCode;
    private String stdEntryValue;
    private Integer adapterDictId;
    private Integer adapterEntryId;
    private String adapterEntryCode;
    private String adapterEntryValue;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getSchemeId() {
        return schemeId;
    }
    public void setSchemeId(Integer schemeId) {
        this.schemeId = schemeId;
    }
    public Integer getStdDictId() {
        return stdDictId;
    }
    public void setStdDictId(Integer stdDictId) {
        this.stdDictId = stdDictId;
    }
    public Integer getStdEntryId() {
        return stdEntryId;
    }
    public void setStdEntryId(Integer stdEntryId) {
        this.stdEntryId = stdEntryId;
    }
    public String getStdEntryCode() {
        return stdEntryCode;
    }
    public void setStdEntryCode(String stdEntryCode) {
        this.stdEntryCode = stdEntryCode;
    }
    public String getStdEntryValue() {
        return stdEntryValue;
    }
    public void setStdEntryValue(String stdEntryValue) {
        this.stdEntryValue = stdEntryValue;
    }
    public Integer getAdapterDictId() {
        return adapterDictId;
    }
    public void setAdapterDictId(Integer adapterDictId) {
        this.adapterDictId = adapterDictId;
    }
    public Integer getAdapterEntryId() {
        return adapterEntryId;
    }
    public void setAdapterEntryId(Integer adapterEntryId) {
        this.adapterEntryId = adapterEntryId;
    }
    public String getAdapterEntryCode() {
        return adapterEntryCode;
    }
    public void setAdapterEntryCode(String adapterEntryCode) {
        this.adapterEntryCode = adapterEntryCode;
    }
    public String getAdapterEntryValue() {
        return adapterEntryValue;
    }
    public void setAdapterEntryValue(String adapterEntryValue) {
        this.adapterEntryValue = adapterEntryValue;
    }
}

+ 0 - 124
Hos-resource/src/main/java/com/yihu/ehr/standard/model/AdapterMetadataModel.java

@ -1,124 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * Created by lingfeng on 2015/9/16.
 */
public class AdapterMetadataModel {
    private Integer id;
    private Integer schemeId;
    private Integer stdDatasetId;
    private Integer stdMetadataId;
    private String stdMetadataCode;
    private String stdMetadataName;
    private Integer stdDictId;
    private Integer adapterDatasetId;
    private Integer adapterMetadataId;
    private String adapterMetadataCode;
    private String adapterMetadataName;
    private Integer adapterDataType;
    private Integer adapterDictId;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getSchemeId() {
        return schemeId;
    }
    public void setSchemeId(Integer schemeId) {
        this.schemeId = schemeId;
    }
    public Integer getStdDatasetId() {
        return stdDatasetId;
    }
    public void setStdDatasetId(Integer stdDatasetId) {
        this.stdDatasetId = stdDatasetId;
    }
    public Integer getStdMetadataId() {
        return stdMetadataId;
    }
    public void setStdMetadataId(Integer stdMetadataId) {
        this.stdMetadataId = stdMetadataId;
    }
    public String getStdMetadataCode() {
        return stdMetadataCode;
    }
    public void setStdMetadataCode(String stdMetadataCode) {
        this.stdMetadataCode = stdMetadataCode;
    }
    public String getStdMetadataName() {
        return stdMetadataName;
    }
    public void setStdMetadataName(String stdMetadataName) {
        this.stdMetadataName = stdMetadataName;
    }
    public Integer getStdDictId() {
        return stdDictId;
    }
    public void setStdDictId(Integer stdDictId) {
        this.stdDictId = stdDictId;
    }
    public Integer getAdapterDatasetId() {
        return adapterDatasetId;
    }
    public void setAdapterDatasetId(Integer adapterDatasetId) {
        this.adapterDatasetId = adapterDatasetId;
    }
    public Integer getAdapterMetadataId() {
        return adapterMetadataId;
    }
    public void setAdapterMetadataId(Integer adapterMetadataId) {
        this.adapterMetadataId = adapterMetadataId;
    }
    public String getAdapterMetadataCode() {
        return adapterMetadataCode;
    }
    public void setAdapterMetadataCode(String adapterMetadataCode) {
        this.adapterMetadataCode = adapterMetadataCode;
    }
    public String getAdapterMetadataName() {
        return adapterMetadataName;
    }
    public void setAdapterMetadataName(String adapterMetadataName) {
        this.adapterMetadataName = adapterMetadataName;
    }
    public Integer getAdapterDataType() {
        return adapterDataType;
    }
    public void setAdapterDataType(Integer adapterDataType) {
        this.adapterDataType = adapterDataType;
    }
    public Integer getAdapterDictId() {
        return adapterDictId;
    }
    public void setAdapterDictId(Integer adapterDictId) {
        this.adapterDictId = adapterDictId;
    }
}

+ 0 - 142
Hos-resource/src/main/java/com/yihu/ehr/standard/model/ApiMetadataResultDetailModel.java

@ -1,142 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * Created by lingfeng on 2015/9/16.
 */
public class ApiMetadataResultDetailModel {
    private Integer id;
    private Integer schemeId;
    private Integer stdDatasetId;
    private Integer stdMetadataId;
    private String stdMetadataCode;
    private String stdMetadataName;
    private Integer stdDictId;
    private Integer adapterDatasetId;
    private Integer adapterMetadataId;
    private String adapterMetadataCode;
    private String adapterMetadataName;
    private Integer adapterDataType;
    private String adapterDatasetCode;
    private String adapterDatasetName;
    private Integer adapterDictId;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getSchemeId() {
        return schemeId;
    }
    public void setSchemeId(Integer schemeId) {
        this.schemeId = schemeId;
    }
    public Integer getStdDatasetId() {
        return stdDatasetId;
    }
    public void setStdDatasetId(Integer stdDatasetId) {
        this.stdDatasetId = stdDatasetId;
    }
    public Integer getStdMetadataId() {
        return stdMetadataId;
    }
    public void setStdMetadataId(Integer stdMetadataId) {
        this.stdMetadataId = stdMetadataId;
    }
    public String getStdMetadataCode() {
        return stdMetadataCode;
    }
    public void setStdMetadataCode(String stdMetadataCode) {
        this.stdMetadataCode = stdMetadataCode;
    }
    public String getStdMetadataName() {
        return stdMetadataName;
    }
    public void setStdMetadataName(String stdMetadataName) {
        this.stdMetadataName = stdMetadataName;
    }
    public Integer getStdDictId() {
        return stdDictId;
    }
    public void setStdDictId(Integer stdDictId) {
        this.stdDictId = stdDictId;
    }
    public Integer getAdapterDatasetId() {
        return adapterDatasetId;
    }
    public void setAdapterDatasetId(Integer adapterDatasetId) {
        this.adapterDatasetId = adapterDatasetId;
    }
    public Integer getAdapterMetadataId() {
        return adapterMetadataId;
    }
    public void setAdapterMetadataId(Integer adapterMetadataId) {
        this.adapterMetadataId = adapterMetadataId;
    }
    public String getAdapterMetadataCode() {
        return adapterMetadataCode;
    }
    public void setAdapterMetadataCode(String adapterMetadataCode) {
        this.adapterMetadataCode = adapterMetadataCode;
    }
    public String getAdapterMetadataName() {
        return adapterMetadataName;
    }
    public void setAdapterMetadataName(String adapterMetadataName) {
        this.adapterMetadataName = adapterMetadataName;
    }
    public Integer getAdapterDataType() {
        return adapterDataType;
    }
    public void setAdapterDataType(Integer adapterDataType) {
        this.adapterDataType = adapterDataType;
    }
    public Integer getAdapterDictId() {
        return adapterDictId;
    }
    public void setAdapterDictId(Integer adapterDictId) {
        this.adapterDictId = adapterDictId;
    }
    public String getAdapterDatasetCode() {
        return adapterDatasetCode;
    }
    public void setAdapterDatasetCode(String adapterDatasetCode) {
        this.adapterDatasetCode = adapterDatasetCode;
    }
    public String getAdapterDatasetName() {
        return adapterDatasetName;
    }
    public void setAdapterDatasetName(String adapterDatasetName) {
        this.adapterDatasetName = adapterDatasetName;
    }
}

+ 0 - 109
Hos-resource/src/main/java/com/yihu/ehr/standard/model/StandardModel.java

@ -1,109 +0,0 @@
package com.yihu.ehr.standard.model;
import java.io.Serializable;
/**
 * 标准基本信息
 *
 * @created Airhead 2015/12/23.
 */
public class StandardModel implements Serializable {
    private Integer id;
    private String name;
    private String code;
    private String publisher;
    private String publisherOrgCode;
    private String summary;
    private String refStandard;
    private String refStandardVersion;
    private Integer versionStatus;
    public StandardModel(){
    }
    public StandardModel(StandardModel standardModel){
        this.id = standardModel.id;
        this.name = standardModel.name;
        this.code = standardModel.code;
        this.publisher = standardModel.publisher;
        this.publisherOrgCode = standardModel.publisherOrgCode;
        this.summary = standardModel.summary;
        this.refStandard = standardModel.refStandard;
        this.refStandardVersion = standardModel.refStandardVersion;
        this.versionStatus = standardModel.versionStatus;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getPublisher() {
        return publisher;
    }
    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }
    public String getPublisherOrgCode() {
        return publisherOrgCode;
    }
    public void setPublisherOrgCode(String publisherOrgCode) {
        this.publisherOrgCode = publisherOrgCode;
    }
    public String getSummary() {
        return summary;
    }
    public void setSummary(String summary) {
        this.summary = summary;
    }
    public String getRefStandard() {
        return refStandard;
    }
    public void setRefStandard(String refStandard) {
        this.refStandard = refStandard;
    }
    public String getRefStandardVersion() {
        return refStandardVersion;
    }
    public void setRefStandardVersion(String refStandardVersion) {
        this.refStandardVersion = refStandardVersion;
    }
    public Integer getVersionStatus() {
        return versionStatus;
    }
    public void setVersionStatus(Integer versionStatus) {
        this.versionStatus = versionStatus;
    }
}

+ 0 - 78
Hos-resource/src/main/java/com/yihu/ehr/standard/model/StandardResultDetailModel.java

@ -1,78 +0,0 @@
package com.yihu.ehr.standard.model;
import java.io.Serializable;
public class StandardResultDetailModel implements Serializable {
    String id;
    String pid;
    String name;
    String code;
    Integer status;
    String publisher;
    Integer type;
    String date;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getPid() {
        return pid;
    }
    public void setPid(String pid) {
        this.pid = pid;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPublisher() {
        return publisher;
    }
    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
}

+ 0 - 81
Hos-resource/src/main/java/com/yihu/ehr/standard/model/StdDataSetModel.java

@ -1,81 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * Created by wq on 2015/9/16.
 */
public class StdDataSetModel {
    private Integer id;
    private Integer standardId;
    private String code;
    private String name;
    private String language;
    private Integer catalog;
    private String summary;
    private String classModel;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getstandardId() {
        return standardId;
    }
    public void setstandardId(Integer standardId) {
        this.standardId = standardId;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getLanguage() {
        return language;
    }
    public void setLanguage(String language) {
        this.language = language;
    }
    public Integer getCatalog() {
        return catalog;
    }
    public void setCatalog(Integer catalog) {
        this.catalog = catalog;
    }
    public String getSummary() {
        return summary;
    }
    public void setSummary(String summary) {
        this.summary = summary;
    }
    public String getClassModel() {
        return classModel;
    }
    public void setClassModel(String classModel) {
        this.classModel = classModel;
    }
}

+ 0 - 61
Hos-resource/src/main/java/com/yihu/ehr/standard/model/StdDictionaryEntryModel.java

@ -1,61 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * @created Airhead 2015/12/23.
 */
public class StdDictionaryEntryModel {
    private Integer id;
    private Integer standardId;
    private Integer dictId;
    private String code;
    private String value;
    private String description;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getstandardId() {
        return standardId;
    }
    public void setstandardId(Integer standardId) {
        this.standardId = standardId;
    }
    public Integer getdictId() {
        return dictId;
    }
    public void setdictId(Integer dictId) {
        this.dictId = dictId;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 0 - 72
Hos-resource/src/main/java/com/yihu/ehr/standard/model/StdDictionaryModel.java

@ -1,72 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * 标准数据字典模型
 *
 * @created Airhead 2015/12/23.
 */
public class StdDictionaryModel {
    private Integer id;
    private Integer standardId;
    private String code;
    private String name;
    private String define;
    private String description;
    private Integer parentId;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getstandardId() {
        return standardId;
    }
    public void setstandardId(Integer standardId) {
        this.standardId = standardId;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDefine() {
        return define;
    }
    public void setDefine(String define) {
        this.define = define;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Integer getParentId() {
        return parentId;
    }
    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }
}

+ 0 - 144
Hos-resource/src/main/java/com/yihu/ehr/standard/model/StdMetaDataModel.java

@ -1,144 +0,0 @@
package com.yihu.ehr.standard.model;
/**
 * Created by wq on 2015/9/22.
 */
public class StdMetaDataModel {
    private Integer id;                    // 数据元ID
    private Integer stdandardID;           //标准ID
    private Integer datasetId;             //数据集ID
    private String code;           // 内部代码
    private String deCode;                 // 标准元编码
    private String name;                // 名称
    private String type;                // 数据元数据类型
    private String format;              // 表示格式
    private Integer dictId;                //字典ID
    private String definition;          // 标准元定义, 即说明
    private Integer nullable;           // 是否可为空
    private String columnLength;         // 数据长度
    private String columnType;          // 数据类型
    private String columnName;          // 字段名
    private Integer primaryKey;         // 是否为主键
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getStdandardID() {
        return stdandardID;
    }
    public void setStdandardID(Integer stdandardID) {
        this.stdandardID = stdandardID;
    }
    public Integer getdatasetId() {
        return datasetId;
    }
    public void setdatasetId(Integer datasetId) {
        this.datasetId = datasetId;
    }
    public String getDeCode() {
        return deCode;
    }
    public void setDeCode(String deCode) {
        this.deCode = deCode;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getFormat() {
        return format;
    }
    public void setFormat(String format) {
        this.format = format;
    }
    public Integer getdictId() {
        return dictId;
    }
    public void setdictId(Integer dictId) {
        this.dictId = dictId;
    }
    public String getDefinition() {
        return definition;
    }
    public void setDefinition(String definition) {
        this.definition = definition;
    }
    public Integer getNullable() {
        return nullable;
    }
    public void setNullable(Integer nullable) {
        this.nullable = nullable;
    }
    public String getColumnLength() {
        return columnLength;
    }
    public void setColumnLength(String columnLength) {
        this.columnLength = columnLength;
    }
    public String getColumnType() {
        return columnType;
    }
    public void setColumnType(String columnType) {
        this.columnType = columnType;
    }
    public String getColumnName() {
        return columnName;
    }
    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }
    public Integer getPrimaryKey() {
        return primaryKey;
    }
    public void setPrimaryKey(Integer primaryKey) {
        this.primaryKey = primaryKey;
    }
}

File diff suppressed because it is too large
+ 59 - 46
Hos-resource/src/main/java/com/yihu/ehr/std/service/StdService.java


+ 16 - 9
Hos-resource/src/main/java/com/yihu/ehr/std/service/intf/IStdService.java

@ -2,7 +2,14 @@ package com.yihu.ehr.std.service.intf;
import com.yihu.ehr.framework.model.DictionaryResult;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.model.adapter.AdapterDictentryModel;
import com.yihu.ehr.standard.model.adapter.resultModel.AdapterMetadataResultDetailModel;
import com.yihu.ehr.standard.model.adapter.resultModel.SchemeVersionResultDetailModel;
import com.yihu.ehr.standard.model.standard.StdDataSetModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
import java.util.List;
import java.util.Map;
/**
@ -19,35 +26,35 @@ public interface IStdService {
    /**
     * 获取适配方案列表
     */
    public String getSchemeVersion() throws Exception;
    public List<SchemeVersionResultDetailModel> getSchemeVersion() throws Exception;
    /**
     * 通过适配方案获取数据集列表
     */
    public String getDatasetByScheme(String schemeVersion) throws Exception;
    public List<AdapterDatasetModel> getDatasetByScheme(String schemeVersion) throws Exception;
    /**
     * 通过适配方案+应用数据集ID获取数据集列表
     */
    public String getDatasetByScheme(String schemeVersion,String adapterDatasetId) throws Exception;
    public List<AdapterDatasetModel> getDatasetByScheme(String schemeVersion,String adapterDatasetId) throws Exception;
    /**
     * 通过适配方案获取字段列表
     */
    public String getDatacolByScheme(String schemeVersion, String datasetId) throws Exception;
    public List<AdapterMetadataResultDetailModel> getDatacolByScheme(String schemeVersion, String datasetId) throws Exception;
    /**
     * 通过适配方案获取字典列表
     */
    public String getDictByScheme(String schemeVersion, String dictId) throws Exception;
    public List<AdapterDictentryModel> getDictByScheme(String schemeVersion, String dictId) throws Exception;
    /******************************** 标准版本 *****************************************************/
    /**
     * 通过标准版本获取数据集列表
     */
    public String getDatasetByVersion(String stdVersion) throws Exception;
    public List<StdDataSetModel> getDatasetByVersion(String stdVersion) throws Exception;
    public String metadatasAllVersionList(Map<String, Object> params) throws Exception;
    public List<StdMetaDataModel> metadatasAllVersionList(Map<String, Object> params) throws Exception;
    public String datasetsAllVersionList() throws Exception;
    public List<StdDataSetModel> datasetsAllVersionList() throws Exception;
}

+ 6 - 6
Hos-resource/src/main/resources/resource.properties

@ -1,13 +1,13 @@
hopurl=http://172.19.103.55:8080/WSGW/services/ServiceGateWay
hopurl=http://172.19.103.56:8080/WSGW/services/ServiceGateWay
org_code=41872607-9
username=user
password=standard
serverip=192.168.131.17
serverip=172.19.103.56
port=6020
####################http\u914D\u7F6E\u4FE1\u606F####################
#http.url=http://192.168.131.103:6020/api/v1.0/
#http.url=http://172.19.103.56:6020/api/v1.0/
#http.username=user
#http.password=standard
http.url=http://172.19.103.56:6020/api/v1.0/
http.username=user
http.password=standard
http.gateway=http://172.19.103.57:8890/gateway/transfer
http.gateway=http://172.19.103.56:8890/gateway/transfer

+ 8 - 3
Hos-resource/src/main/resources/spring/applicationContext.xml

@ -17,8 +17,7 @@
       >
    <!--业务Beans, 使用注解方式配置-->
    <context:component-scan base-package="com.yihu">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    <context:component-scan base-package="com.yihu.ehr">
    </context:component-scan>
    <!--====================返回为null的时候转“”==========================-->
    <mvc:annotation-driven>
@ -59,6 +58,12 @@
    <!--Hibernate 会话管理器配置-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="packagesToScan">
            <list>
                <!-- 可以加多个包 -->
                <value>com.yihu.ehr.standard.model</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
@ -80,7 +85,7 @@
    <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <tx:annotation-driven transaction-manager="txManager"/>
    <tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>
    <!--Redis 连接池配置-->
    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">

+ 0 - 0
Hos-resource/src/main/webapp/WEB-INF/ehr/jsp/datacollect/editorJob.jsp


Some files were not shown because too many files changed in this diff