Generic HIS integration Quick Install 1. Among files external.sample-*.php, find the one dedicated to your PACS and rename/copy it to external.php. 2. Modify first lines of external.php: define("SHOW_ENABLED", true); // true: HIS integration is enabled; false: disabled define("SHOW_DB", "dbname"); // database name define("SHOW_USER", "user"); // a database user define("SHOW_PASSWORD", "password"); // corresponding password 3. Ensure that your HIS generates URLs with proper query keys: URL?study=STUDY_UID Will open a study referenced by Study UID Unsupported by FileSystem. URL?accnum=ACCESSION_NO Will open a study referenced by Accession Number Supported in external.sample-dcm4chee.php, external.sample-conquest.php, external.sample-pacsone.php. URL?patient=PATIENT_UID Will open the Search dialog with studies of the patient referenced by Patient UID Unsupported by FileSystem. URL?patient=PATIENT_UID&accnum=ACCESSION_NO Will open a single study referenced by Patient UID and Accession Number Supported only for PacsOne in external.sample-azimuth-pacsone.php. URL?series=SERIES_UID Will open a series referenced by Series UID PacsOne and DCM4CHEE only, external.sample-rssdimed-*.php required. URL?file=PATH_TO_FILE Will open an image file referenced by its path. If the path refers to a directory, there will be an attempt to load the first study. FileSystem only. A most popular example: http://localhost/meddream/index.php?study=1.2.392.200036.9107.500.110113 Besides GET, a more secure POST request is supported, too. For added convenience, you might also want to open a new browser window: then it becomes possible to reuse this window when opening other objects. Both ideas are implemented in the HTML example at the end of this document. PacsOne and DCM4CHEE, via external.sample-rssdimed-*.php, support opening multiple studies or multiple series at once; see the integration details below. Since 3.15, ClearCanvas supports multiple studies as well. Furthermore external.sample-dcm4chee.php allows STUDY_UID and SERIES_UID both as DICOM UID (1.2.3..., stored in the database as 'study_iuid', 'series_iuid') and as internal numeric identifiers (stored in the database as 'pk'). In contrast, external.sample-rssdimed-dcm4chee.php requires true UIDs. 4. If MedDream still shows the login page: For most PACSes (except "WADO" and "DICOM" pseudo-DBMSes), the login page is shown instead if external.php was unable to validate the reference. The message below the "Login" button tells the cause. Values of the Hint are: 1 No object found by this reference 2 Unable to connect to the database for validation. Check definitions of SHOW_* in the first lines of external.php. Also try logging in interactively as the problem might be more general. 3 Invalid validation query (DBMS reported an error) 4 This query key is not supported by PACS This is the old validation mechanism. The newer one, implemented so far in a few integration samples (for example, ClearCanvas and FileSystem), uses more user-friendly messages and hides the login page in most cases. ---------------------------------------------------------------------------- INTEGRATION SYNTAX DETAILS The following corresponds to meddream.swf at least v3.10.1112.2000. At the time of this writing, these capabilities are not fully supported yet by every version of external.php. For example, multiple studies fail UID validation via external.sample-pacsone.php, they require external.sample-rssdimed-pacsone.php instead. DEFINITIONS URL MedDream root hyperlink without the query part (e.g., http://localhost/meddream/). It is OK to include index.php or home.php. series_uid Series unique ID (PacsOne database: series.uuid, DCM4CHEE: series.series_iuid) study_uid Study unique ID (PacsOne: study.uuid, DCM4CHEE: study.study_iuid) view Basic MedDream interface: a thumbnail strip plus an image viewing area. Multiple "copies" of this interface, called "views" from now on, are supported side-by side, with a common toolbar; this is typically used to compare two studies. layout Further division of the image viewing area in a particular view. Multiple divisions, called "layout areas" from now on, are typically used to compare arbitrary images from the same study. Controlled by toolbar buttons "1x1 Screen Layout" etc, but also see specification for the "layout" query key, below. Multi Image A function that divides a particular layout area even further and automatically displays adjacent images in the resulting grid. Typically used to compare neighboring CT slices etc. Controlled by toolbar buttons "1x1 Multi Image" and "2x2 Multi image", but also see specification for the "multiimage" query key, below. QUERY KEYS view The number of views on the screen, tiled horizontally. An integer, 1 by default. Too large values are replaced with the maximum, 5. Example: URL?view=2 Two views. Works also in the interactive (non-HIS) mode, however do not forget to select a particular view before adding a study with the Search button. study Enter study viewing mode, display the specified study. Basic example: URL?study=study_uid A single study referenced by study_uid is added to the view 1. Multiple identifiers are delimited by commas and semicolons. A sequence of identifiers delimited by commas is intended for a particular view and targets layout areas available there. A semicolon starts contents of another view. Examples: URL?study=study_uid1,study_uid2 View 1 contains study_uid1 and study_uid2 URL?study=study_uid1;study_uid2 View 1: study_uid1, view 2: study_uid2 URL?study=study_uid1,study_uid2;study_uid2,study_uid3 View 1: study_uid1 and study_uid2, view 2: study_uid2 and study_uid3 If there are not enough views, all excess identifiers are assigned to the last one. Example: URL?study=study_uid1;study_uid2;study_uid3&view=2 View 1: study_uid1, view 2: study_uid2 and study_uid3 Duplicate identifiers in the same view are ignored. Example: URL?study=study_uid1,study_uid1&view=2 View 1: study_uid1, view 2: empty However, different views can receive the same study. Example: URL?study=study_uid1;study_uid1&view=2 View 1: study_uid1, view 2: study_uid1 series Enter series viewing mode (incompatible with the "study" key). Basic example: URL?series=series_uid A single series referenced by series_uid is added to the view 1. For multiple series, see the "study" key above -- the same rules apply. NOTE: This key is ignored if the "study" key is also found. layout The layout of each view. Two integers in form of num_of_rows, "x", num_of_columns. Values outside limits 1 ... 3 are silently replaced with those limits. A differently formatted entry is ignored. Example: URL?layout=2x2 The view 1 is split into a 2-by-2 grid and can therefore show 4 images, just like after the button "2x2 Screen Layout". Multiple layouts are intended for different views and, as before, are delimited by a semicolon. Examples: URL?layout=2x2;1x1 View 1: 2-by-2, view 2: a single image. URL?layout=2x2;1x1&view=1 View 1 is 2-by-2. The excess specification "1x1" is ignored. URL?layout=2x2;&view=2 View 1 is 2-by-2. View 2 sports the default layout defined in MedDream settings. thumbpos Initial location of the thumbnail strip. Possible values are "bottom" and "left". Unrecognized values are silently ignored. Example: URL?thumbpos=bottom;&view=2 Both views have thumbnail strips at the bottom. The toolbar button "Thumbnails Position Left/Bottom" can still change orientation for the selected view (but not for *all* views simultaneously). NOTE: If you open the Settings dialog when this option is in effect, its value will override a preserved value and, therefore, will become default after settings are saved by pressing "OK". compactview Display only the first thumbnail image in every series. Thumbnail size is set to maximum (150-by-150 pixels). Available values: 1 -- activate compact thumbnails view 0 -- usual contents of the thumbnail strip (default) Example: URL?study=study_uid1&compactview=1 Each series of study_uid1 will contain only one thumbnail image. vw Series width for the vertical thumbnail strip. Available values: 60 ... 1000. Default value as defined in settings. Example: URL?study=study_uid1&vw=150 Each series of study_uid1 will be 150px wide. vh Series height for the vertical thumbnail strip. Available values: 60 ... 1000. Default value as defined in settings. Example: URL?study=study_uid1&vh=150 Each series of study_uid1 will be 150px high. hw Series width for the horizontal thumbnail strip. Available values: 60 ... 1000. Default value as defined in settings. Example: URL?study=study_uid1&vw=150 Each series of study_uid1 will be 150px wide. hh Series height for the horizontal thumbnail strip. Available values: 60 ... 1000. Default value as defined in settings. Example: URL?study=study_uid1&vh=150 Each series of study_uid1 will be 150px high. multiimage Automatically enables Multi Image function on every opened study or series. Two integers in form of num_of_rows, "x", num_of_columns. Values outside limits 1 ... 3 are silently replaced with those limits. A differently formatted entry is ignored. Multiple entries are intended for different views and, as before, are delimited by a semicolon. Example: URL?study=study_uid1&multiimage=2x2;2x2&view=2 Enables Multi Image function for view 1 and view 2. Both views will contain 4 images each. NOTE: If the Auto Open First Image option (in the settings) is set to Always: for a study -- open first image and apply Multi Image; for a series -- open first image of each series in available layout areas, and apply Multi Image to each area. Example: URL?series=series_uid1,series_uid2&multiimage=2x2&layout=2x1 Open first image of series_uid1 in the first layout area and apply Multi Image; as a result, the first area divides into a 2-by-2 grid and displays up to 3 further images from that series. Open first image of series_uid2 in the second layout area and apply Multi Image, therefore 4 consequent images are shown there. None: Applies Multi Image to every layout area, without opening any images. Single: (open if study/series consists of a single image) The Multi Image is not applied to such studies or series as it has no practical use. The button "2x2 Multi Image" in this case still works as intended and (needlessly) divides the selected layout area. toolbar Hide and/or rearrange the toolbar buttons. Button numbers must be delimited by semicolons. Out-of-range numbers are ignored. An empty list effectively means "no toolbar"; that might also occur due to invalid numbers or wrong delimiters. Button numbers are 1-based and correspond to a full unmodified toolbar: 1 Search 2 Windowing (W) 3 Hand (H) 4 Zoom (+/-) 5 Measure 6 Magnifinder (M) 7 Fit to Screen (2) 8 1:1 Resolution (1) 9 Transform 10 Lock Scroll 11 Reference Lines 12 Set Scroll 13 RGB Chanels 14 Report (visible if a report is present) 15 1x1 Multi Image 16 2x2 Multi Image 17 1x1 Screen Layout 18 1x2 Screen Layout 19 2x2 Screen Layout 20 Screen Layout 21 Thumbnails Position Left/Bottom 22 Forward 23 Burn 24 Print 25 Plugins (visible if at least one plugin was found) 34 Save Images... 36 mm/s (ECG) 37 mm/V (ECG) 38 i (ECG Annotations) 40 Reset (visible in the HIS integration mode only) 41 MPR 42 Cine mode 43 Show or hide filtered ECG data 44 Show or hide not filtered ECG data 45 Compare ECG data 46 Add or remove 50/60 Hz filter The remaining buttons can only be hidden (by *not* specifying their numbers), and will always remain near the toolbar end in this order: 26 Settings 27 Users 28 i (About) 29 ? (Help (F1)) 30 FullScreen 31 Language (visible if languages.xml exists) 32 Logoff (visible in the non-HIS mode only) 33 Close (visible in the HIS integration mode only) Examples: URL?toolbar=1 A toolbar that contains only the Search button. URL?toolbar=0 The simplest way to hide the entire toolbar. URL?toolbar=3;14;8;27;4 Will host the buttons "Hand (H)", "1x1 Multi Image", "1:1 Resolution (1)", "Zoom (+/-)". The right side also contains "FullScreen". dicomflow Override the "DICOM Flow" setting. Available values: 1 or 0. Some installations might turn off the "DICOM Flow" setting, in order to avoid problems with slow connection and/or extremely large studies that require more RAM than present in a typical client computer. Of course, sometimes it might be required to do the opposite. Example: URL?study=study_uid&dicomflow=1 If one is sure that this study can be opened, then some navigation comfort is added even if "DICOM Flow" is globally off. dateFrom dateTo When listing studies for a particular patient (?patient=...), set "From:" / "To:" to this date in the Search dialog. It is not required to use both parameters. Empty value and a missing parameter have the same effect: the corresponding date checkbox remains turned off. Currently supported by DCM4CHEE (2.x/4.x) and PacsOne only. Example: URL?patient=PATIENT_ID&dateFrom=2014-12-01 "From:" is set to 2014-12-01 and "To" is not used (means "any date"). MORE EXAMPLES http://localhost/meddream/index.php?study=study_uid;study_uid;study_uid;study_uid http://localhost/meddream/index.php?study=study_uid;study_uid1;study_uid1;study_uid1 http://localhost/meddream/index.php?study=study_uid;study_uid1&view=2&thumbpos=left http://localhost/meddream/index.php?study=study_uid&view=2 http://localhost/meddream/index.php?study=study_uid&view=2&layout=2x2;1x1 http://localhost/meddream/index.php?study=study_uid&view=2&layout=5x5 http://localhost/meddream/index.php?series=series_uid&view=2&layout=5x5&toolbar=1;2;3;4;5 http://localhost/meddream/index.php?series=series_uid&view=2&thumbpos=bottom http://localhost/meddream/index.php?series=series_uid&view=2&thumbpos=left http://localhost/meddream/index.php?study=study_uid;study_uid;study_uid;study_uid&view=2&thumbpos=bottom&layout=2x2;1x1&toolbar=1;2;3;4;5 ---------------------------------------------------------------------------- INTEGRATION HTML EXAMPLE Copy the following to an HTML file in the MedDream root directory. It is assumed that this directory is hosted as "/", otherwise you should correct the path. You also should replace the study identifier "123456" with some real identifier that exists in your PACS. Link (GET method) to study Number 123456

Link (GET method) in external window to study Number 123456

Link (POST method) to study Number 123456
Link (POST method) in external window to study Number 123456
---------------------------------------------------------------------------- SPECIFICATION OF HIS-HOSTED REPORTS Since version 4.04.1501.2700 the Reporting module (or MedReport integration) can be replaced by HIS-hosted reports. The button in the study header will open a HIS-hosted report instead. To enable this, configure the base URL $his_report_link in config.php. Examples: $his_report_link = "http://his_server/reports_path/"; $his_report_link = "http://his_server/reports_path?study="; MedDream appends Study UID to this string and attempts to download an XML document from the resulting URL. It must have the following structure: patient ID last first YYYY-MM-DDTHH:II:SS document title basically another title URL to a HTML version of the report URL to a PDF version of the report last first ... ... entries will be displayed in a table. Each row has a button that opens in a new browser tab. If is empty, then is used instead. If there are no reports for this study, or some error occurred, the server must report that via a different structure: message text MedDream will show the text to the user. Currently the button in the study header is shown only if the license has the Reporting module enabled ("+Report", always enabled in DEMO mode) and the user account is granted the "Upload" privilege (enabled for most PACSes except PacsOne). Another similar setting, $medreport_root_link, must remain empty as it uses the button in the study header for its own needs. ----------------------------------------------------------------------------