{"id":17309399,"url":"https://github.com/nroduit/weasis-pacs-connector","last_synced_at":"2025-04-05T23:12:18.126Z","repository":{"id":10447010,"uuid":"12615197","full_name":"nroduit/weasis-pacs-connector","owner":"nroduit","description":"Connect Weasis to any PACS supporting WADO","archived":false,"fork":false,"pushed_at":"2025-01-10T06:59:41.000Z","size":775,"stargazers_count":54,"open_issues_count":10,"forks_count":56,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-29T22:11:12.131Z","etag":null,"topics":["pacs","pacs-connector","pacs-viewer"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nroduit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-09-05T10:30:02.000Z","updated_at":"2025-03-09T14:59:11.000Z","dependencies_parsed_at":"2025-02-12T14:08:50.489Z","dependency_job_id":"225db53f-1e4f-486f-978b-2c7535103104","html_url":"https://github.com/nroduit/weasis-pacs-connector","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nroduit%2Fweasis-pacs-connector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nroduit%2Fweasis-pacs-connector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nroduit%2Fweasis-pacs-connector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nroduit%2Fweasis-pacs-connector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nroduit","download_url":"https://codeload.github.com/nroduit/weasis-pacs-connector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411239,"owners_count":20934653,"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":["pacs","pacs-connector","pacs-viewer"],"created_at":"2024-10-15T12:28:47.581Z","updated_at":"2025-04-05T23:12:18.092Z","avatar_url":"https://github.com/nroduit.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# weasis-pacs-connector\n\n[![License](https://img.shields.io/badge/License-EPL%202.0-blue.svg)](https://opensource.org/licenses/EPL-2.0) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)  ![Build](https://github.com/nroduit/weasis-pacs-connector/workflows/Build/badge.svg)  \n\nweasis-pacs-connector provides the easiest way to launch the Weasis DICOM viewer from a web context (see URL [examples](#launch-weasis)) and to connect Weasis to any PACS supporting WADO-URI. If you want to make your own connector without weasis-pacs-connector, follow [these instructions](https://nroduit.github.io/en/basics/customize/integration/#build-your-own-connector).\n\n**Note**: A simpler configuration without weasis-pacs-connector is possible if the DICOM archive has DICOMWeb services (see examples [here](https://nroduit.github.io/en/basics/customize/integration/#download-directly-with-dicomweb-restful-services)). \n\n* The master branch requires Java 8+ and a servlet container 3.1. It works by default with [dcm4chee-arc-light](https://github.com/dcm4che/dcm4chee-arc-light). \n* The [6.x branch](https://github.com/nroduit/weasis-pacs-connector/tree/6.x) requires Java 7+ and a servlet container 2.5. This is the latest version working with dcm4chee 2.18.x.\n\n:heavy_exclamation_mark:As **Java Webstart is deprecated**, prefer to use the [weasis protocol](https://nroduit.github.io/en/getting-started/weasis-protocol) (defined below by the **/weasis** service) instead of Java Web Start because it has been removed from [Java 11 release](https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html#JDK-8185077) and because the end of public Oracle Java 8 updates from April 2019. It only works with Weasis 3.5 (or superior) installed on the system with a [native installer](https://nroduit.github.io/en/getting-started/).\n\nThis component gathers different services (:warning: =\u003e deprecated):\n\n| Service              | Description                                                                   |\n| -------------------- | ----------------------------------------------------------------------------- |\n| **/weasis**                | new protocol to launch Weasis with requested images, replacing Java Webstart \n| **/viewer** :warning:      | launching Weasis with Java Webstart\n| **/IHEInvokeImageDisplay** | launching Weasis at Patient and Study level, compliant to the [IHE IID profile](http://www.ihe.net/Technical_Framework/upload/IHE_RAD_Suppl_IID.pdf)\n| **/manifest**              | building the xml manifest (containing the necessary UIDs) consumed by Weasis to retrieve all the images by WADO-URI requests\n| **/[template]** :warning:  | (default template: /weasis.jnlp) building a jnlp file from a template (jnlp template path, jnlp properties and jnp arguments can be passed via URL parameters, see the [JNLP Builder documentation](JnlpBuilder))\n\n## [Release History](CHANGELOG.md)\n\n\n## Build weasis-pacs-connector\n\nPrerequisites: JDK 8 and Maven 3\n\n* Execute the maven command `mvn clean package` in the root directory of the project and get the package from /target/weasis-pacs-connector.war. Official releases are available at [here](http://sourceforge.net/projects/dcm4che/files/Weasis/weasis-pacs-connector/).\n\n* Use the loggerless profile for web application container which already embeds slf4j and log4j (like JBoss): `mvn clean package -Ploggerless`\n\n## Launch Weasis\n\nThe **/weasis** service uses the [weasis protocol](https://nroduit.github.io/en/getting-started/weasis-protocol) by redirecting the `http://` request into `weasis://` (because some web frameworks such as the wiki or the URL field of some browsers only support the standard protocols). It replaces the old **/viewer** service using Java Webstart.\n\n* http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672\n* http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672%5E%5E%5Etest  \n  =\u003e to handle an universal patientID, add IssuerOfPatientID like in hl7: patientID=9702672^^^test\n* http://localhost:8080/weasis-pacs-connector/weasis?patientID=97026728\u0026patientID=2023231696  \n  =\u003e multiple patients\n* http://localhost:8080/weasis-pacs-connector/weasis?patientID=97026728\u0026modalitiesInStudy=MR,XA  \n  =\u003e only studies containing MR or XA \n* http://localhost:8080/weasis-pacs-connector/weasis?patientID=97026728\u0026containsInDescription=abdo,thorax  \n  =\u003e only studies containing the string abdo or thorax (accent and case insensitive) in study description (from version 5.0.1) \n* http://localhost:8080/weasis-pacs-connector/weasis?patientID=97026728\u0026modalitiesInStudy=CT\u0026upperDateTime=2010-01-01T12:00:00Z  \n  =\u003e only studies containing CT which are more recent than 2010-01-01 12:00:00 (UTC time, do not use 'Z' if the store files don't have a time zone)\n* http://localhost:8080/weasis-pacs-connector/weasis?studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.855\n* http://localhost:8080/weasis-pacs-connector/weasis?accessionNumber=3224252\n* http://localhost:8080/weasis-pacs-connector/weasis?seriesUID=1.2.840.113704.1.111.4924.1273631010.17\n* http://localhost:8080/weasis-pacs-connector/weasis?objectUID=1.2.840.113704.1.111.3520.1273640118.5118\n* http://localhost:8080/weasis-pacs-connector/weasis?studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.855\u0026studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.857\u0026seriesUID=1.2.840.113704.1.111.4924.1273631010.17  \n  =\u003e multiple studies and series\n\nNote: it is possible to limit the type of UIDs (patientID, studyUID, accessionNumber, seriesUID, objectUID) that can be called from services. See \"request.ids\" in this [configuration file](src/main/resources/weasis-pacs-connector.properties) which enables to set which ID is allowed, by default all are allowed.\n\n### Launch Weasis with IHE IID profile\n\nThe [Invoke Image Display Profile](https://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_Suppl_IID.pdf) allows the user of an Image Display Invoker, typically a nonimage-aware system like an EHR, PHR or RIS, to request the display of studies for a patient, and\nhave the display performed by an image-aware system like an Image Display (PACS).\n\n* http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT\u0026patientID=97026728\u0026mostRecentResults=2  \n  =\u003e query at patient level to get a number of the most recent studies\n* http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT\u0026patientID=97026728\u0026lowerDateTime=2010-01-01T12:00:00  \n  =\u003e query at patient level to get the studies which are older than a date \n* http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT\u0026patientID=97026728\u0026upperDateTime=2010-01-01T12:00:00  \n  =\u003e query at patient level to get the studies which are more recent than a date\n* http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT\u0026patientID=97026728\u0026modalitiesInStudy=MR,XA  \n  =\u003e query at patient level to get the studies containing MR or XA \n* http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT\u0026patientID=97026728\u0026containsInDescription=abdo,thorax  \n  =\u003e query at patient level to get the studies containing the string abdo or thorax (accent and case insensitive) in study description (from version 5.0.1)  \n* http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=STUDY\u0026accessionNumber=1657271  \n  =\u003e query at study level with _accessionNumber_ or _studyUID_\n\n### Launch Weasis with other parameters\n\nSome Weasis [preferences](https://nroduit.github.io/en/basics/customize/preferences/) may be overridden in the URL parameters.\n\n* http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672\u0026pro=\"weasis.aet%20MYAET\"  \n  =\u003e Change the defaut Weasis calling AETitle for DICOM send and DICOM print (by default WEASIS_AE)\n  \nProperty syntax (key and value must be URL encoded): \u0026pro=\"`key`%20`value`\"\n\nTo add parameters related to the launch configuration and user preferences without weasis-pacs-connector, refer to this [page](https://nroduit.github.io/en/getting-started/weasis-protocol/#modify-the-launch-parameters).\n\n\n### Upload the manifest via http POST\n\nWhen the manifest is built [outside weasis-pacs-connector](https://nroduit.github.io/en/basics/customize/integration/#build-your-own-connector) and needs to be transmitted to the viewer.\n\n* http://localhost:8080/weasis-pacs-connector/weasis?upload=manifest  \n  =\u003e with the header parameter \"Content-Type: text/xml; charset=UTF-8\" and the manifest in the body of the POST request\n  \n## Getting the xml manifest\nBuild an XML file containing the UIDs of the images which will be retrieved in Weasis. There is an [XLS schema](https://github.com/nroduit/Weasis/blob/master/weasis-dicom/weasis-dicom-explorer/src/main/resources/config/wado_query.xsd) to validate the content of xml. This file can be either compressed in gzip or uncompressed. Here are examples:  \n\n* http://localhost:8080/weasis-pacs-connector/manifest?studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.855\n* http://localhost:8080/weasis-pacs-connector/manifest?studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.855\u0026gzip  \n  =\u003e return a gzip-compressed XML file\n* http://localhost:8080/weasis-pacs-connector/manifest?patientID=97026728\u0026modalitiesInStudy=MR\u0026upperDateTime=2014-05-20T12:00:00  \n  =\u003e only studies containing MR which are more recent than 2014-05-20 12:00:00\n  \n## Installation\n\nIt requires a web application container like Jetty, Tomcat or JBoss on the server side and an installation of [Weasis (native installer)](https://nroduit.github.io/en/getting-started/#try-weasis-now) on the client side.\n\nFor installation with the dcm4chee user interface, see this [page](https://nroduit.github.io/en/getting-started/dcm4chee/).\n\nGo [here](https://sourceforge.net/projects/dcm4che/files/Weasis/) and download these following files:\n\n* From weasis-pacs-connector folder:\n\t- [weasis-pacs-connector.war] Connector between the archive of images and the viewer\n* From the folder with the latest version number (Optional if you want to run only the native version installed on the client system):\n\t- [weasis.war] Weasis web package which will upgrade the local installation for minor releases (all the plug-ins except the launcher).\n\t- [weasis-ext.war] Optional package for additional plug-ins (e.g. exporting the images to build an ISO image for CD/DVD)\n\t- [weasis-i18n.war] Optional package for [Weasis translations](https://nroduit.github.io/en/getting-started/translating/)\n\n**Note**: If Weasis is not installed on the server side, the parameter `cdb` with no value must be added to the URL (e.g. http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672\u0026cdb) or the `weasis.base.url` property in the weasis-pacs-connector [configuration](src/main/resources/weasis-pacs-connector.properties#L53) must be commented or set to null.\n\n## Configuration\n\nThe default configurations works directly with [dcm4chee-arc-light](https://nroduit.github.io/en/getting-started/dcm4chee/). To override the configuration of weasis-pacs-connector, download [weasis-pacs-connector.properties](src/main/resources/weasis-pacs-connector.properties). This file named **weasis-pacs-connector.properties** and **[dicom-dcm4chee.properties](src/main/resources/dicom-dcm4chee-arc.properties)** must be placed in the classpath of the application:\n\n* In JBoss Wildfly 10, the location is wildfly/standalone/configuration\n* In Tomcat just specify the directory in shared.loader property of /conf/catalina.properties\n\nTo add properties or arguments at launch, see [Launch Weasis with other parameters](#launch-weasis-with-other-parameters).\n\nSeveral archives can be used simultaneously in [configuration](src/main/resources/weasis-pacs-connector.properties#L76) by defining an archive file in which the property `arc.activate` must be `true`. Otherwise requires to have the archive ID in the request URL (e.g. http://host?patientID=9702672\u0026archive=1000).\n\nFor [dcm4chee-arc-light](https://github.com/dcm4che/dcm4chee-arc-light) see the [installation instructions](https://nroduit.github.io/en/getting-started/dcm4chee/).\n\n## Security\n\nThere are different ways to treat the security aspects. Here are some:\n\n* Make a proxy servlet (URL forwarding) to handle authentication and authorization you want and configure weasis-pacs-connector to be called only by the proxy server (hosts.allow=serverhostname)\n* Configure weasis-pacs-connector for UIDs encryption in the URL with a paraphrase (encrypt.key=paraphraseForIDs: just uncomment and set a new key). It works by default with dcm4chee-web3. For other web interface it requires to use the same [algorithm](src/main/java/org/weasis/util/EncryptUtils.java) with the same key. \n* Configure weasis-pacs-connector for accepting only limited IPs/hosts\n* Limit the type of UIDs (patientID, studyUID, accessionNumber, seriesUID, objectUID) that can be called from services\n\n## Architecture\n\n![Architecture schema](https://nroduit.github.io/images/weasis-pacs-connector.svg)\n\nSee [How to launch Weasis from any environments](https://nroduit.github.io/en/basics/customize/integration/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnroduit%2Fweasis-pacs-connector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnroduit%2Fweasis-pacs-connector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnroduit%2Fweasis-pacs-connector/lists"}