{"id":18841269,"url":"https://github.com/dcm4che/dcm4chee-proxy","last_synced_at":"2025-04-14T07:11:05.070Z","repository":{"id":1773758,"uuid":"2695237","full_name":"dcm4che/dcm4chee-proxy","owner":"dcm4che","description":"DICOM Proxy Java EE/SE application","archived":false,"fork":false,"pushed_at":"2022-11-24T02:37:48.000Z","size":5443,"stargazers_count":25,"open_issues_count":7,"forks_count":14,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-27T20:51:11.643Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dcm4che.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-11-02T13:52:21.000Z","updated_at":"2024-03-12T12:36:59.000Z","dependencies_parsed_at":"2023-01-11T16:05:53.102Z","dependency_job_id":null,"html_url":"https://github.com/dcm4che/dcm4chee-proxy","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcm4che%2Fdcm4chee-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcm4che%2Fdcm4chee-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcm4che%2Fdcm4chee-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcm4che%2Fdcm4chee-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dcm4che","download_url":"https://codeload.github.com/dcm4che/dcm4chee-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837287,"owners_count":21169374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T02:50:34.714Z","updated_at":"2025-04-14T07:11:05.046Z","avatar_url":"https://github.com/dcm4che.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Introduction\n============\n\nThe dcm4chee-proxy is a DICOM proxy application, that provides a vehicle for \nrule based distribution of DICOM data accross a network. Example use-cases are\ni) forwarding of DICOM objects to multiple AETs, ii) forwarding of DICOM objects\nbased on receive time schedules, iii) forwarding to target AETs based on send time schedule,\niv) forwarding based on attribute evaluation, etc.\n\nThe application can be run on JBoss AS7 or as a standalone command line tool.\n\nTracker: http://www.dcm4che.org/jira/browse/PRX \n\nSource: https://github.com/dcm4che/dcm4chee-proxy \n\nBuilding\n========\n\ndcm4che library\n---------------\n\nBefore building the proxy, check out and build the [dcm4che-3.x DICOM Toolkit] (http://github.com/dcm4che/dcm4che).\n\ndcm4chee-proxy\n--------------\n\nTo build the dcm4chee-proxy, run `mvn clean install -P standard` in the root directory.\nOn success, a JBoss AS7 deployable file can be found in dcm4chee-proxy-war/target/dcm4chee-proxy-war-\u003cversion\u003e.war\nand the command line proxy-version can be found in dcm4chee-proxy-tool/target/dcm4chee-proxy-tool-\u003cversion\u003e.zip.\nThe standard build includes configuration support for LDAP and Java Preferences.\n\nTo build the proxy with a dependency for use with dcm4che-jdbc-prefs, run `mvn clean install -P jdbc-prefs` or `mvn clean install` (default profile is `jdbc-prefs`).\n\nConfiguration\n=============\n\nLDAP Schema Import\n------------------\n\nIn order to store configuration data for dcm4chee-proxy, new schema files\nhave to be imported into the LDAP server instance.\nThe folder `/dcm4chee-proxy/dcm4chee-proxy-conf/src/main/config/ldap` contains\nsubfolders with the required schema files for the supported LDAP servers:\n```\n./apacheds\n./apacheds/partition-nodomain.ldif\n./apacheds/dcm4chee-proxy.ldif\n./opendj\n./opendj/12-dcm4chee-proxy.ldif\n./slapd\n./slapd/dcm4chee-proxy.ldif\n```\n\nSample Config\n-------------\n\ndcm4chee-proxy provides a sample configuration for LDAP and Java Preferences.\n\n**LDAP**\n\nThe LDAP sample configuration can be found at `/dcm4chee-proxy/dcm4chee-proxy-conf/src/main/config/ldap`:\n```\n./init.ldif\n./init-config.ldif\n./sample-config.ldif\n```\nAfter importing the LDAP specific schema file (see step *LDAP Schema Import*), \nimport the ldif files in the above order into the LDAP server.\n\n**Java Preferences**\n\nA Java Preferences sample configuration can be found at `dcm4chee-proxy/dcm4chee-proxy-conf/src/main/config/prefs`:\n```\n./sample-config.xml\n```\nTo import the sample config, use the `xml2prefs` tool provided by the dcm4che 3.0 library (https://github.com/dcm4che/dcm4che).\n\n*Note:* If planned to use the SQL backend for storing configuration data, the dcm4che-jdbc-prefs project \nprovides a tool `xmlPrefs2jdbc` for importing the Java Preferences sample configuration.\nPlease check the dcm4che-jdbc-prefs project for further information.\n\nJBoss Setup\n-----------\n\n**Dependencies**\n\nTo run dcm4chee-proxy within JBoss AS7 requires dcm4che-jboss-modules to be installed,\nwhich can be found in the dcm4che-3.x DICOM Toolkit (https://github.com/dcm4che/dcm4che).\nUnpack `dcm4che-jboss-modules-\u003cversion\u003e.zip` into the JBoss AS7 folder.\n\n**Container Configuration**\n\nCreate a directory `dcm4chee-proxy` inside the container configuration directory \n(e.g. `\u003cjbossDir\u003e/standalone/configuration/dcm4chee-proxy`)\nand copy all files from `dcm4chee-proxy-conf/src/main/config/conf/` into it.\n\nIf planned to use Java Preferences as configuration backend, delete the file\n`ldap.properties` from `\u003cjbossDir\u003e/standalone/configuration/dcm4chee-proxy/`.\n\nIf planned to use a LDAP configuration backend, edit the file\n`\u003cjbossDir\u003e/standalone/configuration/dcm4chee-proxy/ldap.properties`\nand set the connection and authentication parameters according\nto the LDAP server configuration.\n\n**Deployment**\n\nTo run dcm4chee-proxy in a JBoss AS7 instance, deploy\n`dcm4chee-proxy/dcm4chee-proxy-war/target/dcm4chee-proxy-war-\u003cversion\u003e.war`\nvia the JBoss command line interface or by copying it into e.g. `\u003cjbossDir\u003e/standalone/deployments/`.\n\n*Example:* \n\ni) make sure the JBoss instance is running\n\nii) start the command line interface: `\u003cjbossDir\u003e/bin/jboss-cli.sh -c`\n\niii) call the deploy procedure: `deploy \u003cbuildPath\u003e/dcm4chee-proxy-war-\u003cversion\u003e.war`\n\n**Device Configuration**\n\nThe dcm4chee-proxy is using a LDAP configuration,\ncompliant to the *DICOM Application Configuration Management Profile*,\nspecified in [DICOM 2011, Part 15][1], Annex H.\n\n[1]: ftp://medical.nema.org/medical/dicom/2011/11_15pu.pdf\n\nOn start-up, the dcm4chee-proxy application needs to load a proxy device configuration\nfrom the configuration backend. The device to be loaded can be set via  \n\ni) JBoss AS7 system property `org.dcm4chee.proxy.deviceName` in the JBoss container configuration \n\n*Example:* Edit `\u003cjbossDir\u003estandalone/configuration/standalone.xml`:\n```xml\n\u003c?xml version='1.0' encoding='UTF-8'?\u003e\n\n\u003cserver xmlns=\"urn:jboss:domain:1.2\"\u003e\n    \u003cextensions\u003e\n    ...\n    \u003c/extensions\u003e\n    \u003csystem-properties\u003e\n        \u003cproperty name=\"org.dcm4chee.proxy.deviceName\" value=\"dcm4chee-proxy\"/\u003e\n    \u003c/system-properties\u003e\n    ...\n\u003c/server\u003e\n```\nor\n\nii) by editing the file `/WEB-INF/web.xml` within the war file\n\n*Example:*\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cwebapp...\u003e\n  ...\n  \u003cservlet\u003e\n    ...\n    \u003cinit-param\u003e\n      \u003cparam-name\u003edeviceName\u003c/param-name\u003e\n      \u003cparam-value\u003edcm4chee-proxy\u003c/param-value\u003e\n    \u003c/init-param\u003e\n    ...\n  \u003c/servlet\u003e\n\u003c/web-app\u003e\n```\n\n**JBoss Logging**\n\nFor all audit log messages to appear in a separate log file (e.g. dcm4chee-proxy-audit.log), \nadd to the according container configuration (e.g. standalone.xml):\n\n```xml\n\u003cprofile\u003e\n  ...\n  \u003csubsystem xmlns=\"urn:jboss:domain:logging:1.1\"\u003e\n    ...\n    \u003cperiodic-rotating-file-handler name=\"PROXYAUDITLOG\"\u003e\n      \u003cformatter\u003e\n        \u003cpattern-formatter pattern=\"%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n\"/\u003e\n      \u003c/formatter\u003e\n      \u003cfile relative-to=\"jboss.server.log.dir\" path=\"dcm4chee-proxy-audit.log\"/\u003e\n      \u003csuffix value=\".yyyy-MM-dd\"/\u003e\n      \u003cappend value=\"true\"/\u003e\n    \u003c/periodic-rotating-file-handler\u003e\n    \u003clogger category=\"org.dcm4chee.proxy.conf.AuditLog\"\u003e\n      \u003clevel name=\"INFO\"/\u003e\n      \u003chandlers\u003e\n        \u003chandler name=\"PROXYAUDITLOG\"/\u003e\n      \u003c/handlers\u003e\n    \u003c/logger\u003e\n    ...\n  \u003csubsystem\u003e\n  ...\n\u003c/profile\u003e\n```\n\n**JDBC Preferences**\n\nIf the preferences data is supposed to be read via the dcm4che-jdbc-prefs project\nfrom a database, specify the following system property in the container configuration (e.g. standalone.xml):\n```xml\n\u003csystem-properties\u003e\n    \u003cproperty name=\"java.util.prefs.PreferencesFactory\" value=\"org.dcm4che.jdbc.prefs.PreferencesFactoryImpl\"/\u003e\n\u003c/system-properties\u003e\n```\n\nStandalone Application\n----------------------\nThe dcm4chee-proxy can be run as a standlone application from the command line.\nAfter building the project, the command line version can be found in\n`dcm4chee-proxy-tool/target/dcm4chee-proxy-tool-1.1.0-SNAPSHOT-bin.zip`.\nThe standalone app can be started by executing `./bin/proxysa` (or `proxysa.bat`)\nand specifying the device name to be loaded from the configuration backend (LDAP or Java Preferences).\n\n*Example:*\n```\nproxysa --device dcm4chee-proxy \n--ldap-url ldap://localhost:1389/dc=example,dc=com \n--ldap-userDN \"\u003cuserDN\u003e\" --ldap-pwd \u003cpwd\u003e` \n```\nThis will start the proxy with a DICOM configuration\nretrieved from the specified LDAP.\n\nTry `proxysa --help` for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcm4che%2Fdcm4chee-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcm4che%2Fdcm4chee-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcm4che%2Fdcm4chee-proxy/lists"}