Skip to content

Specificaties analysemodule

Joost Kuijer edited this page Aug 22, 2013 · 15 revisions

Wanneer een DICOM beeld/serie/studie aan de geconfigureerde selectieregels voldoet, roept de WAD_Processor een analyse module (executable) aan. De format van aanroep van de executable, de gegevens die de analyse module nodig heeft voor het uitvoeren van de analyse, en de terugkoppeling van de resultaten naar de WAD database worden op deze pagina gedefinieerd.

Uploaden van de analyse module

Om een analyse module in de WAD software bekend te maken, moet deze via de WAD interface geüpload worden. Wanneer de analyse module executable uit slechts één enkele file bestaat (bijv. module.exe) dan kan deze direct geüpload worden. Bestaat de module executable uit meerdere files, dan moeten deze gebundeld worden in een zip file, welke na uploaden automatisch door de WAD interface wordt uitgepakt. Om dit proces goed te laten verlopen wordt een eis gesteld aan de naamgeving van de zip file, deze moet gelijk zijn aan de naam van de executable (inclusief extensie!) met toevoeging van .zip. Voorbeelden: module1.exe.zip, module2.jar.zip, module3.py.zip. De zipfile mag submappen bevatten, echter de executable mag niet in een submap staan. Na upload (en evt uitpakken) van de analyse module wordt een nieuwe map (module1.exe.zip --> mapnaam module1) gemaakt in de map uploads. Als deze map bestaat, wordt de upload geweigerd. In dat geval moet de update optie gebruikt worden, waarbij de bestaande map wel verwijderd wordt.

Welke executable types worden ondersteund, is te zien in de broncode van de WAD-processor, en dit is eenvoudig uit te breiden.

Aanroep van de analyse module

De WAD_Processor start de module met als enige argument de filenaam van de XML input file. Dus bijvoorbeeld: jouwAnalyseModuleNaam.exe C:\WAD-software\XML\analysemodule_input\20121113165017889.xml

Analyse input file

De analyse module krijgt een bestand in XML formaat aangeboden, met daarin referenties naar de DICOM files met QC scans/data/opnames. Afhankelijk van de selectieregels (de parameter "analyselevel") kan dit een complete DICOM study zijn, of een DICOM series, of een DICOM instance. De standaard DICOM hierarchie wordt aangehouden, dwz patient - study - serie - instance. Verder worden er enkele gegevens uit de WAD (IQC) database beschikbaar gesteld. Deze zijn in feite gekopieerd uit de DCM4CHEE database.

Toelichting voor enkele velden die niet direct aan de DICOM files gerelateerd zijn:

  • Alle velden worden binnen een <WAD> veld aangeboden.
  • <version> versie codering van de analyse input file.
  • <analysemodule_cfg> configuratie file van de analysemodule. De module bouwer legt het format van de configuratie file vast.
  • <analysemodule_output> output file waar de module de resultaten van de analyse naartoe moet schrijven. Het format van deze file is later op deze pagina gedefinieerd.
  • <analyselevel> deze waarde is door de gebruiker in de selector gekozen, en geeft aan of de analyse module per studie, serie of instance wordt aangeroepen.
  • de overige, DICOM gerelateerde velden spreken voor zich.

Voorbeeld van een analyse module input file, met analyselevel "study":

<?xml version="1.0" encoding="UTF-8"?>
<WAD>
    <version/>
    <analysemodule_cfg>C:\WAD-software\WAD_Interface\WAD-IQC\uploads\analysemodule_cfg\WAD_MR_config_Avanto.xml</analysemodule_cfg>
    <analysemodule_output>C:\WAD-software\XML\analysemodule_output\WAD MR\20121113165017889\result.xml</analysemodule_output>
    <analyselevel>study</analyselevel>
    <patient>
        <id>1234567</id>
        <name>QC-MRI- AVANTO^TEST^^^</name>
        <study>
            <uid>1.2.752.24.5.3436465393.20120213140411.3803451</uid>
            <description>QC^ACR</description>
            <series>
                <number>1</number>
                <description>ACR LOC 4CH</description>
                <instance>
                    <number>1</number>
                    <filename>C:\WAD-software\dcm4chee-2.17.1-mysql\server\default\archive\ ... \E2A8F6AD</filename>
                </instance>
                <instance>
                    <number>2</number>
                    <filename>C:\WAD-software\dcm4chee-2.17.1-mysql\server\default\archive\ ... \FAB95E27</filename>
                </instance>
                <instance>
                    <number>3</number>
                    <filename>C:\WAD-software\dcm4chee-2.17.1-mysql\server\default\archive\ ... \617A0D3B</filename>
                </instance>
            </series>
            <series>
                <number>2</number>
                <description>ACR SAG DIS2D</description>
                <instance>
                    <number>1</number>
                    <filename>C:\WAD-software\dcm4chee-2.17.1-mysql\server\default\archive\ ... \A0FC1665</filename>
                </instance>
            </series>
            <series>
                ...
            </series>
        </study>
    </patient>
</WAD>

Analyse output file

Het format van deze file is XML en ondersteunt een beperkt aantal data types:

  • float
  • boolean
  • char
  • file_object

Het type file_object geeft de mogelijkheid om bijvoorbeeld afbeeldingen, PDF documenten, aanvullende tekstdocumenten/logfiles etc aan te bieden. Deze bestanden moeten in dezelfde map als de outputfile zelf geplaatst worden.

Specificaties:

  • File naam en pad zijn in de analyse input file gegeven bij het veld <analysemodule_output>.
  • De output file heeft de naam result.xml.
  • result.xml wordt door de WAD-Processor aangemaakt en is bij aanroep van de analyse module leeg.
  • Voor iedere aanroep wordt een nieuwe map aangemaakt met dus alleen die lege file result.xml. In deze map kan de analyse module ook eventuele file_objecten plaatsen.
  • Resultaten worden binnen een <WAD> veld geplaatst.
  • Per <results> item zijn de volgende velden verplicht:
    • <volgnummer> het volgnummer bepaalt de volgorde waarin de resultaten gerapporteerd worden in de Viewer. Volgnummers zijn uniek binnen de output file, starten bij 1 vormen een zonder onderbreking oplopende rij gehele getallen.
    • <type> mogelijke waarden zijn char, float, object of bool.
    • <niveau> mogelijke waarden zijn 1 of 2. Gebruik niveau 1 voor resultaten die in de primaire resultaten tabel gerapporteerd moeten worden, of niveau 2 voor resultaten in de secundaire tabel. Deze secundaire tabel kan gebruikt worden om wat informatie te geven om afwijkende resultaten te interpreteren (is de meting wel goed gedaan, is de analyse wel betrouwbaar, etc), en voor evt debuggen (waarom zie ik geen resultaat voor de SNR meting?).
    • type float, char of bool: <waarde> dit is de gemeten waarde, of tekst.
    • type object: <object_naam_pad>
  • Per item zijn de volgende velden optioneel:
    • <grootheid>
    • <eenheid>
    • <omschrijving>
    • Actielimieten (alleen bij type float), deze waardes worden gebruikt om in de viewer dmv kleuren direct zichtbaar te maken of de gemeten waarde goed, acceptabel, of kritisch is. De velden zijn: <grens_acceptabel_onder> <grens_acceptabel_boven> <grens_kritisch_onder> <grens_kritisch_boven>

Een voorbeeld XML output file:

<?xml version="1.0" encoding="utf-8"?>
<WAD>
   <results>
      <volgnummer>1</volgnummer>
      <type>char</type>
      <niveau>2</niveau>
      <waarde>GE</waarde>
      <omschrijving>Configuratie naam</omschrijving>
   </results>
   <results>
      <volgnummer>2</volgnummer>
      <type>float</type>
      <niveau>1</niveau>
      <waarde>147.558236355559</waarde>
      <grootheid>Lengte</grootheid>
      <eenheid>mm</eenheid>
      <omschrijving>Geometrie Z</omschrijving>
      <grens_acceptabel_onder>147</grens_acceptabel_onder>
      <grens_acceptabel_boven>148</grens_acceptabel_boven>
      <grens_kritisch_onder>146.5</grens_kritisch_onder>
      <grens_kritisch_boven>148.5</grens_kritisch_boven>
   </results>
   <results>
      <volgnummer>3</volgnummer>
      <type>object</type>
      <niveau>2</niveau>
      <object_naam_pad>C:\WAD-software\XML\analysemodule_output\WAd MR\20121119165918957\20121119_165929_geomZ_fitted.jpg</object_naam_pad>
      <omschrijving>Geometrie Z: randdetectie</omschrijving>
   </results>
   <results>
      <volgnummer>4</volgnummer>
      <type>bool</type>
      <niveau>1</niveau>
      <waarde>1</waarde>
      <omschrijving>SNR check</omschrijving>
   </results>
</WAD>