├── .gitattributes ├── LICENSE ├── README.md ├── application ├── Dockerfile ├── openempi-3.1.0 │ ├── LICENSE │ ├── LICENSES │ ├── NOTICE │ ├── conf │ │ ├── AuditRepositoryConnections.xml │ │ ├── IheActors.xml │ │ ├── PdSupplierConnections.xml │ │ ├── PixConsumerConnections.xml │ │ ├── PixManagerConnections.xml │ │ ├── PixPdqClientDomains.xml │ │ ├── activemq-config.xml │ │ ├── applicationContext-dao.xml │ │ ├── applicationContext-ejb.xml │ │ ├── applicationContext-resources-report-generators.xml │ │ ├── applicationContext-resources.xml │ │ ├── applicationContext-service.xml │ │ ├── file-loader-map-blog-entry.xml │ │ ├── file-loader-map-entity-loadtest.xml │ │ ├── file-loader-map-entity-model.xml │ │ ├── file-loader-map-entity.xml │ │ ├── file-loader-map-openmrs.xml │ │ ├── file-loader-map-testing.xml │ │ ├── file-loader-map-ubedehe.xml │ │ ├── jdbc.properties │ │ ├── log4j.properties │ │ ├── mail.properties │ │ ├── mpi-config-basic-blocking-hp.xml │ │ ├── mpi-config-core-only.xml │ │ ├── mpi-config-exact-matching-only.xml │ │ ├── mpi-config-exact-matching.xml │ │ ├── mpi-config-probabilistic-matching.xml │ │ ├── mpi-config-single-best-record.xml │ │ ├── mpi-config.xml │ │ ├── nhin-adapter.properties │ │ ├── openempi-admin.xml │ │ ├── openempi-extension-contexts-basic-blocking-hp.properties │ │ ├── openempi-extension-contexts-core-only.properties │ │ ├── openempi-extension-contexts-probabilistic-matching.properties │ │ ├── openempi-extension-contexts-single-best-record.properties │ │ ├── openempi-extension-contexts-sorted-neighborhood-blocking-only.properties │ │ ├── openempi-extension-contexts-sorted-neighborhood-blocking.properties │ │ ├── openempi-extension-contexts-suffix-array-blocking.properties │ │ ├── openempi-extension-contexts.properties │ │ └── openempiCache.xml │ └── lib │ │ └── openempi-3.1.0.war ├── setenv.sh └── wait-for-it.sh ├── docker-compose.yml └── postgres ├── 01_db_creation.sh ├── 02_db_init.sh ├── Dockerfile └── scripts ├── 01_create_new_database_schema-3.0.0.sql ├── 02_create_person_entity_model_definition.sql ├── 03_create_person_reference_tables.sql └── 04_update_database_schema-3.1.0.sql /.gitattributes: -------------------------------------------------------------------------------- 1 | # Ensure all sh files always use LF 2 | *.sh text eol=lf 3 | 4 | # Store war files in GitHub LFS server 5 | *.war filter=lfs diff=lfs merge=lfs -text 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Alessandro Fael Garcia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker Environment for OpenEMPI 2 | 3 | Docker environment for [OpenEMPI] (http://www.openempi.org/), an open source implementation of an Enterprise Master Patient Index. 4 | 5 | ## How To Use 6 | 7 | * OpenEMPI can be used via their [administrative console] (http://www.openempi.org/confluence/display/openempi30/Administrative+Console) or their [RESTful API] (http://www.openempi.org/confluence/display/openempi30/File). 8 | * The Docker image contains no data upon startup. Sample data can be found in the csv files found in the [official software distribution] (http://www.openempi.org/confluence/display/openempi30/Installation+of+the+Distribution). 9 | * For more information please refer to the official [OpenEMPI documentation] (http://www.openempi.org/confluence/display/openempi30/Documentation). 10 | 11 | ## Setup 12 | 13 | 1. Install [Docker] (https://www.docker.com). 14 | 2. Clone the repository. 15 | 3. Open a terminal in the directory where you cloned the repo. 16 | 4. Run `docker-compose up`. 17 | 5. Once the startup process completes your terminal should display a message saying: 18 | * `INFO: Server startup in {time}`. 19 | 6. Find the ip of your Docker environment: 20 | * If you are using Docker toolbox this tends to be `192.168.99.100`. 21 | * If you are using a native Docker installation it will be `localhost`. 22 | 7. You can now visit `{docker-ip}:8080/openempi-admin` using your favorite browser or connect to the RESTful API via `{docker-ip}:8080/{rest-query}`. 23 | 24 | ## Data Storage and Persistence 25 | 26 | The postgres Docker container stores data internally at `/var/lib/postgresql/data`. By default, this volume is not mapped to any volume in the host OS. If you destroy the Docker container the data will only be persisted within a hidden volume partition; which will result in new containers not being able to access the database data. This is by design as local volume partitions are dependent on the host OS and thus specifing a particular volume can lead to undesired errors. To map the volume where data is to be persisted follow the [Docker volume instructions] (https://docs.docker.com/engine/tutorials/dockervolumes) and modify the Dockerfile and docker-compose.yml postgres service accordingly. 27 | 28 | ## Setup with EtherCIS 29 | 30 | Most applications will require the usage of both an EMPI and EHR server. This can be done by following these instructions: 31 | 32 | 1. Clone this repository and the [Docker EtherCIS repository] (https://github.com/alessfg/docker-ethercis) into the same directory. 33 | 2. Download the docker-compose gist available [here] (https://gist.github.com/alessfg/f9c4f330850858b9afaea33de5595774) into the directory root. 34 | 3. Run `docker-compose up`. 35 | 36 | ## Notes 37 | 38 | * If you encounter any issues please post in the official [OpenEMPI forums] (https://kenai.com/projects/openempi/forums). 39 | 40 | ## License 41 | 42 | * The OpenEMPI platform is licensed under the GNU Affero License. A copy of the license can be found in the [OpenEMPI subdirectory]. License information for the various open source libraries employed by OpenEMPI can also be found in the subdirectory. 43 | * All other code is licensed under the MIT License. 44 | -------------------------------------------------------------------------------- /application/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM tomcat:7 2 | 3 | MAINTAINER Alessandro Fael Garcia 4 | 5 | LABEL OpenEMPI-Version="3.1.0" \ 6 | Description="Docker image for the OpenEMPI application" 7 | 8 | # Copy OpenEMPI files into their corresponding directories 9 | COPY ./openempi-3.1.0/lib/openempi-3.1.0.war /opt/openempi-3.1.0/lib/openempi-3.1.0.war 10 | COPY ./openempi-3.1.0/conf /etc/opt/openempi-3.1.0/conf 11 | COPY ./openempi-3.1.0/conf/openempi-admin.xml /usr/local/tomcat/conf/Catalina/localhost/openempi-admin.xml 12 | COPY ./setenv.sh /usr/local/tomcat/bin/setenv.sh 13 | COPY ./wait-for-it.sh /opt/openempi-3.1.0/bin/wait-for-it.sh 14 | 15 | # Make startup script executable 16 | RUN chmod +x /opt/openempi-3.1.0/bin/wait-for-it.sh 17 | 18 | # Expose port 8080 outside of Docker 19 | EXPOSE 8080 20 | 21 | # Initialisation scripts 22 | # Wait until database is available 23 | # Then proceed to start Tomcat 24 | CMD /opt/openempi-3.1.0/bin/wait-for-it.sh postgres:5432 -t 60 && \ 25 | catalina.sh run 26 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/NOTICE: -------------------------------------------------------------------------------- 1 | OpenEMPI 2 | Copyright © 2002-2012 SYSNET International, Inc. [http://sysnetint.com] 3 | 4 | This product includes software ("Software") developed by SYSNET 5 | International Inc. 6 | 7 | The copyright in the bundled OpenEMPI software release (including the 8 | Software) is owned by SYSNET International, Inc.. The Software developed 9 | and owned by SYSNET International, Inc. is licensed under the GNU AFFERO 10 | GENERAL PUBLIC LICENSE Version 3 11 | (http://www.fsf.org/licensing/licenses/agpl-3.0.html) ("AGPL") to all 12 | third parties and that license, as required by the AGPL, is included 13 | in the LICENSE.txt file. 14 | 15 | However, if you have executed an End User Software License and Services 16 | Agreement or an OEM Software License and Support Services Agreement, or 17 | another commercial license agreement with SYSNET International or one of its 18 | affiliates (each, a "Commercial Agreement"), the terms of the license in 19 | such Commercial Agreement will supersede the AGPL and you may use the 20 | software solely pursuant to the terms of the relevant Commercial 21 | Agreement. 22 | 23 | 24 | Third party libraries 25 | --------------------- 26 | 27 | See the NOTICE and LICENSES files in the subdirectories for 28 | information on included third party software. 29 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/AuditRepositoryConnections.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | lswin10.dfw.ibm.com 32 | 33 | 515 34 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/IheActors.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | OpenEMPI PIX Manager 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | OpenEMPI PDQ Supplier 53 | 54 | 55 | 56 | 60 | 61 | 62 | 63 | 64 | 65 | PIX Manager V3 66 | 67 | 1.3.6.1.4.1.21367.13.10.360 68 | ISO 69 | 70 | 71 | 1.3.6.1.4.1.21367.13.50.5360 72 | ISO 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | Paient Demographics Supplier (PDQm) HL7 FHIR 85 | 86 | 1.3.6.1.4.1.21367.13.10.360 87 | ISO 88 | 89 | 90 | 1.3.6.1.4.1.21367.13.50.5360 91 | ISO 92 | 93 | 94 | 95 | 96 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | Paient Demographics Supplier V3 130 | 131 | 1.3.6.1.4.1.21367.13.10.360 132 | ISO 133 | 134 | 135 | 1.3.6.1.4.1.21367.13.50.5360 136 | ISO 137 | 138 | 139 | 140 | 141 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | Audit Record Repository 192 | 193 | 197 | 198 | 199 | 200 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/PdSupplierConnections.xml: -------------------------------------------------------------------------------- 1 | 23 | 24 | 25 | 26 | 27 | 28 | localhost 29 | 30 | 3700 31 | 32 | MESA_PD_SUPPLIER 33 | 34 | 35 | XYZ_HOSPITAL 36 | 37 | 38 | 41 | 42 | 43 | 44 | 45 | CPR 46 | 47 | 48 | 49 | 50 | 51 | HomeCare 52 | 53 | 54 | 55 | 56 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/PixConsumerConnections.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 28 | 29 | localhost 30 | 31 | 3600 32 | 33 | PAT_IDENTITY_X_REF_MGR_MISYS 34 | 35 | 36 | ALLSCRIPTS 37 | 38 | 39 | EHR_MISYS 40 | 41 | 42 | MISYS 43 | 44 | 45 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/PixManagerConnections.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 28 | 29 | localhost 30 | 31 | 3600 32 | 33 | MESA_XREF 34 | 35 | 36 | XYZ_HOSPITAL 37 | 38 | 39 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/PixPdqClientDomains.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | IHERED 31 | 1.3.6.1.4.1.21367.13.20.1000 32 | ISO 33 | 34 | 35 | IHEGREEN 36 | 1.3.6.1.4.1.21367.13.20.2000 37 | ISO 38 | 39 | 40 | IHEBLUE 41 | 1.3.6.1.4.1.21367.13.20.3000 42 | ISO 43 | 44 | 45 | LOCAL 46 | 1.3.6.1.4.1.21367.3000.1.6 47 | ISO 48 | 49 | 50 | HIMSS2005 51 | 1.3.6.1.4.1.21367.2005.1.1 52 | ISO 53 | 54 | 55 | XREF2005 56 | 1.3.6.1.4.1.21367.2005.1.2 57 | ISO 58 | 59 | 60 | NIST 61 | 1.3.6.1.4.1.21367.2005.3.7 62 | ISO 63 | 64 | 65 | NIST2010 66 | 2.16.840.1.113883.3.72.5.9.1 67 | ISO 68 | 69 | 70 | NIST2010-2 71 | 2.16.840.1.113883.3.72.5.9.2 72 | ISO 73 | 74 | 75 | NIST2010-3 76 | 2.16.840.1.113883.3.72.5.9.3 77 | ISO 78 | 79 | 80 | IHENA 81 | 1.3.6.1.4.1.21367.2010.1.2.300 82 | ISO 83 | 84 | 85 | IHELOCAL 86 | 1.3.6.1.4.1.21367.2010.1.2.310 87 | ISO 88 | 89 | 90 | EHR_Allscripts_Enterprise 91 | 1.3.6.1.4.1.21367.13.20.5110 92 | ISO 93 | 94 | 95 | EHR_Allscripts_MyWay 96 | 1.3.6.1.4.1.21367.13.20.5115 97 | ISO 98 | 99 | 100 | EHR_Allscripts_Professional 101 | 1.3.6.1.4.1.21367.13.20.5120 102 | ISO 103 | 104 | 105 | EHR_Allscripts_SCM 106 | 1.3.6.1.4.1.21367.13.20.5125 107 | ISO 108 | 109 | 110 | OTHER_CareEvolution 111 | 1.3.6.1.4.1.21367.13.20.5140 112 | ISO 113 | 114 | 115 | EHR_CPSI 116 | 1.3.6.1.4.1.21367.13.20.5145 117 | ISO 118 | 119 | 120 | PACS_Fuji 121 | 1.3.6.1.4.1.21367.13.20.5160 122 | ISO 123 | 124 | 125 | EHR_GMT 126 | 1.3.6.1.4.1.21367.13.20.5175 127 | ISO 128 | 129 | 130 | HeCI 131 | 1.3.6.1.4.1.21367.13.20.5185 132 | ISO 133 | 134 | 135 | PACS_INFINITT_1 136 | 1.3.6.1.4.1.21367.13.20.5200 137 | ISO 138 | 139 | 140 | ADT_iNTERFACEWARE_Iguana 141 | 1.3.6.1.4.1.21367.13.20.5205 142 | ISO 143 | 144 | 145 | MSG_ROUTER_Lawson 146 | 1.3.6.1.4.1.21367.13.20.5215 147 | ISO 148 | 149 | 150 | CONTENT_CREATOR_MEDecision_NCS 151 | 1.3.6.1.4.1.21367.13.20.5220 152 | ISO 153 | 154 | 155 | EHR_MIE 156 | 1.3.6.1.4.1.21367.13.20.5240 157 | ISO 158 | 159 | 160 | EHR_NexJ 161 | 1.3.6.1.4.1.21367.13.20.5260 162 | ISO 163 | 164 | 165 | EHR_NextGen 166 | 1.3.6.1.4.1.21367.13.20.5270 167 | ISO 168 | 169 | 170 | PHR_NMC 171 | 1.3.6.1.4.1.21367.13.20.5275 172 | ISO 173 | 174 | 175 | OTHER_OZ_EHDI 176 | 1.3.6.1.4.1.21367.13.20.5285 177 | ISO 178 | 179 | 180 | EHR_SAGE 181 | 1.3.6.1.4.1.21367.13.20.5300 182 | ISO 183 | 184 | 185 | EHR_SIEMENS_0 186 | 1.3.6.1.4.1.21367.13.20.5305 187 | ISO 188 | 189 | 190 | EHR_SuccessEHS 191 | 1.3.6.1.4.1.21367.13.20.5310 192 | ISO 193 | 194 | 195 | OTHER_DSV_Pathology 196 | 1.3.6.1.4.1.21367.13.20.5315 197 | ISO 198 | 199 | 200 | OTHER_DSV_Portal 201 | 1.3.6.1.4.1.21367.13.20.5320 202 | ISO 203 | 204 | 205 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/activemq-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 31 | 32 | 33 | 34 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/applicationContext-dao.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | hibernate.dialect=${hibernate.dialect} 35 | hibernate.query.substitutions=true 'Y', false 'N' 36 | hibernate.cache.use_second_level_cache=true 37 | hibernate.show_sql=false 38 | hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory 39 | hibernate.id.new_generator_mappings=true 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 83 | 84 | 85 | 86 | 87 | 90 | 91 | 92 | 93 | 94 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/applicationContext-ejb.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/applicationContext-resources-report-generators.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 27 | 28 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/applicationContext-resources.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | file:///${OPENEMPI_HOME}/conf/jdbc.properties 36 | classpath:jdbc.properties 37 | file:///${OPENEMPI_HOME}/conf/mail.properties 38 | classpath:mail.properties 39 | classpath:nhin-adapter.properties 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 300000 60 | 60000 61 | 300 62 | 30 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | false 75 | true 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/applicationContext-service.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 32 | 33 | 36 | 39 | 42 | 43 | 45 | 47 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 80 | 83 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 109 | class 110 | 111 | org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader 112 | 113 | 114 | 115 | 116 | 117 | 118 | 120 | 121 | 122 | 123 | 126 | 129 | 132 | 135 | 137 | 138 | 141 | 144 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 236 | 237 | 238 | 239 | 240 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 259 | 260 | 261 | 262 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 274 | 275 | 276 | 278 | 279 | 280 | 282 | 283 | 284 | 286 | 287 | 288 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 302 | 303 | 304 | 305 | 307 | 308 | 309 | 310 | 312 | 313 | 314 | 315 | 316 | 317 | 319 | 320 | 321 | 322 | 323 | 324 | 326 | 327 | 328 | 329 | 330 | 332 | 333 | 334 | 335 | 336 | 338 | 339 | 340 | 341 | 342 | 344 | 345 | 346 | 347 | 348 | 350 | 351 | 352 | 353 | 354 | 356 | 357 | 358 | 359 | 360 | 362 | 363 | 364 | 365 | 366 | 368 | 369 | 370 | 371 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 488 | 489 | 504 | 505 | 506 | 508 | 509 | 510 | 512 | 513 | 514 | 516 | 517 | 518 | 520 | 521 | 522 | 524 | 525 | 526 | 528 | 529 | 530 | 532 | 533 | 534 | 536 | 537 | 538 | 540 | 541 | 542 | 544 | 545 | 546 | 548 | 549 | 550 | 552 | 553 | 554 | 556 | 557 | 558 | 560 | 561 | 562 | 564 | 565 | 566 | 568 | 569 | 570 | 572 | 573 | 574 | 576 | 577 | 578 | 580 | 581 | 582 | 583 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 628 | 629 | 630 | 631 | 633 | 634 | 635 | 636 | 638 | 639 | 640 | 641 | 643 | 644 | 645 | 646 | 648 | 649 | 650 | 651 | 653 | 654 | 655 | 656 | 657 | 658 | 660 | 661 | 662 | 664 | 665 | 666 | 668 | 669 | 670 | 672 | 673 | 674 | 676 | 677 | 678 | 680 | 681 | 682 | 684 | 685 | 686 | 688 | 689 | 690 | 691 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/file-loader-map-blog-entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 32 | 33 | 37 | 1 38 | identifier 39 | 40 | 42 | 2 43 | givenName 44 | 45 | 48 | 3 49 | familyName 50 | 51 | 53 | 4 54 | 55 | 56 | 58 | 5 59 | address1 60 | 61 | 63 | 6 64 | address2 65 | 66 | 68 | 7 69 | city 70 | 71 | 73 | 8 74 | postalCode 75 | 76 | 78 | 9 79 | state 80 | 81 | 84 | 10 85 | dateOfBirth 86 | 87 | 89 | 11 90 | 91 | 92 | 94 | 12 95 | phoneNumber 96 | 97 | 101 | 13 102 | identifier 103 | 104 | 106 | 14 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/file-loader-map-entity-loadtest.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 32 | 33 | 40 | 1 41 | identifier 42 | 43 | 45 | 2 46 | 47 | 48 | 50 | 3 51 | gender 52 | 53 | 55 | 4 56 | 57 | 58 | 61 | 5 62 | dateOfBirth 63 | 64 | 66 | 6 67 | 68 | 69 | 71 | 7 72 | givenName 73 | 74 | 76 | 8 77 | familyName 78 | 79 | 81 | 9 82 | state 83 | 84 | 86 | 10 87 | city 88 | 89 | 91 | 11 92 | postalCode 93 | 94 | 96 | 12 97 | 98 | 99 | 101 | 13 102 | address 103 | 104 | 106 | 14 107 | 108 | 109 | 111 | 15 112 | 113 | 114 | 116 | 16 117 | 118 | 119 | 121 | 17 122 | 123 | 124 | 126 | 18 127 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/file-loader-map-entity-model.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 31 | 32 | 37 | 38 | 40 | 1 41 | identifier 42 | 43 | 45 | 2 46 | namespaceIdentifier 47 | 48 | 50 | 3 51 | universalIdentifier 52 | 53 | 55 | 4 56 | universalIdentifierTypeCode 57 | 58 | 59 | 60 | 65 | 66 | 68 | 1 69 | identifier 70 | 71 | 73 | 2 74 | namespaceIdentifier 75 | 76 | 78 | 3 79 | universalIdentifier 80 | 81 | 83 | 4 84 | universalIdentifierTypeCode 85 | 86 | 87 | 88 | 93 | 94 | 96 | 1 97 | identifier 98 | 99 | 101 | 2 102 | namespaceIdentifier 103 | 104 | 106 | 3 107 | universalIdentifier 108 | 109 | 111 | 4 112 | universalIdentifierTypeCode 113 | 114 | 115 | 116 | 121 | 122 | 124 | 1 125 | identifier 126 | 127 | 129 | 2 130 | namespaceIdentifier 131 | 132 | 134 | 3 135 | universalIdentifier 136 | 137 | 139 | 4 140 | universalIdentifierTypeCode 141 | 142 | 143 | 144 | 146 | 5 147 | familyName 148 | 149 | 151 | 6 152 | givenName 153 | 154 | 157 | 7 158 | dateOfBirth 159 | 160 | 162 | 8 163 | gender 164 | 165 | 167 | 9 168 | address1 169 | 170 | 172 | 10 173 | city 174 | 175 | 177 | 11 178 | state 179 | 180 | 182 | 12 183 | postalCode 184 | 185 | 187 | 13 188 | country 189 | 190 | 192 | 14 193 | race 194 | 195 | 196 | 197 | 198 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/file-loader-map-entity.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 31 | 32 | 34 | 1 35 | 36 | 37 | 39 | 2 40 | givenName 41 | 42 | 44 | 3 45 | familyName 46 | 47 | 49 | 4 50 | 51 | 52 | 54 | 5 55 | address 56 | 57 | 59 | 6 60 | city 61 | 62 | 64 | 7 65 | 66 | 67 | 69 | 8 70 | postalCode 71 | 72 | 74 | 9 75 | 76 | 77 | 80 | 10 81 | dateOfBirth 82 | 83 | 85 | 11 86 | 87 | 88 | 90 | 12 91 | 92 | 93 | 95 | 13 96 | 97 | 98 | 100 | 14 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/file-loader-map-openmrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 31 | 32 | 34 | 1 35 | 36 | 37 | 39 | 2 40 | familyName 41 | 42 | 44 | 3 45 | givenName 46 | 47 | 49 | 4 50 | 51 | 52 | 54 | 5 55 | gender 56 | 57 | 60 | 6 61 | dateOfBirth 62 | 63 | 65 | 7 66 | 67 | 68 | 70 | 8 71 | village 72 | 73 | 75 | 9 76 | cell 77 | 78 | 80 | 10 81 | sector 82 | 83 | 85 | 11 86 | district 87 | 88 | 90 | 12 91 | province 92 | 93 | 95 | 13 96 | country 97 | 98 | 100 | 14 101 | 102 | 103 | 105 | 15 106 | 107 | 108 | 110 | 16 111 | 112 | 113 | 115 | 17 116 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/file-loader-map-testing.xml: -------------------------------------------------------------------------------- 1 | 2 | 26 | 33 | 34 | 38 | 1 39 | identifier 40 | 41 | 44 | 2 45 | givenName 46 | 47 | 49 | 3 50 | familyName 51 | 52 | 54 | 4 55 | address1 56 | 57 | 59 | 5 60 | address2 61 | 62 | 64 | 6 65 | city 66 | 67 | 69 | 7 70 | postalCode 71 | 72 | 74 | 8 75 | state 76 | 77 | 80 | 9 81 | dateOfBirth 82 | 83 | 85 | 10 86 | 87 | 88 | 90 | 11 91 | phoneNumber 92 | 93 | 95 | 12 96 | phoneNumber 97 | 98 | 100 | 13 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/file-loader-map-ubedehe.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 31 | 32 | 34 | 1 35 | district 36 | 37 | 39 | 2 40 | districtId 41 | 42 | 44 | 3 45 | sector 46 | 47 | 49 | 4 50 | sectorId 51 | 52 | 54 | 5 55 | cell 56 | 57 | 59 | 6 60 | cellId 61 | 62 | 64 | 7 65 | village 66 | 67 | 69 | 8 70 | villageId 71 | 72 | 74 | 9 75 | 76 | 77 | 79 | 10 80 | familyName 81 | 82 | 84 | 11 85 | givenName 86 | 87 | 94 | 12 95 | identifier 96 | 97 | 100 | 13 101 | dateOfBirth 102 | 103 | 105 | 14 106 | gender 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/jdbc.properties: -------------------------------------------------------------------------------- 1 | e 2 | # Copyright (C) $(year) $(company) <$(email)> 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 13 | # implied. See the License for the specific language governing 14 | # permissions and limitations under the License. 15 | # 16 | # 17 | jdbc.driverClassName=org.postgresql.Driver 18 | jdbc.url=jdbc\:postgresql\://postgres:5432/openempi 19 | jdbc.username=openempi 20 | jdbc.password=openempi 21 | orientdb.username=openempi 22 | orientdb.password=openempi 23 | orientdb.serverUsername=admin 24 | orientdb.serverPassword=admin 25 | # StorageMode should be either plocal or remote 26 | #orientdb.storageMode=remote 27 | orientdb.storageMode=plocal 28 | orientdb.minPoolConnections=20 29 | orientdb.maxPoolConnections=300 30 | orientdb.server=localhost 31 | orientdb.port=2424 32 | 33 | hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect 34 | 35 | # Needed by Hibernate3 Maven Plugin defined in pom.xml 36 | hibernate.connection.username=${jdbc.username} 37 | hibernate.connection.password=${jdbc.password} 38 | hibernate.connection.url=${jdbc.url} 39 | hibernate.connection.driver_class=${jdbc.driverClassName} 40 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.rootCategory=info, R 2 | 3 | # File 4 | log4j.appender.R=org.apache.log4j.RollingFileAppender 5 | log4j.appender.R.File=var/openempi-3.1.0/openempi.log 6 | 7 | # Control the maximum log file size 8 | log4j.appender.R.MaxFileSize=20MB 9 | 10 | # Archive log files (one backup file here) 11 | log4j.appender.R.MaxBackupIndex=3 12 | 13 | log4j.appender.R.layout=org.apache.log4j.PatternLayout 14 | 15 | log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n 16 | 17 | log4j.logger.org.springframework=WARN 18 | log4j.logger.org.hibernate=WARN 19 | log4j.logger.org.apache.commons=WARN 20 | log4j.logger.org.dozer=WARN 21 | log4j.logger.org.openhie.openempi.matching.fellegisunter=info 22 | log4j.logger.org.openhie.openempi.matching=info 23 | log4j.logger.org.openhie.openempi.matching.exactmatching=info 24 | log4j.logger.org.openhie.openempi.service=info 25 | log4j.logger.org.openhie.openempi.entity.impl=warn 26 | log4j.logger.com.orientechnologies=error 27 | log4j.logger.org.openhie.openempi.jobqueue=info 28 | log4j.logger.org.openhie.openempi.blocking.basicblockinghp.dao=info 29 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/mail.properties: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # Copyright (C) 2009 SYSNET International, Inc. 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 14 | # implied. See the License for the specific language governing 15 | # permissions and limitations under the License. 16 | # 17 | # 18 | # 19 | # ==== 20 | # 21 | # Copyright (C) 2009 SYSNET International, Inc. 22 | # 23 | # Licensed under the Apache License, Version 2.0 (the "License"); 24 | # you may not use this file except in compliance with the License. 25 | # You may obtain a copy of the License at 26 | # 27 | # http://www.apache.org/licenses/LICENSE-2.0 28 | # 29 | # Unless required by applicable law or agreed to in writing, software 30 | # distributed under the License is distributed on an "AS IS" BASIS, 31 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 32 | # implied. See the License for the specific language governing 33 | # permissions and limitations under the License. 34 | # 35 | # ==== 36 | # 37 | # Copyright (C) 2009 SYSNET International, Inc. 38 | # 39 | # Licensed under the Apache License, Version 2.0 (the "License"); 40 | # you may not use this file except in compliance with the License. 41 | # You may obtain a copy of the License at 42 | # 43 | # http://www.apache.org/licenses/LICENSE-2.0 44 | # 45 | # Unless required by applicable law or agreed to in writing, software 46 | # distributed under the License is distributed on an "AS IS" BASIS, 47 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 48 | # implied. See the License for the specific language governing 49 | # permissions and limitations under the License. 50 | # 51 | # 52 | # 53 | # 54 | # Copyright (C) 2009 SYSNET International, Inc. 55 | # 56 | # Licensed under the Apache License, Version 2.0 (the "License"); 57 | # you may not use this file except in compliance with the License. 58 | # You may obtain a copy of the License at 59 | # 60 | # http://www.apache.org/licenses/LICENSE-2.0 61 | # 62 | # Unless required by applicable law or agreed to in writing, software 63 | # distributed under the License is distributed on an "AS IS" BASIS, 64 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 65 | # implied. See the License for the specific language governing 66 | # permissions and limitations under the License. 67 | # 68 | # 69 | # 70 | # 71 | # Copyright (C) $(year) $(company) <$(email)> 72 | # 73 | # Licensed under the Apache License, Version 2.0 (the "License"); 74 | # you may not use this file except in compliance with the License. 75 | # You may obtain a copy of the License at 76 | # 77 | # http://www.apache.org/licenses/LICENSE-2.0 78 | # 79 | # Unless required by applicable law or agreed to in writing, software 80 | # distributed under the License is distributed on an "AS IS" BASIS, 81 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 82 | # implied. See the License for the specific language governing 83 | # permissions and limitations under the License. 84 | # 85 | # 86 | # This properties file is used to configure mail settings in 87 | # /WEB-INF/applicationContext-service.xml. 88 | 89 | mail.default.from=SYSNET Support 90 | mail.debug=false 91 | mail.transport.protocol=smtp 92 | mail.host=localhost 93 | mail.username= 94 | mail.password= 95 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/mpi-config-basic-blocking-hp.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 35 | 36 | true 37 | 2.16.840.1.113883.4.357 38 | 2.16.840.1.113883.4.357 39 | hl7 40 | 41 | 42 | 43 | custom1 44 | familyName 45 | 46 | DoubleMetaphone 47 | 48 | 49 | 50 | custom2 51 | givenName 52 | 53 | DoubleMetaphone 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | custom1 63 | 64 | 65 | 66 | 67 | 68 | 69 | custom2 70 | 71 | 72 | 73 | 74 | 75 | 76 | fileRepository 77 | false 78 | 79 | 80 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/mpi-config-core-only.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 35 | 36 | true 37 | 2.16.840.1.113883.4.357 38 | 2.16.840.1.113883.4.357 39 | hl7 40 | 41 | 42 | 43 | custom1 44 | familyName 45 | 46 | DoubleMetaphone 47 | 48 | 49 | 50 | custom2 51 | givenName 52 | 53 | DoubleMetaphone 54 | 55 | 56 | 57 | 58 | fileRepository 59 | false 60 | 61 | 62 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/mpi-config-exact-matching-only.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 33 | 34 | false 35 | 2.16.840.1.113883.4.357 36 | 2.16.840.1.113883.4.357 37 | hl7 38 | 39 | 40 | 41 | custom1 42 | familyName 43 | 44 | DoubleMetaphone 45 | 46 | 47 | 48 | custom2 49 | givenName 50 | 51 | DoubleMetaphone 52 | 53 | 54 | 55 | 56 | 57 | 58 | givenName 59 | 60 | JaroWinkler 61 | 62 | 0.80 63 | 64 | 65 | custom1 66 | 67 | JaroWinkler 68 | 69 | 0.85 70 | 71 | 72 | dateOfBirth 73 | 74 | JaroWinkler 75 | 76 | 0.85 77 | 78 | 79 | 80 | 81 | fileRepository 82 | 83 | 84 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/mpi-config-exact-matching.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 35 | 36 | false 37 | 2.16.840.1.113883.4.357 38 | 2.16.840.1.113883.4.357 39 | hl7 40 | 41 | 42 | 43 | custom1 44 | familyName 45 | 46 | NysiisFunction 47 | 48 | 49 | 50 | custom2 51 | givenName 52 | 53 | NysiisFunction 54 | 55 | 56 | 57 | custom3 58 | dateOfBirth 59 | 60 | DateTransformationFunction 61 | 62 | 63 | dateFormat 64 | yyyy 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | familyName 76 | 77 | 78 | dateOfBirth 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | custom1 88 | 89 | JaroWinkler 90 | 91 | 0.86 92 | 93 | 94 | custom2 95 | 96 | JaroWinkler 97 | 98 | 0.86 99 | 100 | 101 | custom3 102 | 103 | Exact 104 | 105 | 106 | 107 | 108 | 109 | fileRepository 110 | 111 | 112 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/mpi-config-probabilistic-matching.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 35 | 36 | false 37 | 2.16.840.1.113883.4.357 38 | 2.16.840.1.113883.4.357 39 | hl7 40 | 41 | 42 | 43 | false 44 | 45 | 46 | givenName 47 | 48 | 49 | familyName 50 | 51 | 52 | middleName 53 | 54 | 55 | birthPlace 56 | 57 | 58 | city 59 | 60 | 61 | state 62 | 63 | 64 | address1 65 | 66 | 67 | address2 68 | 69 | 70 | phoneExt 71 | 72 | 73 | phoneAreaCode 74 | 75 | 76 | phoneCountryCode 77 | 78 | 79 | 80 | 81 | 82 | 83 | custom1 84 | familyName 85 | 86 | DoubleMetaphone 87 | 88 | 89 | 90 | custom2 91 | givenName 92 | 93 | DoubleMetaphone 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | givenName 103 | 104 | 105 | familyName 106 | 107 | 108 | dateOfBirth 109 | 110 | 111 | 112 | 113 | 114 | 115 | familyName 116 | 117 | 118 | dateOfBirth 119 | 120 | 121 | 122 | 123 | 124 | 125 | 0.2 126 | 0.2 127 | 128 | 129 | givenName 130 | 0.9 131 | 0.1 132 | 133 | JaroWinkler 134 | 135 | 0.85 136 | 137 | 138 | familyName 139 | 0.9 140 | 0.1 141 | 142 | Exact 143 | 144 | 145 | truncation-length 146 | 4 147 | 148 | 149 | 150 | 0.85 151 | 152 | 153 | /home/odysseas/projects/openempi-development-2.1.2/openempi/conf 154 | 155 | 156 | fileRepository 157 | 158 | 159 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/mpi-config-single-best-record.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 39 | 40 | true 41 | OpenEMPI 42 | 2.16.756.5.30.1.117.200.10.1 43 | 2.16.756.5.30.1.117.200.10.1 44 | ISO 45 | 46 | 56 | 57 | 58 | 59 | 60 | 61 | familyName 62 | 63 | 64 | 65 | 66 | 67 | 68 | givenName 69 | 70 | 71 | 72 | 73 | 100 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | familyName 82 | 83 | JaroWinkler 84 | 85 | 0.75 86 | 87 | 88 | givenName 89 | 90 | JaroWinkler 91 | 92 | 0.75 93 | 94 | 95 | 96 | 97 | 98 | 99 | singleBestRecord 100 | Simple Rule-based Single Best Record Implementation 101 | 102 | 103 | phone 104 | not-null 105 | 106 | 107 | address2 108 | not-null 109 | 110 | 111 | 112 | 113 | 3600 114 | fileRepository 115 | true 116 | /mnt/sysnet 117 | 118 | 119 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/mpi-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | true 22 | OpenEMPI 23 | 2.16.756.5.30.1.117.200.10.1 24 | 2.16.756.5.30.1.117.200.10.1 25 | ISO 26 | 27 | 41 | 42 | 50 | 51 | jobQueueProcessor 52 | jobQueueProcessor 53 | 30 54 | 300 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | familyName 63 | 64 | 65 | dateOfBirth 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | givenName 77 | 78 | JaroWinkler 79 | 80 | 0.89 81 | 82 | 83 | familyName 84 | 85 | Levenshtein 86 | 87 | 0.85 88 | 89 | 90 | city 91 | 92 | Levenshtein 93 | 94 | 0.85 95 | 96 | 97 | postalCode 98 | 99 | Levenshtein 100 | 101 | 0.85 102 | 103 | 104 | 105 | 106 | 107 | 108 | fileRepository 109 | /opt/orientdb 110 | 117 | 118 | 119 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/nhin-adapter.properties: -------------------------------------------------------------------------------- 1 | # If the following optional attributes are available in the query, should they be 2 | # considered as query criteria? 3 | # 4 | allow-address-query-attribute=true 5 | allow-telecom-query-attribute=true 6 | allow-social-security-number-query-attribute=true 7 | 8 | # For a matching patient, if the following attribute are available, should 9 | # they be returned back to the caller? 10 | # 11 | allow-address-response-attribute=true 12 | allow-telecom-response-attribute=true 13 | allow-social-security-number-response-attribute=true 14 | 15 | # If the assigning authority is specified here, then it overrides the value used 16 | # in the configuration of the OpenEMPI in the Global Identifier sections of the 17 | # mpi-config.xml file. 18 | # 19 | # assigning-authority-id=2.16.840.1.113883.4.357 20 | 21 | # Identifies the Home Community that this EMPI is associated with. It must match 22 | # the value specified in the gateway.properties file 23 | local-home-community-id=1.1 24 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-admin.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-extension-contexts-basic-blocking-hp.properties: -------------------------------------------------------------------------------- 1 | #openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 2 | openempi.extension.contexts=applicationContext-module-basic-blocking-hp.xml 3 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-extension-contexts-core-only.properties: -------------------------------------------------------------------------------- 1 | #openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 2 | openempi.extension.contexts= 3 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-extension-contexts-probabilistic-matching.properties: -------------------------------------------------------------------------------- 1 | #openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 2 | openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 3 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-extension-contexts-single-best-record.properties: -------------------------------------------------------------------------------- 1 | #openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 2 | openempi.extension.contexts=applicationContext-module-basic-blocking-hp.xml,applicationContext-module-file-loader-map.xml,applicationContext-module-exact-matching.xml,applicationContext-module-single-best-record.xml 3 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-extension-contexts-sorted-neighborhood-blocking-only.properties: -------------------------------------------------------------------------------- 1 | #openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 2 | openempi.extension.contexts=applicationContext-module-sorted-neighborhood-blocking.xml -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-extension-contexts-sorted-neighborhood-blocking.properties: -------------------------------------------------------------------------------- 1 | #openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 2 | openempi.extension.contexts=applicationContext-module-sorted-neighborhood-blocking.xml,applicationContext-module-exact-matching.xml 3 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-extension-contexts-suffix-array-blocking.properties: -------------------------------------------------------------------------------- 1 | #openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 2 | openempi.extension.contexts=applicationContext-module-suffix-array-blocking.xml, applicationContext-module-exact-matching.xml 3 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempi-extension-contexts.properties: -------------------------------------------------------------------------------- 1 | #openempi.extension.contexts=applicationContext-module-basic-blocking.xml,applicationContext-module-file-loader.xml,applicationContext-module-probabilistic-matching.xml 2 | #applicationContext-module-basic-blocking.xml 3 | applicationContext-module-basic-blocking-hp.xml 4 | applicationContext-module-file-loader-map.xml 5 | applicationContext-module-file-loader-hp.xml 6 | applicationContext-module-exact-matching.xml 7 | applicationContext-module-probabilistic-matching.xml 8 | applicationContext-module-shallow-matching.xml 9 | applicationContext-module-single-best-record.xml 10 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/conf/openempiCache.xml: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 32 | 36 | 39 | 40 | 41 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /application/openempi-3.1.0/lib/openempi-3.1.0.war: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e8dfaf366013ee32a9da8bfe967fcee5a7ea7f9fada2a68e61e7738beeb20edc 3 | size 112114432 4 | -------------------------------------------------------------------------------- /application/setenv.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Define environment variables required for Tomcat 3 | 4 | export OPENEMPI_HOME=/etc/opt/openempi-3.1.0 5 | export CATALINA_OPTS="-Xms128m -Xmx2048m -XX:MaxPermSize=512m \ 6 | -Dopenempi.home=$OPENEMPI_HOME \ 7 | -Djdbc.url=jdbc\:postgresql\://postgres:5432/openempi" 8 | -------------------------------------------------------------------------------- /application/wait-for-it.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Use this script to test if a given TCP host/port are available 3 | 4 | cmdname=$(basename $0) 5 | 6 | echoerr() { if [[ $QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } 7 | 8 | usage() 9 | { 10 | cat >&2 < /dev/tcp/$HOST/$PORT) >/dev/null 2>&1 36 | result=$? 37 | if [[ $result -eq 0 ]]; then 38 | end_ts=$(date +%s) 39 | echoerr "$cmdname: $HOST:$PORT is available after $((end_ts - start_ts)) seconds" 40 | break 41 | fi 42 | sleep 1 43 | done 44 | return $result 45 | } 46 | 47 | wait_for_wrapper() 48 | { 49 | if [[ $QUIET -eq 1 ]]; then 50 | timeout $TIMEOUT $0 --quiet --child --host=$HOST --port=$PORT --timeout=$TIMEOUT & 51 | else 52 | timeout $TIMEOUT $0 --child --host=$HOST --port=$PORT --timeout=$TIMEOUT & 53 | fi 54 | PID=$! 55 | trap "kill -INT -$PID" INT 56 | wait $PID 57 | RESULT=$? 58 | if [[ $RESULT -ne 0 ]]; then 59 | echoerr "$cmdname: timeout occurred after waiting $TIMEOUT seconds for $HOST:$PORT" 60 | fi 61 | return $RESULT 62 | } 63 | 64 | #Process arguments 65 | while [[ $# -gt 0 ]] 66 | do 67 | case "$1" in 68 | *:* ) 69 | hostport=(${1//:/ }) 70 | HOST=${hostport[0]} 71 | PORT=${hostport[1]} 72 | shift 1 73 | ;; 74 | --child) 75 | CHILD=1 76 | shift 1 77 | ;; 78 | -q | --quiet) 79 | QUIET=1 80 | shift 1 81 | ;; 82 | -s | --strict) 83 | STRICT=1 84 | shift 1 85 | ;; 86 | -h) 87 | HOST="$2" 88 | if [[ $HOST == "" ]]; then break; fi 89 | shift 2 90 | ;; 91 | --host=*) 92 | HOST="${1#*=}" 93 | shift 1 94 | ;; 95 | -p) 96 | PORT="$2" 97 | if [[ $PORT == "" ]]; then break; fi 98 | shift 2 99 | ;; 100 | --port=*) 101 | PORT="${1#*=}" 102 | shift 1 103 | ;; 104 | -t) 105 | TIMEOUT="$2" 106 | if [[ $TIMEOUT == "" ]]; then break; fi 107 | shift 2 108 | ;; 109 | --timeout=*) 110 | TIMEOUT="${1#*=}" 111 | shift 1 112 | ;; 113 | --) 114 | shift 115 | CLI="$@" 116 | break 117 | ;; 118 | --help) 119 | usage 120 | ;; 121 | *) 122 | echoerr "Unknown argument: $1" 123 | usage 124 | ;; 125 | esac 126 | done 127 | 128 | if [[ "$HOST" == "" || "$PORT" == "" ]]; then 129 | echoerr "Error: you need to provide a host and port to test." 130 | usage 131 | fi 132 | 133 | TIMEOUT=${TIMEOUT:-15} 134 | STRICT=${STRICT:-0} 135 | CHILD=${CHILD:-0} 136 | QUIET=${QUIET:-0} 137 | 138 | if [[ $CHILD -gt 0 ]]; then 139 | wait_for 140 | RESULT=$? 141 | exit $RESULT 142 | else 143 | if [[ $TIMEOUT -gt 0 ]]; then 144 | wait_for_wrapper 145 | RESULT=$? 146 | else 147 | wait_for 148 | RESULT=$? 149 | fi 150 | fi 151 | 152 | if [[ $CLI != "" ]]; then 153 | if [[ $RESULT -ne 0 && $STRICT -eq 1 ]]; then 154 | echoerr "$cmdname: strict mode, refusing to execute subprocess" 155 | exit $RESULT 156 | fi 157 | exec $CLI 158 | else 159 | exit $RESULT 160 | fi 161 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "2" 2 | 3 | services: 4 | 5 | app: 6 | # Build application using Dockerfile contained in application subfolder 7 | build: ./application 8 | # Name image 9 | image: openempi-app 10 | # Map application container port 8080 to docker port 8080 11 | ports: 12 | - "8080:8080" 13 | # Do not start application container until postgres container is started 14 | depends_on: 15 | - postgres 16 | 17 | postgres: 18 | # Build database using Dockerfile contained in postgres subfolder 19 | build: ./postgres 20 | # Name image 21 | image: openempi-db 22 | -------------------------------------------------------------------------------- /postgres/01_db_creation.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Create openempi role and database 3 | 4 | psql -U postgres <<-EOSQL 5 | CREATE ROLE openempi LOGIN PASSWORD 'openempi' SUPERUSER VALID UNTIL 'infinity'; 6 | CREATE DATABASE openempi WITH ENCODING='UTF8' OWNER=openempi CONNECTION LIMIT=-1; 7 | EOSQL 8 | -------------------------------------------------------------------------------- /postgres/02_db_init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Populate database schema with scripts 3 | 4 | psql -U openempi -d openempi <<-EOSQL 5 | \i ./scripts/01_create_new_database_schema-3.0.0.sql; 6 | \i ./scripts/02_create_person_entity_model_definition.sql; 7 | \i ./scripts/03_create_person_reference_tables.sql; 8 | \i ./scripts/04_update_database_schema-3.1.0.sql; 9 | EOSQL 10 | -------------------------------------------------------------------------------- /postgres/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM postgres:9.4 2 | 3 | MAINTAINER Alessandro Fael Garcia 4 | 5 | LABEL OpenEMPI-Version="3.1.0" \ 6 | Description="Docker image for the openEMPI database" 7 | 8 | # Copy files required to initialise Postgres with the OpenEMPI database schema 9 | COPY ./scripts ./scripts 10 | COPY ./01_db_creation.sh ./docker-entrypoint-initdb.d/01_db_creation.sh 11 | COPY ./02_db_init.sh ./docker-entrypoint-initdb.d/02_db_init.sh 12 | -------------------------------------------------------------------------------- /postgres/scripts/02_create_person_entity_model_definition.sql: -------------------------------------------------------------------------------- 1 | SET SESSION AUTHORIZATION 'openempi'; 2 | SET search_path = public, pg_catalog; 3 | 4 | INSERT INTO entity (entity_version_id,entity_id,version_id,name,description,display_name,synchronous_matching,date_created,created_by_id) VALUES ('2','1','1','person','person entity definition model','person','true','2013-10-29 10:38:18.038','-1'); 5 | 6 | INSERT INTO entity_attribute_group (entity_attribute_group_id,name,display_name,display_order,entity_version_id) VALUES ('1','contactInfo','Contact Info','2','2'); 7 | INSERT INTO entity_attribute_group (entity_attribute_group_id,name,display_name,display_order,entity_version_id) VALUES ('2','recordManagement','Record Management','5','2'); 8 | INSERT INTO entity_attribute_group (entity_attribute_group_id,name,display_name,display_order,entity_version_id) VALUES ('3','other','Other','6','2'); 9 | INSERT INTO entity_attribute_group (entity_attribute_group_id,name,display_name,display_order,entity_version_id) VALUES ('4','birth','Birth','3','2'); 10 | INSERT INTO entity_attribute_group (entity_attribute_group_id,name,display_name,display_order,entity_version_id) VALUES ('5','phone','Phone','4','2'); 11 | INSERT INTO entity_attribute_group (entity_attribute_group_id,name,display_name,display_order,entity_version_id) VALUES ('6','name','Name','1','2'); 12 | 13 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('50','nationality','nationality','Nationality','6','30','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 14 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('51','race','race','Race','6','29','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 15 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('52','city','city','City','6','11','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 16 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('53','mothersMaidenName','mothersMaidenName','Mothers Maiden Name','6','21','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 17 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('54','birthPlace','birthPlace','Birth Place','6','18','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 18 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('55','multipleBirthInd','multipleBirthInd','Multiple Birth Indicator','6','19','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 19 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('56','prefix','prefix','Prefix','6','7','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 20 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('57','ssn','ssn','Social Security Number','6','22','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 21 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('58','address2','address2','Address 2','6','10','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 22 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('59','address1','address1','Address 1','6','9','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 23 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('60','degree','degree','Degree','6','33','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 24 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('61','phoneExt','phoneExt','Phone Extension','6','26','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 25 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('62','deathTime','deathTime','Death Time','9','36','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 26 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('63','fatherName','fatherName','Father Name','6','6','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 27 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('64','phoneAreaCode','phoneAreaCode','Phone Area Code','6','24','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 28 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('65','deathInd','deathInd','Death Indicator','6','35','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 29 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('66','gender','gender','Gender','6','27','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 30 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('67','phoneNumber','phoneNumber','Phone Number','6','25','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 31 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('68','countryCode','countryCode','Country Code','6','15','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 32 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('69','state','state','State','6','12','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 33 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('70','postalCode','postalCode','Postal Code','6','13','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 34 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('71','motherName','motherName','Mother Name','6','5','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 35 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('72','phoneCountryCode','phoneCountryCode','Phone Country Code','6','23','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 36 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('73','familyName','familyName','Family Name','6','3','2013-10-29 10:38:18.038','-1','2','true','true','false','false'); 37 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('74','birthOrder','birthOrder','Birth Order','1','20','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 38 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('75','email','email','Email','6','16','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 39 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('76','suffix','suffix','Suffix','6','8','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 40 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('77','religion','religion','Religion','6','32','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 41 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('78','dateOfBirth','dateOfBirth','Date Of Birth','8','17','2013-10-29 10:38:18.038','-1','2','false','true','false','false'); 42 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('79','language','language','Language','6','31','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 43 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('80','familyName2','familyName2','Family Name 2','6','4','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 44 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('81','ethnicGroup','ethnicGroup','Ethnic Group','6','28','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 45 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('82','country','country','Country','6','14','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 46 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('83','givenName','givenName','Given Name','6','1','2013-10-29 10:38:18.038','-1','2','true','true','false','false'); 47 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('84','maritalStatusCode','maritalStatusCode','Marital Status Code','6','34','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 48 | INSERT INTO entity_attribute (entity_attribute_id,name,description,display_name,datatype_cd,display_order,date_created,created_by_id,entity_version_id,indexed,searchable,case_insensitive,is_custom) VALUES ('85','middleName','middleName','Middle Name','6','2','2013-10-29 10:38:18.038','-1','2','false','false','false','false'); 49 | 50 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('2','1','82'); 51 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('3','1','69'); 52 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('4','1','68'); 53 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('5','1','52'); 54 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('6','1','70'); 55 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('7','1','59'); 56 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('8','1','75'); 57 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('9','1','58'); 58 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('10','2','65'); 59 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('11','2','62'); 60 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('12','3','81'); 61 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('13','3','60'); 62 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('14','3','50'); 63 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('15','3','79'); 64 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('16','3','66'); 65 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('17','3','84'); 66 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('18','3','77'); 67 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('19','3','51'); 68 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('20','4','74'); 69 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('21','4','57'); 70 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('22','4','55'); 71 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('23','4','53'); 72 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('24','4','54'); 73 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('25','4','78'); 74 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('26','5','61'); 75 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('27','5','64'); 76 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('28','5','67'); 77 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('29','5','72'); 78 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('30','6','76'); 79 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('31','6','80'); 80 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('32','6','83'); 81 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('33','6','71'); 82 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('34','6','56'); 83 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('35','6','63'); 84 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('36','6','73'); 85 | INSERT INTO entity_attribute_group_attribute (entity_attribute_group_attribute_id,entity_attribute_group_id,entity_attribute_id) VALUES ('37','6','85'); 86 | 87 | INSERT INTO entity_attribute_validation (entity_attribute_validation_id,name,display_name,entity_attribute_id) VALUES ('1','regexpValidationRule','Regular Expression Validation Rule','75'); 88 | INSERT INTO entity_attribute_validation (entity_attribute_validation_id,name,display_name,entity_attribute_id) VALUES ('2','valueSetValidationRule','Value Set Validation Rule','66'); 89 | 90 | INSERT INTO entity_attribute_validation_param (entity_attribute_validation_param_id,name,value,entity_attribute_validation_id) VALUES ('2','regularExpression','\^([a-zA-Z0-9_.\\-+])+@(([a-zA-Z0-9\\-])+\\.)+[a-zA-Z0-9]{2,4}$','1'); 91 | INSERT INTO entity_attribute_validation_param (entity_attribute_validation_param_id,name,value,entity_attribute_validation_id) VALUES ('3','valueSet','M,F,O,U','2'); 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /postgres/scripts/04_update_database_schema-3.1.0.sql: -------------------------------------------------------------------------------- 1 | -- This script must be installed on an instance of OpenEMPI that is based on the 3.0.0 major release 2 | 3 | SET SESSION AUTHORIZATION 'openempi'; 4 | SET search_path = public, pg_catalog; 5 | 6 | -- New permissions 7 | INSERT INTO permission (permission_id, permission_name, permission_description) VALUES 8 | (23, 'DATA_PROFILE_GENERATE', 'Allows the user to generate a data profile through the user interface.'), 9 | (24, 'DATA_PROFILE_VIEW', 'Allows the user to view a data profile through the user interface.'), 10 | (25, 'ENTITY_CONFIGURE', 'Allows the user to configure the entities that are supported by the OpenEMPI instance.'), 11 | (26, 'JOB_QUEUE_VIEW', 'Allows the user to view and manage the queue of job entries.'); 12 | 13 | -- Make sure the default admin user has the new permissions 14 | INSERT INTO role_permission (role_id, permission_id) VALUES 15 | (-1, 23), (-1, 24), (-1, 25), (-1, 26); 16 | --------------------------------------------------------------------------------