Files
config-pacs-docker/dcm4chee/default/conf/xmdesc/dcm4chee-mwlreplica-xmbean.xml
2025-02-26 14:49:25 +07:00

328 lines
14 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mbean PUBLIC "DCMSCU attributes template extends jboss_xmbean_1_1.dtd" "dcm4chee-scu-xmbean.dtd">
<mbean>
<description><![CDATA[<b>Modality Worklist Replication Service</b><br/>
Provides a Service to replicate a MWL SCP with ABPACS Modality worklist.<br/>.
You can use XSL Templates to change MWL C-FIND Request for MWL SCPs.<br/>
Therefore put either mwl-replica-rq.xsl and/or mwl-replica-rsp.xsl in conf/dcm4chee-aet/[AET].
]]> </description>
<descriptors>
<persistence persistPolicy="OnUpdate"/>
<persistence-manager value="org.jboss.mx.persistence.DelegatingPersistenceManager" />
</descriptors>
<class>org.dcm4chex.archive.tool.mwlreplica.MwlReplicaService</class>
<constructor>
<description>The default constructor</description>
<name>MwlReplicaService</name>
</constructor>
<!-- Attributes -->
&defaultAttributes;
&defaultSCUAttributes;
<attribute access="read-write" getMethod="getCalledAET" setMethod="setCalledAET">
<description><![CDATA[The AE title(s) of the Modality Worklist SCP to query for replication.<br/>
Multible AET's must be separated by \(backslash). For example, MWL_SCP1\MWL_SCP2.]]>
</description>
<name>CalledAET</name>
<type>java.lang.String</type>
<descriptors>
<value value="MWL_SCP"/>
</descriptors>
</attribute>
<attribute access="read-write" getMethod="getCallingAET" setMethod="setCallingAET">
<description>Calling AET.
</description>
<name>CallingAET</name>
<type>java.lang.String</type>
<descriptors>
<value value="ABPACS"/>
</descriptors>
</attribute>
<attribute access="read-write" getMethod="getTaskInterval" setMethod="setTaskInterval">
<description><![CDATA[Interval in which to replicate local Modality Work List with remote MWL SCP.<br/>
Format: interval (##s (in seconds), ##m (in minutes), ##h (in hours) or NEVER]]>
</description>
<name>TaskInterval</name>
<type>java.lang.String</type>
<descriptors>
<value value="NEVER"/>
</descriptors>
</attribute>
<attribute access="read-write" getMethod="getTimeBefore" setMethod="setTimeBefore">
<description><![CDATA[Time interval to calculate left border of time range.<br/>
Format: interval (##s (in seconds), ##m (in minutes), ##h (in hours) or NONE.<br/>
NONE means either no (time) left border or, if TimeAfter is also NONE the whole day.<br/>
E.g.: TimeBefore = 1h, TimeAfter = 2h, current time is 13:00 -> search for all MWL with start date between 12:00 and 15:00.<br/>
TimeBefore = 1h, TimeAfter = NONE, current time is 13:00 -> search for all MWL with start date between 12:00 and 23:59.59.<br/>
TimeBefore = NONE, TimeAfter = 2h, current time is 13:00 -> search for all MWL with start date before 15:00.<br/>
TimeBefore = NONE, TimeAfter = NONE, current time is 13:00 -> search for all MWL for current date.<br/>
]]></description>
<name>TimeBefore</name>
<type>java.lang.String</type>
<descriptors>
<value value="NONE"/>
</descriptors>
</attribute>
<attribute access="read-write" getMethod="getTimeAfter" setMethod="setTimeAfter">
<description><![CDATA[Time interval to calculate left border of time range.<br/>
Format: interval (##s (in seconds), ##m (in minutes), ##h (in hours) or NONE.<br/>
NONE means either no (time) right border or, if TimeBefore is also NONE the whole day.
]]></description>
<name>TimeAfter</name>
<type>java.lang.String</type>
<descriptors>
<value value="NONE"/>
</descriptors>
</attribute>
<attribute access="read-write" getMethod="getIssuerOfPatient" setMethod="setIssuerOfPatient">
<description>Default Issuer Of Patient ID to coerce empty IssuerOfPatient attribute in MWL results. Use NONE to disable coercion.
</description>
<name>IssuerOfPatient</name>
<type>java.lang.String</type>
<descriptors>
<value value="NONE"/>
</descriptors>
</attribute>
<attribute access="read-write" getMethod="isForceIssuerCoercion" setMethod="setForceIssuerCoercion">
<description>Force coercion of IssuerOfPatient attribute in MWL results even when result contains IssuerOfPatient.
</description>
<name>ForceIssuerCoercion</name>
<type>boolean</type>
<descriptors>
<value value="false"/>
</descriptors>
</attribute>
<attribute access="read-write"
getMethod="getCoerceConfigDir"
setMethod="setCoerceConfigDir">
<description><![CDATA[Directory where configuration files for attribute
coercion are located: if XSL stylesheet "mwl-replica-rq.xsl" or
"mwl-replica-rsp.xsl" exists in this directory or in a sub-directory equal
to the AE Title of the MWL SCP, attributes of MWL C-FIND Request or Response
will be coerced according these stylesheets.
A relative path name is resolved relative to
<i>archive-install-directory</i>/server/default/.]]>
</description>
<name>CoerceConfigDirectory</name>
<type>java.lang.String</type>
<descriptors>
<value value="conf/dcm4chee-ae"/>
</descriptors>
</attribute>
<attribute access="read-write"
getMethod="getPatientMatching"
setMethod="setPatientMatching">
<description><![CDATA[Defines which Patient Attributes in received HL7
ORM messages are considered for selecting existing Patient records in the
archive.
<p>
Format: 'pid'['?']',issuer'['?'][',' ['['] <i>demograhic-matches</i> [']'] ]
<br/><i>demograhic-matches</i> ::= <i>demograhic-match</i>['|' ...]
<br/><i>demograhic-match</i> ::= [<i>ignore</i>',']<i>demograhic-fields</i>
<br/><i>ignore</i> ::= 'ignore("' <i>regular-expression</i> '")'
<br/><i>demograhic-fields</i> ::= <i>demograhic-field</i>['?'][',' ...]
<br/><i>demograhic-field</i> ::= 'familyname'['(1)'] | 'givenname'['(1)'] | 'middlename'['(1)'] | 'nameprefix'['(1)'] | 'namesuffix'['(1)'] | birthdate | sex
<p>
Multiple alternative <i>demograhic-matches</i> can be specified using '|' as
delimiter.
<p>Substrings specified by 'ignore("' <i>regular-expression</i> '")' will be ignored for matching patient name
components.
<p>
A '(1)' suffix of the attribute name specifies that only the first character
need to match.
<p>
A question mark('?') after a field name specifies that a missing value in
received HL7 ORM messages will match with any value for that field in
existing Patient Records, as Patient Records with missing values for that field
will match with any value for that field in received HL7 ORM messages. Field
names without question marks specifies, that HL7 ORM messages without values
for such fields will not match any existing Patient Record, and Patient Records
without values for such fields will not get selected on receive of any HL7 ORM
message.
<p>
Surrounding <i>demograhic-match</i> by brackets('[]') defines, that
demographic fields shall *not* be considered for the selection of an existing
Patient record, if the Patient ID is qualified by an Issuer/Authority in the
HL7 ORM message *and* in the matching Patient Record.
<p><b>Attention:</b>
<br/>Configuration of considertion of demographic fields for the selection of
existing Patient records disables the update of such Patient Demographics
attributes by HL7 ORM messages! => Only change the default value of
<code>pid,issuer?</code>, if you know, what you are doing!
<p><b>Warning:</b>Improper configuration may cause MWL assignments to wrong patient.<br/>
<p>Default: <code>pid,issuer?</code>
]]>
</description>
<name>PatientMatching</name>
<type>java.lang.String</type>
<descriptors>
<value value="pid,issuer?" />
</descriptors>
</attribute>
<attribute access="read-write" getMethod="isDebugMode" setMethod="setDebugMode">
<description>Enable DEBUG mode. No MWL query will be performed but the Query Dataset will be logged!
</description>
<name>DebugMode</name>
<type>boolean</type>
<descriptors>
<value value="false"/>
</descriptors>
</attribute>
<attribute access="read-only"
getMethod="isRunning">
<description>Current state if replication task is running. Used to avoid concurrency!
</description>
<name>isRunning</name>
<type>boolean</type>
</attribute>
<attribute access="read-write" getMethod="getPriority" setMethod="setPriority">
<description>Priority for C-Find requests. Enumerated Values: LOW, MEDIUM, HIGH.
Only effective for queries of a remote Modality Worlist SCP which actual
interprets the priority attribute in the DICOM C-FIND request.
</description>
<name>Priority</name>
<type>java.lang.String</type>
<descriptors>
<value value="MEDIUM"/>
</descriptors>
</attribute>
<attribute access="read-write"
getMethod="getTemplatesServiceName"
setMethod="setTemplatesServiceName">
<description>Used internally. Do NOT modify.
</description>
<name>TemplatesServiceName</name>
<type>javax.management.ObjectName</type>
</attribute>
<attribute access="read-write"
getMethod="getSchedulerServiceName"
setMethod="setSchedulerServiceName">
<description>Used internally. Do NOT modify.
</description>
<name>SchedulerServiceName</name>
<type>javax.management.ObjectName</type>
</attribute>
<attribute access="read-write"
getMethod="getTimerIDMwlReplica"
setMethod="setTimerIDMwlReplica">
<description>Used internally. Do NOT modify.
</description>
<name>TimerID</name>
<type>java.lang.String</type>
<descriptors>
<value value="TimerIDMwlReplica"/>
</descriptors>
</attribute>
<attribute access="read-only" getMethod="getErrorCount" >
<description>ErrorCount since last reset.
</description>
<name>ErrorCount</name>
<type>int</type>
</attribute>
<attribute access="read-only" getMethod="getTotalErrorCount" >
<description>ErrorCount since service start.
</description>
<name>TotalErrorCount</name>
<type>int</type>
</attribute>
<!-- Operations -->
<operation impact="ACTION">
<description>Replicate modality worklist entries for given date.
</description>
<name>replicateMWLEntriesForDate</name>
<parameter>
<description>AET of MWL SCP to query. (null means configured calledAET - must be configured in AE Managment!)</description>
<name>aet</name>
<type>java.lang.String</type>
</parameter>
<parameter>
<description>Date for which MWL items should be replicated. Use yyyy/MM/dd or null for current date.</description>
<name>Date</name>
<type>java.lang.String</type>
</parameter>
<return-type>java.util.List</return-type>
</operation>
<operation impact="ACTION">
<description>Replicate modality worklist entries for given date.
</description>
<name>replicateMWLEntriesForDateRange</name>
<parameter>
<description>AET of MWL SCP to query. (null means configured calledAET - must be configured in AE Managment!)</description>
<name>aet</name>
<type>java.lang.String</type>
</parameter>
<parameter>
<description>Start Date/Time for which MWL items should be replicated. Use 'yyyy/MM/dd hh:mm' or null for current date.</description>
<name>StartDate</name>
<type>java.lang.String</type>
</parameter>
<parameter>
<description>End Date/Time for which MWL items should be replicated. Use 'yyyy/MM/dd hh:mm' or null for current date.</description>
<name>EndDate</name>
<type>java.lang.String</type>
</parameter>
<return-type>java.util.List</return-type>
</operation>
<operation impact="ACTION">
<description>Replicate modality worklist entries of aet for given queryDS.
(MWL C-FIND Request Dataset)
</description>
<name>replicateMWLEntries</name>
<parameter>
<description>AET of MWL SCP to query. (must be configured in AE Managment!)</description>
<name>aet</name>
<type>java.lang.String</type>
</parameter>
<parameter>
<description><![CDATA[Dataset for MWL C-Find. <br/>
Use <null> to use a Search Dataset with almost all
MWL attributes as return attributes, and matching SPS Start Date
for current date.
]]></description>
<name>queryDS</name>
<type>org.dcm4che.data.Dataset</type>
</parameter>
<return-type>java.util.List</return-type>
</operation>
<operation impact="ACTION">
<description>Show error history.
</description>
<name>showErrorHistory</name>
<return-type>java.lang.String</return-type>
</operation>
<operation impact="ACTION">
<description>Clear error history.
</description>
<name>resetErrorHistory</name>
<return-type>void</return-type>
</operation>
<operation impact="ACTION">
<description>The start lifecycle operation.
</description>
<name>start</name>
<return-type>void</return-type>
</operation>
<operation impact="ACTION">
<description>The stop lifecycle operation.
</description>
<name>stop</name>
<return-type>void</return-type>
</operation>
</mbean>