I've had luck connecting Horos and other OsiriX-based viewers to DCM4CHEE v5.23+ using the following procedure (replace Horos below with OsiriX, miele-lxiv, etc):
1. Launch Horos and then open the preferences from the Horos→Preferences menu.
2. In the Listener pane, set the following (parameter names may vary slighty between applications):
AETitle:
<Change if desired>Activate DICOM listener when Horos is running: <enabled>
Activate the "osirix://" URL support […]: <enabled> (port set to something unused)
Also search PACS-On-Demand servers: <disabled>
3. In the Locations pane, click Add new node and add an entry with your DCM4CHEE's Address, AETitle, port. Set retrieve to C-GET.
Address: <IP address or fully qualified domain name for your DCM4CHEE server)
AETitle: DCM4CHEE (or whatever you set your DCM4CHEE AE title to be)
Port: 11112 (or whatever you set your DCM4CHEE DICOM services port to be)
Q/R: <checked>
Retrieve: C-GET
TLS: No (TLS connection will require more configuration so be aware your connection over public internet is not encrypted)
Name: DCM4CHEE (this can be whatever you like but note it for below)
Send Transfer Syntax: Explicit Little Endian
NOTE: Horos may sometimes have a bug with adding new nodes. I get around this by using Save to save the current list to a file, edit the file, and then use Load to import the changes.
4. In DCM4CHEE you may need to add the Horos AETitle (from step 2) if you have it set up to only allow connections from accepted AET titles. Refer to DCM4CHEE docs for that.
5. In DCM4CHEE for some OsiriX-based apps, including Horos, I've had to update a setting to workaround a DICOM retrieve issue:
- Navigate to Configuration→Devices→dcm4chee-arc→Extensions→Device Extension (Edit extension)→Attribute
- Set "Role Selection Negotiation Lenient" to "True
- Scroll down and "Save"
6. In the RIS, you can then craft a URL that will launch Horos. Here is a JavaScript compatible way that works for me:
var serverName = 'DCM4CHEE' # must match Name from step 3 above.
var studyUid = '1.2.3.4.5.6.100' # the Study Instance UID for the study you would like to open
var osirixUrl = 'osirix://?methodName=retrieve&serverName='+serverName+'&then=open&retrieveOnlyIfNeeded=yes' +
'&filterKey=StudyInstanceUID&filterValue=' + encodeURIComponent(studyUid)