annotate README @ 366:cd9521e04249 attach-custom-data

DatabaseBackendAdapterV4: added support for customData + revision when not already done
author Alain Mazy <am@osimis.io>
date Thu, 15 Sep 2022 18:12:34 +0200
parents 8f109cfbfc5d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 Database plugins for Orthanc
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 ============================
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4
21
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
5 General information
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 -------------------
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 This repository contains the source code of various database plugins
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 for Orthanc, the lightweight, RESTful DICOM server. These plugins
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 enable Orthanc to store its index and its storage area within
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 well-known relational databases systems (RDBMS).
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 Content
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 -------
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * ./Framework/ : code shared by all the plugins
21
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
18 * ./MySQL/ : index and storage plugins for MySQL and MariaDB
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 * ./PostgreSQL/ : index and storage plugins for PostgreSQL
337
8f109cfbfc5d updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
20 * ./Odbc/ : index and storage plugins for Odbc
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 * ./SQLite/ : index plugin for SQLite (for experimentation)
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 If you downloaded this project as a versioned release package
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 (.tar.gz) focused on one given RDBMS, you will only find the folders
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 that are related to this specific RDBMS. The full source code is
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 available at:
336
c0c12b3974b2 fix URLs to the old repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 21
diff changeset
27 https://hg.orthanc-server.com/orthanc-databases/
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29
21
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
30 Compilation and usage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
31 ---------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
32
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
33 The compilation and usage of the plugins is available in the Orthanc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
34 Book:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
35
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
36 * MySQL/MariaDB : http://book.orthanc-server.com/plugins/mysql.html
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
37 * PostgreSQL : http://book.orthanc-server.com/plugins/postgresql.html
337
8f109cfbfc5d updated README
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
38 * ODBC : http://book.orthanc-server.com/plugins/odbc.html
21
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
39
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
40
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 Older releases of PostgreSQL
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 ----------------------------
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 This repository supersedes the older "orthanc-postgresql" repository
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 that was only focused on PostgreSQL.
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46
21
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
47 Releases <= 2.1 of the PostgreSQL plugins can still be found in the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 0
diff changeset
48 following legacy repository:
336
c0c12b3974b2 fix URLs to the old repositories
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 21
diff changeset
49 https://hg.orthanc-server.com/orthanc-postgresql/
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51
366
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
52 Development
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
53 -----------
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
54
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
55 PostgreSQL
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
56 ==========
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
57
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
58 To quickly start a test PG server:
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
59
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
60 docker run -p 5432:5432 --rm --env POSTGRES_HOST_AUTH_METHOD=trust postgres:13.4
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
61
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
62 And use this Orthanc configuration:
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
63 "PostgreSQL": {
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
64 "EnableIndex": true,
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
65 "EnableStorage": false, // DICOM files are stored in the Orthanc container in /var/lib/orthanc/db/
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
66 "Host": "localhost", // the name of the PostgreSQL container
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
67 "Database": "postgres", // default database name in PostgreSQL container (no need to create it)
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
68 "Username": "postgres", // default user name in PostgreSQL container (no need to create it)
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
69 "Password": "postgres"
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
70 },
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
71
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
72 MySQL
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
73 =====
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
74
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
75 To quickly start a test MySQL server:
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
76
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
77 docker run -p 3306:3306 --rm --env MYSQL_PASSWORD=orthanc --env MYSQL_USER=orthanc --env MYSQL_DATABASE=orthanc --env MYSQL_ROOT_PASSWORD=pwd-root mysql:8.0 mysqld --default-authentication-plugin=mysql_native_password --log-bin-trust-function-creators=1
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
78
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
79 And use this Orthanc configuration:
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
80 "MySQL": {
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
81 "EnableIndex": true,
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
82 "EnableStorage": false,
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
83 "Host": "localhost",
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
84 "Database": "orthanc",
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
85 "Username": "orthanc",
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
86 "Password": "orthanc",
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
87 "UnixSocket": ""
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
88 },
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
89
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
90
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
91 ODBC (SQL Server)
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
92 =================
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
93
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
94 To quickly start a test MySQL server:
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
95
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
96 docker run -e "ACCEPT_EULA=Y" --rm --env "SA_PASSWORD=yourStrong-Password" --entrypoint=bash -it -p 1433:1433 mcr.microsoft.com/mssql/server:2019-latest
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
97
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
98 Then:
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
99 (sleep 15s && /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P yourStrong-Password -Q 'CREATE DATABASE orthanctest') & /opt/mssql/bin/sqlservr
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
100
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
101 And use this Orthanc configuration:
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
102 "Odbc" : {
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
103 "IndexConnectionString": "Driver={ODBC Driver 17 for SQL Server};Server=tcp:localhost,1433;Database=orthanctest;Uid=sa;Pwd=yourStrong-Password;Encrypt=yes;TrustServerCertificate=yes;Connection Timeout=30;",
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
104 "EnableIndex": true,
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
105 "EnableStorage": false
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
106 }
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
107
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
108
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
109 SQLite
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
110 ======
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
111
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
112 To quickly test the SQLite plugin, simply run orthanc and load the plugin (no configuration required).
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
113
cd9521e04249 DatabaseBackendAdapterV4: added support for customData + revision when not already done
Alain Mazy <am@osimis.io>
parents: 337
diff changeset
114
0
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 Licensing
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 ---------
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118 The database plugins for Orthanc are licensed under the AGPL license.
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 We also kindly ask scientific works and clinical studies that make
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 use of Orthanc to cite Orthanc in their associated publications.
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122 Similarly, we ask open-source and closed-source products that make
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 use of Orthanc to warn us about this use. You can cite our work
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 using the following BibTeX entry:
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126 @Article{Jodogne2018,
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127 author="Jodogne, S{\'e}bastien",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 title="The {O}rthanc Ecosystem for Medical Imaging",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 journal="Journal of Digital Imaging",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 year="2018",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 month="Jun",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 day="01",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 volume="31",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 number="3",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 pages="341--352",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 issn="1618-727X",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 doi="10.1007/s10278-018-0082-y",
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138 url="https://doi.org/10.1007/s10278-018-0082-y"
7cea966b6829 initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 }