Created
January 20, 2015 22:01
-
-
Save jnimmo/5721f27e95f9b6607c18 to your computer and use it in GitHub Desktop.
MirthConnect Channel - Mindray Ultrasound DICOM to HL7 message for Intrahealth Profile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<channel version="3.1.1"> | |
<id>b5e5f65c-36c8-4b8c-bb67-ec4db347e603</id> | |
<nextMetaDataId>5</nextMetaDataId> | |
<name>Mindray Ultrasound to Profile</name> | |
<description>Accepts DICOM images, builds a HL7 file and embeds the images as JPEGs ready for automatic import to Profile</description> | |
<enabled>true</enabled> | |
<lastModified> | |
<time>1419210099205</time> | |
<timezone>Pacific/Auckland</timezone> | |
</lastModified> | |
<revision>71</revision> | |
<sourceConnector version="3.1.1"> | |
<metaDataId>0</metaDataId> | |
<name>sourceConnector</name> | |
<properties class="com.mirth.connect.connectors.dimse.DICOMReceiverProperties" version="3.1.1"> | |
<pluginProperties/> | |
<listenerConnectorProperties version="3.1.1"> | |
<host>0.0.0.0</host> | |
<port>104</port> | |
</listenerConnectorProperties> | |
<sourceConnectorProperties version="3.1.1"> | |
<responseVariable>None</responseVariable> | |
<respondAfterProcessing>true</respondAfterProcessing> | |
<processBatch>false</processBatch> | |
<firstResponse>false</firstResponse> | |
</sourceConnectorProperties> | |
<applicationEntity>MIRTH</applicationEntity> | |
<localHost></localHost> | |
<localPort></localPort> | |
<localApplicationEntity></localApplicationEntity> | |
<soCloseDelay>50</soCloseDelay> | |
<releaseTo>5</releaseTo> | |
<requestTo>5</requestTo> | |
<idleTo>60</idleTo> | |
<reaper>10</reaper> | |
<rspDelay>0</rspDelay> | |
<pdv1>false</pdv1> | |
<sndpdulen>16</sndpdulen> | |
<rcvpdulen>16</rcvpdulen> | |
<async>0</async> | |
<bigEndian>false</bigEndian> | |
<bufSize>1</bufSize> | |
<defts>false</defts> | |
<dest></dest> | |
<nativeData>false</nativeData> | |
<sorcvbuf>0</sorcvbuf> | |
<sosndbuf>0</sosndbuf> | |
<tcpDelay>true</tcpDelay> | |
<keyPW></keyPW> | |
<keyStore></keyStore> | |
<keyStorePW></keyStorePW> | |
<noClientAuth>true</noClientAuth> | |
<nossl2>true</nossl2> | |
<tls>notls</tls> | |
<trustStore></trustStore> | |
<trustStorePW></trustStorePW> | |
</properties> | |
<transformer version="3.1.1"> | |
<steps/> | |
<inboundDataType>DICOM</inboundDataType> | |
<outboundDataType>DICOM</outboundDataType> | |
<inboundProperties class="com.mirth.connect.plugins.datatypes.dicom.DICOMDataTypeProperties" version="3.1.1"/> | |
<outboundProperties class="com.mirth.connect.plugins.datatypes.dicom.DICOMDataTypeProperties" version="3.1.1"/> | |
</transformer> | |
<filter version="3.1.1"> | |
<rules/> | |
</filter> | |
<transportName>DICOM Listener</transportName> | |
<mode>SOURCE</mode> | |
<enabled>true</enabled> | |
<waitForPrevious>true</waitForPrevious> | |
</sourceConnector> | |
<destinationConnectors> | |
<connector version="3.1.1"> | |
<metaDataId>2</metaDataId> | |
<name>Write HL7</name> | |
<properties class="com.mirth.connect.connectors.file.FileDispatcherProperties" version="3.1.1"> | |
<pluginProperties/> | |
<destinationConnectorProperties version="3.1.1"> | |
<queueEnabled>false</queueEnabled> | |
<sendFirst>false</sendFirst> | |
<retryIntervalMillis>10000</retryIntervalMillis> | |
<regenerateTemplate>false</regenerateTemplate> | |
<retryCount>0</retryCount> | |
<rotate>false</rotate> | |
<threadCount>1</threadCount> | |
<validateResponse>false</validateResponse> | |
</destinationConnectorProperties> | |
<scheme>FILE</scheme> | |
<host>C:/HLINK/HL7_in/RAD</host> | |
<outputPattern>Mindray_${message.messageId}.hl7</outputPattern> | |
<anonymous>true</anonymous> | |
<username>anonymous</username> | |
<password>anonymous</password> | |
<timeout>10000</timeout> | |
<secure>true</secure> | |
<passive>true</passive> | |
<validateConnection>true</validateConnection> | |
<outputAppend>false</outputAppend> | |
<errorOnExists>false</errorOnExists> | |
<temporary>false</temporary> | |
<binary>false</binary> | |
<charsetEncoding>DEFAULT_ENCODING</charsetEncoding> | |
<template>${message.encodedData}</template> | |
</properties> | |
<transformer version="3.1.1"> | |
<steps> | |
<step> | |
<sequenceNumber>0</sequenceNumber> | |
<name>Patient_Name</name> | |
<script>var mapping;try { mapping = msg['tag00100010'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('Patient_Name', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>Patient_Name</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag00100010'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>1</sequenceNumber> | |
<name>Patient_DOB</name> | |
<script>var mapping;try { mapping = msg['tag00100030'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('Patient_DOB', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>Patient_DOB</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag00100030'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>2</sequenceNumber> | |
<name>Patient_OtherID</name> | |
<script>var mapping;try { mapping = msg['tag00101000'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('Patient_OtherID', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>Patient_OtherID</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag00101000'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>3</sequenceNumber> | |
<name>Patient_NHI</name> | |
<script>var mapping;try { mapping = msg['tag00100020'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('Patient_NHI', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>Patient_NHI</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag00100020'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>4</sequenceNumber> | |
<name>Patient_Sex</name> | |
<script>var mapping;try { mapping = msg['tag00100040'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('Patient_Sex', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>Patient_Sex</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag00100040'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>5</sequenceNumber> | |
<name>Ultrasound_Type</name> | |
<script>var mapping;try { mapping = msg['tag00185020'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('Ultrasound_Type', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>Ultrasound_Type</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag00185020'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>6</sequenceNumber> | |
<name>Ultrasound_Datetime</name> | |
<script>var mapping;try { mapping = msg['tag00200010'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('Ultrasound_Datetime', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>Ultrasound_Datetime</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag00200010'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>7</sequenceNumber> | |
<name>Study_UID</name> | |
<script>var mapping;try { mapping = msg['tag0020000D'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('Study_UID', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>Study_UID</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag0020000D'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>8</sequenceNumber> | |
<name>FileMetaVersion</name> | |
<script>var mapping;try { mapping = msg['tag00020003'].toString(); }catch (e) { logger.error(e); mapping = '';}channelMap.put('FileMetaVersion', validate( mapping , '', new Array()));</script> | |
<type>Mapper</type> | |
<data> | |
<entry> | |
<string>Variable</string> | |
<string>FileMetaVersion</string> | |
</entry> | |
<entry> | |
<string>Mapping</string> | |
<string>msg['tag00020003'].toString()</string> | |
</entry> | |
<entry> | |
<string>DefaultValue</string> | |
<string></string> | |
</entry> | |
<entry> | |
<string>RegularExpressions</string> | |
<list/> | |
</entry> | |
<entry> | |
<string>isGlobal</string> | |
<string>channel</string> | |
</entry> | |
</data> | |
</step> | |
<step> | |
<sequenceNumber>9</sequenceNumber> | |
<name>Write HL7 for Profile</name> | |
<script>var currentdate=DateUtil.getCurrentDate("yyyyMMddHHmmss"); | |
//Adding data to MSH Fields | |
tmp['MSH']['MSH.7']['MSH.7.1'] = currentdate; | |
tmp['MSH']['MSH.10']['MSH.10.1'] = channelMap.get('Study_UID'); | |
tmp['RF1']['RF1.3']['RF1.3.2'] = "US " + channelMap.get('Ultrasound_Type'); | |
tmp['RF1']['RF1.6']['RF1.6.1'] = channelMap.get('Study_UID'); | |
//Adding data to PID Fields | |
tmp['PID']['PID.2']['PID.2.1'] = channelMap.get('Patient_NHI'); | |
tmp['PID']['PID.3']['PID.3.1'] = channelMap.get('Patient_OtherID'); | |
//Set the patient name as the NHI if the name is missing | |
if (channelMap.get('Patient_Name') == '') { | |
tmp['PID']['PID.5']['PID.5.1'] = channelMap.get('Patient_NHI'); | |
tmp['PID']['PID.5']['PID.5.2'] = "NHI"; | |
} | |
else { | |
tmp['PID']['PID.5'] = channelMap.get('Patient_Name'); | |
} | |
tmp['PID']['PID.7']['PID.7.1'] = channelMap.get('Patient_DOB'); | |
tmp['PID']['PID.8']['PID.8.1'] = channelMap.get('Patient_Sex'); | |
//Adding data to ORC and OBR Fields | |
tmp['ORC']['ORC.2']['ORC.2.1'] = "F1U080:MIRTH:1:" + channelMap.get('Study_UID'); | |
tmp['OBR']['OBR.7']['OBR.7.1'] = channelMap.get('Ultrasound_Datetime'); | |
if (DICOMUtil.getSliceCount(connectorMessage) > 0) { | |
// Need to strip CR/LF from the JPEG file | |
var jpegData = DICOMUtil.convertDICOM('JPEG', connectorMessage); | |
tmp['OBX']['OBX.5']['OBX.5.5'] = jpegData.replaceAll("\\r\\n", ""); | |
} | |
tmp['PV1']['PV1.19']['PV1.19.1']=channelMap.get('Study_UID');</script> | |
<type>JavaScript</type> | |
<data> | |
<entry> | |
<string>Script</string> | |
<string>var currentdate=DateUtil.getCurrentDate("yyyyMMddHHmmss"); | |
//Adding data to MSH Fields | |
tmp['MSH']['MSH.7']['MSH.7.1'] = currentdate; | |
tmp['MSH']['MSH.10']['MSH.10.1'] = channelMap.get('Study_UID'); | |
tmp['RF1']['RF1.3']['RF1.3.2'] = "US " + channelMap.get('Ultrasound_Type'); | |
tmp['RF1']['RF1.6']['RF1.6.1'] = channelMap.get('Study_UID'); | |
//Adding data to PID Fields | |
tmp['PID']['PID.2']['PID.2.1'] = channelMap.get('Patient_NHI'); | |
tmp['PID']['PID.3']['PID.3.1'] = channelMap.get('Patient_OtherID'); | |
//Set the patient name as the NHI if the name is missing | |
if (channelMap.get('Patient_Name') == '') { | |
tmp['PID']['PID.5']['PID.5.1'] = channelMap.get('Patient_NHI'); | |
tmp['PID']['PID.5']['PID.5.2'] = "NHI"; | |
} | |
else { | |
tmp['PID']['PID.5'] = channelMap.get('Patient_Name'); | |
} | |
tmp['PID']['PID.7']['PID.7.1'] = channelMap.get('Patient_DOB'); | |
tmp['PID']['PID.8']['PID.8.1'] = channelMap.get('Patient_Sex'); | |
//Adding data to ORC and OBR Fields | |
tmp['ORC']['ORC.2']['ORC.2.1'] = "F1U080:MIRTH:1:" + channelMap.get('Study_UID'); | |
tmp['OBR']['OBR.7']['OBR.7.1'] = channelMap.get('Ultrasound_Datetime'); | |
if (DICOMUtil.getSliceCount(connectorMessage) > 0) { | |
// Need to strip CR/LF from the JPEG file | |
var jpegData = DICOMUtil.convertDICOM('JPEG', connectorMessage); | |
tmp['OBX']['OBX.5']['OBX.5.5'] = jpegData.replaceAll("\\r\\n", ""); | |
} | |
tmp['PV1']['PV1.19']['PV1.19.1']=channelMap.get('Study_UID');</string> | |
</entry> | |
</data> | |
</step> | |
</steps> | |
<inboundTemplate encoding="base64"></inboundTemplate> | |
<outboundTemplate encoding="base64">TVNIfF5+XCZ8TUlSVEh8dXJvbGFzc298UHJvZmlsZXx1cm9sYXNzb3wyMDAwMDEwMTAwMDAwMHx8 | |
UkVGXkkxMl5SRUZfSTEyfHxQfDIuNF5OWkxeMS4wDQpSRjF8fHxDTE5eVWx0cmFzb3VuZHx8fFN0 | |
dWR5SUQKUFJEfFJUfF5Bc3NvY2lhdGVzXlVyb2xvZ3l8fHx8fA1QSUR8fHxOSEl8fHx8fE0NT1JD | |
fElOfFBsYWNlck9yZGVyTnVtYmVyfHx8fHx8fHx8fF5Bc3NvY2lhdGVzXlVyb2xvZ3l8fHx8QVRU | |
Ck9CUnx8UGxhY2VyT3JkZXJOdW1iZXJ8fExJVHx8fHx8fHx8fHx8fF5Bc3NvY2lhdGVzXlVyb2xv | |
Z3l8fHx8fHx8fHxGDU9CWHx8RUR8SlBFR15EaXNwbGF5IEZvcm1hdCBJbiBKUEVHXjk5TlpBVEZ8 | |
fF5eXkJhc2U2NF5EQVRBfHx8fHx8QwpQVjF8fE98fHx8fHx8fFM3MHx8fHx8fHx8fFN0dWR5SUQ= | |
</outboundTemplate> | |
<inboundDataType>DICOM</inboundDataType> | |
<outboundDataType>HL7V2</outboundDataType> | |
<inboundProperties class="com.mirth.connect.plugins.datatypes.dicom.DICOMDataTypeProperties" version="3.1.1"/> | |
<outboundProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2DataTypeProperties" version="3.1.1"> | |
<serializationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2SerializationProperties" version="3.1.1"> | |
<handleRepetitions>true</handleRepetitions> | |
<handleSubcomponents>true</handleSubcomponents> | |
<useStrictParser>false</useStrictParser> | |
<useStrictValidation>false</useStrictValidation> | |
<stripNamespaces>true</stripNamespaces> | |
<segmentDelimiter>\r</segmentDelimiter> | |
<convertLineBreaks>true</convertLineBreaks> | |
</serializationProperties> | |
<deserializationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2DeserializationProperties" version="3.1.1"> | |
<useStrictParser>false</useStrictParser> | |
<useStrictValidation>false</useStrictValidation> | |
<segmentDelimiter>\r</segmentDelimiter> | |
</deserializationProperties> | |
<batchProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2BatchProperties" version="3.1.1"> | |
<splitType>MSH_Segment</splitType> | |
<batchScript></batchScript> | |
</batchProperties> | |
<responseGenerationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2ResponseGenerationProperties" version="3.1.1"> | |
<segmentDelimiter>\r</segmentDelimiter> | |
<successfulACKCode>AA</successfulACKCode> | |
<successfulACKMessage></successfulACKMessage> | |
<errorACKCode>AE</errorACKCode> | |
<errorACKMessage>An Error Occurred Processing Message.</errorACKMessage> | |
<rejectedACKCode>AR</rejectedACKCode> | |
<rejectedACKMessage>Message Rejected.</rejectedACKMessage> | |
<msh15ACKAccept>false</msh15ACKAccept> | |
</responseGenerationProperties> | |
<responseValidationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2ResponseValidationProperties" version="3.1.1"> | |
<successfulACKCode>AA,CA</successfulACKCode> | |
<errorACKCode>AE,CE</errorACKCode> | |
<rejectedACKCode>AR,CR</rejectedACKCode> | |
</responseValidationProperties> | |
</outboundProperties> | |
</transformer> | |
<responseTransformer version="3.1.1"> | |
<steps/> | |
<inboundDataType>HL7V2</inboundDataType> | |
<outboundDataType>HL7V2</outboundDataType> | |
<inboundProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2DataTypeProperties" version="3.1.1"> | |
<serializationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2SerializationProperties" version="3.1.1"> | |
<handleRepetitions>true</handleRepetitions> | |
<handleSubcomponents>true</handleSubcomponents> | |
<useStrictParser>false</useStrictParser> | |
<useStrictValidation>false</useStrictValidation> | |
<stripNamespaces>true</stripNamespaces> | |
<segmentDelimiter>\r</segmentDelimiter> | |
<convertLineBreaks>true</convertLineBreaks> | |
</serializationProperties> | |
<deserializationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2DeserializationProperties" version="3.1.1"> | |
<useStrictParser>false</useStrictParser> | |
<useStrictValidation>false</useStrictValidation> | |
<segmentDelimiter>\r</segmentDelimiter> | |
</deserializationProperties> | |
<batchProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2BatchProperties" version="3.1.1"> | |
<splitType>MSH_Segment</splitType> | |
<batchScript></batchScript> | |
</batchProperties> | |
<responseGenerationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2ResponseGenerationProperties" version="3.1.1"> | |
<segmentDelimiter>\r</segmentDelimiter> | |
<successfulACKCode>AA</successfulACKCode> | |
<successfulACKMessage></successfulACKMessage> | |
<errorACKCode>AE</errorACKCode> | |
<errorACKMessage>An Error Occurred Processing Message.</errorACKMessage> | |
<rejectedACKCode>AR</rejectedACKCode> | |
<rejectedACKMessage>Message Rejected.</rejectedACKMessage> | |
<msh15ACKAccept>false</msh15ACKAccept> | |
</responseGenerationProperties> | |
<responseValidationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2ResponseValidationProperties" version="3.1.1"> | |
<successfulACKCode>AA,CA</successfulACKCode> | |
<errorACKCode>AE,CE</errorACKCode> | |
<rejectedACKCode>AR,CR</rejectedACKCode> | |
</responseValidationProperties> | |
</inboundProperties> | |
<outboundProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2DataTypeProperties" version="3.1.1"> | |
<serializationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2SerializationProperties" version="3.1.1"> | |
<handleRepetitions>true</handleRepetitions> | |
<handleSubcomponents>true</handleSubcomponents> | |
<useStrictParser>false</useStrictParser> | |
<useStrictValidation>false</useStrictValidation> | |
<stripNamespaces>true</stripNamespaces> | |
<segmentDelimiter>\r</segmentDelimiter> | |
<convertLineBreaks>true</convertLineBreaks> | |
</serializationProperties> | |
<deserializationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2DeserializationProperties" version="3.1.1"> | |
<useStrictParser>false</useStrictParser> | |
<useStrictValidation>false</useStrictValidation> | |
<segmentDelimiter>\r</segmentDelimiter> | |
</deserializationProperties> | |
<batchProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2BatchProperties" version="3.1.1"> | |
<splitType>MSH_Segment</splitType> | |
<batchScript></batchScript> | |
</batchProperties> | |
<responseGenerationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2ResponseGenerationProperties" version="3.1.1"> | |
<segmentDelimiter>\r</segmentDelimiter> | |
<successfulACKCode>AA</successfulACKCode> | |
<successfulACKMessage></successfulACKMessage> | |
<errorACKCode>AE</errorACKCode> | |
<errorACKMessage>An Error Occurred Processing Message.</errorACKMessage> | |
<rejectedACKCode>AR</rejectedACKCode> | |
<rejectedACKMessage>Message Rejected.</rejectedACKMessage> | |
<msh15ACKAccept>false</msh15ACKAccept> | |
</responseGenerationProperties> | |
<responseValidationProperties class="com.mirth.connect.plugins.datatypes.hl7v2.HL7v2ResponseValidationProperties" version="3.1.1"> | |
<successfulACKCode>AA,CA</successfulACKCode> | |
<errorACKCode>AE,CE</errorACKCode> | |
<rejectedACKCode>AR,CR</rejectedACKCode> | |
</responseValidationProperties> | |
</outboundProperties> | |
</responseTransformer> | |
<filter version="3.1.1"> | |
<rules> | |
<rule> | |
<sequenceNumber>0</sequenceNumber> | |
<name>Check if study contains at least the patient name OR NHI and DOB</name> | |
<data> | |
<entry> | |
<string>Script</string> | |
<string>// Require at least one identifier | |
var ptName = msg['tag00100010'].toString(); | |
var ptOtherID = msg['tag00101000'].toString(); | |
var ptNHI = msg['tag00100020'].toString(); | |
var ptDOB = msg['tag00100030'].toString(); | |
var acceptMsg = false; | |
if (ptName.length > 3 && (ptNHI.length == 7 || ptOtherID.length == 7 || ptDOB.length == 8)) | |
{ | |
acceptMsg = true; | |
} | |
else | |
{ | |
alerts.sendAlert("An ultrasound image was discarded because it was missing a name or NHI"); | |
} | |
return acceptMsg;</string> | |
</entry> | |
</data> | |
<type>JavaScript</type> | |
<script>// Require at least one identifier | |
var ptName = msg['tag00100010'].toString(); | |
var ptOtherID = msg['tag00101000'].toString(); | |
var ptNHI = msg['tag00100020'].toString(); | |
var ptDOB = msg['tag00100030'].toString(); | |
var acceptMsg = false; | |
if (ptName.length > 3 && (ptNHI.length == 7 || ptOtherID.length == 7 || ptDOB.length == 8)) | |
{ | |
acceptMsg = true; | |
} | |
else | |
{ | |
alerts.sendAlert("An ultrasound image was discarded because it was missing a name or NHI"); | |
} | |
return acceptMsg;</script> | |
<operator>NONE</operator> | |
</rule> | |
</rules> | |
</filter> | |
<transportName>File Writer</transportName> | |
<mode>DESTINATION</mode> | |
<enabled>true</enabled> | |
<waitForPrevious>true</waitForPrevious> | |
</connector> | |
<connector version="3.1.1"> | |
<metaDataId>4</metaDataId> | |
<name>DICOM Mapper</name> | |
<properties class="com.mirth.connect.connectors.vm.VmDispatcherProperties" version="3.1.1"> | |
<pluginProperties/> | |
<destinationConnectorProperties version="3.1.1"> | |
<queueEnabled>false</queueEnabled> | |
<sendFirst>false</sendFirst> | |
<retryIntervalMillis>10000</retryIntervalMillis> | |
<regenerateTemplate>false</regenerateTemplate> | |
<retryCount>0</retryCount> | |
<rotate>false</rotate> | |
<threadCount>1</threadCount> | |
<validateResponse>false</validateResponse> | |
</destinationConnectorProperties> | |
<channelId>none</channelId> | |
<channelTemplate>${message.encodedData}</channelTemplate> | |
<mapVariables/> | |
</properties> | |
<transformer version="3.1.1"> | |
<steps/> | |
<inboundTemplate encoding="base64"></inboundTemplate> | |
<inboundDataType>DICOM</inboundDataType> | |
<outboundDataType>XML</outboundDataType> | |
<inboundProperties class="com.mirth.connect.plugins.datatypes.dicom.DICOMDataTypeProperties" version="3.1.1"/> | |
<outboundProperties class="com.mirth.connect.plugins.datatypes.xml.XMLDataTypeProperties" version="3.1.1"> | |
<serializationProperties class="com.mirth.connect.plugins.datatypes.xml.XMLSerializationProperties" version="3.1.1"> | |
<stripNamespaces>true</stripNamespaces> | |
</serializationProperties> | |
<batchProperties class="com.mirth.connect.plugins.datatypes.xml.XMLBatchProperties" version="3.1.1"> | |
<splitType>Element_Name</splitType> | |
<elementName></elementName> | |
<level>1</level> | |
<query></query> | |
<batchScript></batchScript> | |
</batchProperties> | |
</outboundProperties> | |
</transformer> | |
<responseTransformer version="3.1.1"> | |
<steps/> | |
<inboundDataType>XML</inboundDataType> | |
<outboundDataType>XML</outboundDataType> | |
<inboundProperties class="com.mirth.connect.plugins.datatypes.xml.XMLDataTypeProperties" version="3.1.1"> | |
<serializationProperties class="com.mirth.connect.plugins.datatypes.xml.XMLSerializationProperties" version="3.1.1"> | |
<stripNamespaces>true</stripNamespaces> | |
</serializationProperties> | |
<batchProperties class="com.mirth.connect.plugins.datatypes.xml.XMLBatchProperties" version="3.1.1"> | |
<splitType>Element_Name</splitType> | |
<elementName></elementName> | |
<level>1</level> | |
<query></query> | |
<batchScript></batchScript> | |
</batchProperties> | |
</inboundProperties> | |
<outboundProperties class="com.mirth.connect.plugins.datatypes.xml.XMLDataTypeProperties" version="3.1.1"> | |
<serializationProperties class="com.mirth.connect.plugins.datatypes.xml.XMLSerializationProperties" version="3.1.1"> | |
<stripNamespaces>true</stripNamespaces> | |
</serializationProperties> | |
<batchProperties class="com.mirth.connect.plugins.datatypes.xml.XMLBatchProperties" version="3.1.1"> | |
<splitType>Element_Name</splitType> | |
<elementName></elementName> | |
<level>1</level> | |
<query></query> | |
<batchScript></batchScript> | |
</batchProperties> | |
</outboundProperties> | |
</responseTransformer> | |
<filter version="3.1.1"> | |
<rules> | |
<rule> | |
<sequenceNumber>0</sequenceNumber> | |
<name>Never save</name> | |
<data> | |
<entry> | |
<string>Script</string> | |
<string>return false;</string> | |
</entry> | |
</data> | |
<type>JavaScript</type> | |
<script>return false;</script> | |
<operator>NONE</operator> | |
</rule> | |
</rules> | |
</filter> | |
<transportName>Channel Writer</transportName> | |
<mode>DESTINATION</mode> | |
<enabled>false</enabled> | |
<waitForPrevious>true</waitForPrevious> | |
</connector> | |
</destinationConnectors> | |
<preprocessingScript>// Modify the message variable below to pre process data | |
return message;</preprocessingScript> | |
<postprocessingScript>// This script executes once after a message has been processed | |
// Responses returned from here will be stored as "Postprocessor" in the response map | |
return;</postprocessingScript> | |
<deployScript>// This script executes once when the channel is deployed | |
// You only have access to the globalMap and globalChannelMap here to persist data | |
return;</deployScript> | |
<undeployScript>// This script executes once when the channel is undeployed | |
// You only have access to the globalMap and globalChannelMap here to persist data | |
return;</undeployScript> | |
<properties version="3.1.1"> | |
<clearGlobalChannelMap>true</clearGlobalChannelMap> | |
<messageStorageMode>DEVELOPMENT</messageStorageMode> | |
<encryptData>false</encryptData> | |
<removeContentOnCompletion>false</removeContentOnCompletion> | |
<removeAttachmentsOnCompletion>false</removeAttachmentsOnCompletion> | |
<initialState>STARTED</initialState> | |
<storeAttachments>true</storeAttachments> | |
<tags class="linked-hash-set"/> | |
<metaDataColumns> | |
<metaDataColumn> | |
<name>SOURCE</name> | |
<type>STRING</type> | |
<mappingName>mirth_source</mappingName> | |
</metaDataColumn> | |
<metaDataColumn> | |
<name>TYPE</name> | |
<type>STRING</type> | |
<mappingName>mirth_type</mappingName> | |
</metaDataColumn> | |
</metaDataColumns> | |
<attachmentProperties> | |
<className>com.mirth.connect.server.attachments.DICOMAttachmentHandler</className> | |
<type>DICOM</type> | |
<properties/> | |
</attachmentProperties> | |
<pruneMetaDataDays>180</pruneMetaDataDays> | |
<archiveEnabled>true</archiveEnabled> | |
</properties> | |
</channel> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment