Announcement

Collapse

Mirth Connect 3.12.0 Released!

Mirth Connect 3.12.0 is now available as an appliance update and on our GitHub page. This release includes database performance improvements, improves visual HL7 representation, message pruning, keystore handling, PDF generation, community contributions, and fixes several security vulnerabilities. This release also contains many improvements to commercial extensions. See the release notes for the list of fixes and updates.

Download | See What's New | Upgrade Guide | Release Notes

For discussion on this release, see this thread.
See more
See less

DICOM to HL7 ?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • DICOM to HL7 ?

    Hello everyone,

    How can I convert DICOM segments to HL7 ?

    I know how to manipulate HL7 messages with javascript but DICOM is not documented for javascript, maybe I missed something.

    Thanks ! :cheer:

  • #2
    ReICOM to HL7 ?

    I wrote up and have a screencast developed for a DICOM 2 Database example here:

    http://www.clubpacswestmi.net/articl...se-via-mirth-2,

    It can easily be adapted by utilizing a destination template of hl7 and using the variables that were extracted from the headers.

    There is also a 1.7 example channel in the above post to import and play with.

    Hope this helps...

    Comment


    • #3
      ReICOM to HL7 ?

      Hello Sween,

      Thank you very much for your help, I am going to watch your webcast but I noticed that the channel link is dead (http://www.clubpacswestmi.net/mirth/...b/DICOM2DB.xml)

      Comment


      • #4
        ReICOM to HL7 ?

        whoops, sorry, fixed.

        Comment


        • #5
          Hi
          I am facing the same task as magikbanana: converting a DICOM message into an HL7 one.
          The link with the proposed solution is now broken. I realise this post is old, but does anyone has another useful reference for these?
          Thanks in advance!

          Comment


          • #6
            Originally posted by magikbanana View Post
            Hello everyone,

            How can I convert DICOM segments to HL7 ?

            I know how to manipulate HL7 messages with javascript but DICOM is not documented for javascript, maybe I missed something.

            Thanks ! :cheer:
            any one found a way to convert dicom to hl7 or hl7 to dicom in mirth connect

            Comment


            • #7
              If you have you channel storage set to development, and at least one transformer step (it can be a javascript step that doesn't do anything at all,) you'll be able to see the xml representation of your dicom message as the "transformed" content in the message browser.

              I took a random DICOM sample I found on the internet, and this is what it gave me:

              Code:
              <dicom>
                  <tag00020000 len="4" tag="00020000" vr="UL">194</tag00020000>
                  <tag00020001 len="2" tag="00020001" vr="OB">00\01</tag00020001>
                  <tag00020002 len="26" tag="00020002" vr="UI">1.2.840.10008.5.1.4.1.1.2</tag00020002>
                  <tag00020003 len="60" tag="00020003" vr="UI">2.16.840.1.113662.2.1.4519.41582.4105152.419990505.410523251</tag00020003>
                  <tag00020010 len="20" tag="00020010" vr="UI">1.2.840.10008.1.2.1</tag00020010>
                  <tag00020012 len="24" tag="00020012" vr="UI">2.16.840.1.113662.2.1.1</tag00020012>
                  <tag00020016 len="10" tag="00020016" vr="AE">PHOENIXSCP</tag00020016>
                  <tag00080005 len="10" tag="00080005" vr="CS">ISO_IR 100</tag00080005>
                  <tag00080008 len="22" tag="00080008" vr="CS">ORIGINAL\PRIMARY\AXIAL</tag00080008>
                  <tag00080012 len="10" tag="00080012" vr="DA">1999.05.05</tag00080012>
                  <tag00080013 len="16" tag="00080013" vr="TM">10:52:34.530000</tag00080013>
                  <tag00080016 len="26" tag="00080016" vr="UI">1.2.840.10008.5.1.4.1.1.2</tag00080016>
                  <tag00080018 len="60" tag="00080018" vr="UI">2.16.840.1.113662.2.1.4519.41582.4105152.419990505.410523251</tag00080018>
                  <tag00080020 len="10" tag="00080020" vr="DA">1999.05.05</tag00080020>
                  <tag00080021 len="10" tag="00080021" vr="DA">1999.05.05</tag00080021>
                  <tag00080022 len="10" tag="00080022" vr="DA">1999.05.05</tag00080022>
                  <tag00080023 len="10" tag="00080023" vr="DA">1999.05.05</tag00080023>
                  <tag00080030 len="16" tag="00080030" vr="TM">10:52:34.530000</tag00080030>
                  <tag00080031 len="16" tag="00080031" vr="TM">10:52:34.530000</tag00080031>
                  <tag00080032 len="16" tag="00080032" vr="TM">10:52:34.530000</tag00080032>
                  <tag00080033 len="16" tag="00080033" vr="TM">10:52:32.510000</tag00080033>
                  <tag00080060 len="2" tag="00080060" vr="CS">CT</tag00080060>
                  <tag00080070 len="26" tag="00080070" vr="LO">Picker International, Inc.</tag00080070>
                  <tag00080080 len="12" tag="00080080" vr="LO">105 HOSPITAL</tag00080080>
                  <tag00080090 len="10" tag="00080090" vr="PN">Anonymized</tag00080090>
                  <tag00081010 len="10" tag="00081010" vr="SH">Picker CT</tag00081010>
                  <tag00081030 len="60" tag="00081030" vr="LO"/>
                  <tag00081050 len="10" tag="00081050" vr="PN">Anonymized</tag00081050>
                  <tag00081060 len="10" tag="00081060" vr="PN">Anonymized</tag00081060>
                  <tag00081070 len="10" tag="00081070" vr="PN">Anonymized</tag00081070>
                  <tag00081090 len="6" tag="00081090" vr="LO">PQ5000</tag00081090>
                  <tag00100010 len="10" tag="00100010" vr="PN">Anonymized</tag00100010>
                  <tag00180010 len="2" tag="00180010" vr="LO">C-</tag00180010>
                  <tag00180050 len="4" tag="00180050" vr="DS">10.0</tag00180050>
                  <tag00180060 len="4" tag="00180060" vr="DS">120</tag00180060>
                  <tag00181000 len="4" tag="00181000" vr="LO">519</tag00181000>
                  <tag00181030 len="14" tag="00181030" vr="LO">ADULT BRAIN/U</tag00181030>
                  <tag00181120 len="2" tag="00181120" vr="DS">.0</tag00181120>
                  <tag00181151 len="4" tag="00181151" vr="IS">250</tag00181151>
                  <tag00181152 len="4" tag="00181152" vr="IS">526</tag00181152>
                  <tag00181160 len="2" tag="00181160" vr="SH">0</tag00181160>
                  <tag00185100 len="4" tag="00185100" vr="CS">HFS</tag00185100>
                  <tag0020000D len="48" tag="0020000D" vr="UI">2.16.840.1.113662.2.1.1519.11582.1990505.1105152</tag0020000D>
                  <tag0020000E len="60" tag="0020000E" vr="UI">2.16.840.1.113662.2.1.2519.21582.2990505.2105152.2381633.20</tag0020000E>
                  <tag00200011 len="4" tag="00200011" vr="IS">3513</tag00200011>
                  <tag00200012 len="4" tag="00200012" vr="IS">3513</tag00200012>
                  <tag00200013 len="2" tag="00200013" vr="IS">8</tag00200013>
                  <tag00200020 len="4" tag="00200020" vr="CS">L\P</tag00200020>
                  <tag00200032 len="38" tag="00200032" vr="DS">-1.197656e02\-3.997656e02\-2.800000e02</tag00200032>
                  <tag00200037 len="72" tag="00200037" vr="DS">1.000000e00\0.000000e00\0.000000e00\0.000000e00\1.000000e00\0.000000e00</tag00200037>
                  <tag00200052 len="48" tag="00200052" vr="UI">2.16.840.1.113662.2.1.3519.31582.3990505.3105152</tag00200052>
                  <tag00201041 len="6" tag="00201041" vr="DS">280.00</tag00201041>
                  <tag00280002 len="2" tag="00280002" vr="US">1</tag00280002>
                  <tag00280004 len="12" tag="00280004" vr="CS">MONOCHROME2</tag00280004>
                  <tag00280010 len="2" tag="00280010" vr="US">512</tag00280010>
                  <tag00280011 len="2" tag="00280011" vr="US">512</tag00280011>
                  <tag00280030 len="16" tag="00280030" vr="DS">0.46875\0.46875</tag00280030>
                  <tag00280100 len="2" tag="00280100" vr="US">16</tag00280100>
                  <tag00280101 len="2" tag="00280101" vr="US">16</tag00280101>
                  <tag00280102 len="2" tag="00280102" vr="US">15</tag00280102>
                  <tag00280103 len="2" tag="00280103" vr="US">1</tag00280103>
                  <tag00281050 len="2" tag="00281050" vr="DS">50</tag00281050>
                  <tag00281051 len="2" tag="00281051" vr="DS">75</tag00281051>
                  <tag00281052 len="2" tag="00281052" vr="DS">0</tag00281052>
                  <tag00281053 len="2" tag="00281053" vr="DS">1</tag00281053>
              </dicom>
              Your results can be used as the inbound template of your message, and you can drag-and-drop to an outbound hl7 template.

              Comment


              • #8
                Originally posted by agermano View Post
                If you have you channel storage set to development, and at least one transformer step (it can be a javascript step that doesn't do anything at all,) you'll be able to see the xml representation of your dicom message as the "transformed" content in the message browser.

                I took a random DICOM sample I found on the internet, and this is what it gave me:

                Code:
                <dicom>
                    <tag00020000 len="4" tag="00020000" vr="UL">194</tag00020000>
                    <tag00020001 len="2" tag="00020001" vr="OB">00\01</tag00020001>
                    <tag00020002 len="26" tag="00020002" vr="UI">1.2.840.10008.5.1.4.1.1.2</tag00020002>
                    <tag00020003 len="60" tag="00020003" vr="UI">2.16.840.1.113662.2.1.4519.41582.4105152.419990505.410523251</tag00020003>
                    <tag00020010 len="20" tag="00020010" vr="UI">1.2.840.10008.1.2.1</tag00020010>
                    <tag00020012 len="24" tag="00020012" vr="UI">2.16.840.1.113662.2.1.1</tag00020012>
                    <tag00020016 len="10" tag="00020016" vr="AE">PHOENIXSCP</tag00020016>
                    <tag00080005 len="10" tag="00080005" vr="CS">ISO_IR 100</tag00080005>
                    <tag00080008 len="22" tag="00080008" vr="CS">ORIGINAL\PRIMARY\AXIAL</tag00080008>
                    <tag00080012 len="10" tag="00080012" vr="DA">1999.05.05</tag00080012>
                    <tag00080013 len="16" tag="00080013" vr="TM">10:52:34.530000</tag00080013>
                    <tag00080016 len="26" tag="00080016" vr="UI">1.2.840.10008.5.1.4.1.1.2</tag00080016>
                    <tag00080018 len="60" tag="00080018" vr="UI">2.16.840.1.113662.2.1.4519.41582.4105152.419990505.410523251</tag00080018>
                    <tag00080020 len="10" tag="00080020" vr="DA">1999.05.05</tag00080020>
                    <tag00080021 len="10" tag="00080021" vr="DA">1999.05.05</tag00080021>
                    <tag00080022 len="10" tag="00080022" vr="DA">1999.05.05</tag00080022>
                    <tag00080023 len="10" tag="00080023" vr="DA">1999.05.05</tag00080023>
                    <tag00080030 len="16" tag="00080030" vr="TM">10:52:34.530000</tag00080030>
                    <tag00080031 len="16" tag="00080031" vr="TM">10:52:34.530000</tag00080031>
                    <tag00080032 len="16" tag="00080032" vr="TM">10:52:34.530000</tag00080032>
                    <tag00080033 len="16" tag="00080033" vr="TM">10:52:32.510000</tag00080033>
                    <tag00080060 len="2" tag="00080060" vr="CS">CT</tag00080060>
                    <tag00080070 len="26" tag="00080070" vr="LO">Picker International, Inc.</tag00080070>
                    <tag00080080 len="12" tag="00080080" vr="LO">105 HOSPITAL</tag00080080>
                    <tag00080090 len="10" tag="00080090" vr="PN">Anonymized</tag00080090>
                    <tag00081010 len="10" tag="00081010" vr="SH">Picker CT</tag00081010>
                    <tag00081030 len="60" tag="00081030" vr="LO"/>
                    <tag00081050 len="10" tag="00081050" vr="PN">Anonymized</tag00081050>
                    <tag00081060 len="10" tag="00081060" vr="PN">Anonymized</tag00081060>
                    <tag00081070 len="10" tag="00081070" vr="PN">Anonymized</tag00081070>
                    <tag00081090 len="6" tag="00081090" vr="LO">PQ5000</tag00081090>
                    <tag00100010 len="10" tag="00100010" vr="PN">Anonymized</tag00100010>
                    <tag00180010 len="2" tag="00180010" vr="LO">C-</tag00180010>
                    <tag00180050 len="4" tag="00180050" vr="DS">10.0</tag00180050>
                    <tag00180060 len="4" tag="00180060" vr="DS">120</tag00180060>
                    <tag00181000 len="4" tag="00181000" vr="LO">519</tag00181000>
                    <tag00181030 len="14" tag="00181030" vr="LO">ADULT BRAIN/U</tag00181030>
                    <tag00181120 len="2" tag="00181120" vr="DS">.0</tag00181120>
                    <tag00181151 len="4" tag="00181151" vr="IS">250</tag00181151>
                    <tag00181152 len="4" tag="00181152" vr="IS">526</tag00181152>
                    <tag00181160 len="2" tag="00181160" vr="SH">0</tag00181160>
                    <tag00185100 len="4" tag="00185100" vr="CS">HFS</tag00185100>
                    <tag0020000D len="48" tag="0020000D" vr="UI">2.16.840.1.113662.2.1.1519.11582.1990505.1105152</tag0020000D>
                    <tag0020000E len="60" tag="0020000E" vr="UI">2.16.840.1.113662.2.1.2519.21582.2990505.2105152.2381633.20</tag0020000E>
                    <tag00200011 len="4" tag="00200011" vr="IS">3513</tag00200011>
                    <tag00200012 len="4" tag="00200012" vr="IS">3513</tag00200012>
                    <tag00200013 len="2" tag="00200013" vr="IS">8</tag00200013>
                    <tag00200020 len="4" tag="00200020" vr="CS">L\P</tag00200020>
                    <tag00200032 len="38" tag="00200032" vr="DS">-1.197656e02\-3.997656e02\-2.800000e02</tag00200032>
                    <tag00200037 len="72" tag="00200037" vr="DS">1.000000e00\0.000000e00\0.000000e00\0.000000e00\1.000000e00\0.000000e00</tag00200037>
                    <tag00200052 len="48" tag="00200052" vr="UI">2.16.840.1.113662.2.1.3519.31582.3990505.3105152</tag00200052>
                    <tag00201041 len="6" tag="00201041" vr="DS">280.00</tag00201041>
                    <tag00280002 len="2" tag="00280002" vr="US">1</tag00280002>
                    <tag00280004 len="12" tag="00280004" vr="CS">MONOCHROME2</tag00280004>
                    <tag00280010 len="2" tag="00280010" vr="US">512</tag00280010>
                    <tag00280011 len="2" tag="00280011" vr="US">512</tag00280011>
                    <tag00280030 len="16" tag="00280030" vr="DS">0.46875\0.46875</tag00280030>
                    <tag00280100 len="2" tag="00280100" vr="US">16</tag00280100>
                    <tag00280101 len="2" tag="00280101" vr="US">16</tag00280101>
                    <tag00280102 len="2" tag="00280102" vr="US">15</tag00280102>
                    <tag00280103 len="2" tag="00280103" vr="US">1</tag00280103>
                    <tag00281050 len="2" tag="00281050" vr="DS">50</tag00281050>
                    <tag00281051 len="2" tag="00281051" vr="DS">75</tag00281051>
                    <tag00281052 len="2" tag="00281052" vr="DS">0</tag00281052>
                    <tag00281053 len="2" tag="00281053" vr="DS">1</tag00281053>
                </dicom>
                Your results can be used as the inbound template of your message, and you can drag-and-drop to an outbound hl7 template.
                can you please export your channel and share?

                Comment


                • #9
                  All I did was make a brand new channel, set the data types to DICOM, create an empty javascript step in the source transformer, and deploy.

                  Then from the dashboard I selected the channel and picked "send message." I used the "Open Binary File..." button to pick the file I downloaded from the internet and pressed "Process Message."

                  Then I looked at the message in the viewer and picked the transformed content on the source connector to see what I included in my previous post.

                  You can do the same thing if you actually configure a DICOM listener and push a real message to it from your upstream provider (PACS or whatever) instead of manually sending a file.

                  Once you have the DICOM xml, it's no different than converting any XML to HL7, and there should be examples of that in the forums, and likely in the user guide, as well.
                  Last edited by agermano; 11-12-2018, 09:10 PM.

                  Comment


                  • #10
                    Originally posted by agermano View Post
                    All I did was make a brand new channel, set the data types to DICOM, create an empty javascript step in the source transformer, and deploy.

                    Then from the dashboard I selected the channel and picked "send message." I used the "Open Binary File..." button to pick the file I downloaded from the internet and pressed "Process Message."

                    Then I looked at the message in the viewer and picked the transformed content on the source connector to see what I included in my previous post.

                    You can do the same thing if you actually configure a DICOM listener and push a real message to it from your upstream provider (PACS or whatever) instead of manually sending a file.

                    Once you have the DICOM xml, it's no different than converting any XML to HL7, and there should be examples of that in the forums, and likely in the user guide, as well.
                    Thanks for the reply. How are the fields mapped between DICOM xml and HL7 ? Do you know documentation for the same ?

                    Comment


                    • #11
                      I don't work with DICOM. I just did a quick google search and found this. I can't say whether or not it will work in your environment.

                      http://www.pacsgroup.org.uk/forum/me...tml?1422809930

                      Comment

                      Working...
                      X