Skip to content

Process Report Start v1.1.x.x

Reto Wettstein edited this page Nov 10, 2024 · 2 revisions

This page lists FHIR resources that can be used to prepare the HRP DSF FHIR server as well as to start/stop the report autostart process and to start the report send process at a DIC. The following needs to be known beforehand:

  • The DIC identifier of the local organization

It is important to differentiate between the DSF FHIR server and the CDS FHIR store. The DSF FHIR server contains all FHIR resources of the DSF needed for process flow and the CDS FHIR store contains the FHIR resources (i.e. the actual data) on which the report is based. These are two different FHIR servers.

HRP: Prepare DSF FHIR Server

The HRP DSF FHIR server needs to be prepared with the search Bundle on which the report should be based.

To send the search Bundle resource to the HRP DSF FHIR server, the following cURL command could be used:

curl -X PUT \
--cert client-certificate.pem \
--key client-certificate_private-key.pem \
-H "Accept: application/fhir+xml" -H "Content-Type: application/fhir+xml" \
-d @search-bundle.xml \
https://<dsf-fhir-base-url>/fhir/Bundle?identifier=http://medizininformatik-initiative.de/fhir/CodeSystem/report|search-bundle

Notice: On Windows you need to remove the \ multi-line command seperators.

The individual parts of the command have the following meaning:

  • search-bundle-v1.1.xml contains the corresponding search Bundle resource that can be found here. This search Bundle is based on the repository kds-report.
  • client-certificate.pem contains your client-certificate
  • client-certificate_private-key.pem contains the private-key belonging to your client-certificate
  • <dsf-fhir-base-url> needs to be replaced with the base url of your DSF FHIR server

DIC: Start Send Process

DSF FHIR Server Frontend

The start/stop report autostart process and the report send process can be started in the DSF FHIR server frontend by accessing the following urls and opening the correspondig draft Task resource (<dsf-fhir-base-url> needs to be replaced with the base url of your DSF FHIR server):

Report Send Process:

https://<dsf-fhir-base-url>/fhir/Task?status=draft&identifier=http://dsf.dev/sid/task-identifier|http://medizininformatik-initiative.de/bpe/Process/reportSend/1.1/reportSendStart

Report Start Autostart Process:

https://<dsf-fhir-base-url>/fhir/Task?status=draft&identifier=http://dsf.dev/sid/task-identifier|http://medizininformatik-initiative.de/bpe/Process/reportAutostart/1.1/reportAutostartStart

Report Stop Autostart Process:

https://<dsf-fhir-base-url>/fhir/Task?status=draft&identifier=http://dsf.dev/sid/task-identifier|http://medizininformatik-initiative.de/bpe/Process/reportAutostart/1.1/reportAutostartStop

Commandline

To start/stop the report autostart process and to start the report send process from the commandline, a Task resource like the following example to the DIC DSF FHIR server. Please replace all placeholders in the form <REPLACE-WITH-...>.

To send the Task resource to the DIC DSF FHIR server, the following cURL command could be used:

curl \
--cert client-certificate.pem \
--key client-certificate_private-key.pem \
-H "Accept: application/fhir+xml" -H "Content-Type: application/fhir+xml" \
-d @task.xml \
https://<dsf-fhir-base-url>/fhir/Task

Notice: On Windows you need to remove the \ multi-line command seperators.

The individual parts of the command have the following meaning:

  • task.xml contains the corresponding Task resource from below
  • client-certificate.pem contains your client-certificate
  • client-certificate_private-key.pem contains the private-key belonging to your client-certificate
  • <dsf-fhir-base-url> needs to be replaced with the base url of your DSF FHIR server

Task: Report Send Process

<Task xmlns="http://hl7.org/fhir">
    <meta>
        <profile value="http://medizininformatik-initiative.de/fhir/StructureDefinition/task-report-send-start|1.1"/>
    </meta>
    <instantiatesCanonical value="http://medizininformatik-initiative.de/bpe/Process/reportSend|1.1"/>
    <status value="requested"/>
    <intent value="order"/>
    <!-- Example: <authoredOn value="2022-11-16T15:00:00+01:00"/> -->
    <authoredOn value="<REPLACE-WITH-DATE-AND-TIME>"/>
    <requester>
        <type value="Organization"/>
        <identifier>
            <system value="http://dsf.dev/sid/organization-identifier"/>
            <!-- Example: <value value="ukhd.de"/> -->
            <value value="<REPLACE-WITH-YOUR-ORGANIZATION-IDENTIFIER>"/>
        </identifier>
    </requester>
    <restriction>
        <recipient>
            <type value="Organization"/>
            <identifier>
                <system value="http://dsf.dev/sid/organization-identifier"/>
                <!-- Example: <value value="ukhd.de"/> -->
                <value value="<REPLACE-WITH-YOUR-ORGANIZATION-IDENTIFIER>"/>
            </identifier>
        </recipient>
    </restriction>
    <input>
        <type>
            <coding>
                <system value="http://dsf.dev/fhir/CodeSystem/bpmn-message"/>
                <code value="message-name"/>
            </coding>
        </type>
        <valueString value="reportSendStart"/>
    </input>
    <!-- Uncomment to define the HRP which should receive the report (use only if multiple HRP exist) -->
    <!-- Example: <value value="forschen-fuer-gesundheit.de" /> -->
    <!--
    <input>
        <type>
            <coding>
                <system value="http://medizininformatik-initiative.de/fhir/CodeSystem/report" />
                <code value="hrp-identifier" />
            </coding>
        </type>
        <valueReference>
            <type value="Organization" />
            <identifier>
                <system value="http://dsf.dev/sid/organization-identifier" />
                <value value="REPLACE-WITH-HRP-IDENTIFIER" />
            </identifier>
        </valueReference>
    </input>
    -->
</Task>

Task: Report Start Autostart Process

<Task xmlns="http://hl7.org/fhir">
    <meta>
        <profile value="http://medizininformatik-initiative.de/fhir/StructureDefinition/task-report-autostart-start|1.1"/>
    </meta>
    <instantiatesCanonical value="http://medizininformatik-initiative.de/bpe/Process/reportAutostart|1.1"/>
    <status value="requested"/>
    <intent value="order"/>
    <!-- Example: <authoredOn value="2022-11-16T15:00:00+01:00"/> -->
    <authoredOn value="<REPLACE-WITH-DATE-AND-TIME>"/>
    <requester>
        <type value="Organization"/>
        <identifier>
            <system value="http://dsf.dev/sid/organization-identifier"/>
            <!-- Example: <value value="ukhd.de"/> -->
            <value value="<REPLACE-WITH-YOUR-ORGANIZATION-IDENTIFIER>"/>
        </identifier>
    </requester>
    <restriction>
        <recipient>
            <type value="Organization"/>
            <identifier>
                <system value="http://dsf.dev/sid/organization-identifier"/>
                <!-- Example: <value value="ukhd.de"/> -->
                <value value="<REPLACE-WITH-YOUR-ORGANIZATION-IDENTIFIER>"/>
            </identifier>
        </recipient>
    </restriction>
    <input>
        <type>
            <coding>
                <system value="http://dsf.dev/fhir/CodeSystem/bpmn-message"/>
                <code value="message-name"/>
            </coding>
        </type>
        <valueString value="reportAutostartStart"/>
    </input>
    <!-- Uncomment to define another report interval as the default value every 7 days -->
    <!-- Example: <valueString value="P28D"/> creates and sends a report to the HRP once a month (every 28 days) -->
    <!-- 
    <input>
        <type>
            <coding>
                <system value="http://medizininformatik-initiative.de/fhir/CodeSystem/report"/>
                <code value="timer-interval"/>
            </coding>
        </type>
        <valueString value="<REPLACE-WITH-SENDING-INTERVAL>"/>
    </input>
    -->
    <!-- Uncomment to define a first execution time -->
    <!-- Example: <valueTime value="04:00:00"/> will create and send a report to the HRP for the first time at 04:00:00 -->
    <!-- 
    <input>
        <type>
            <coding>
                <system value="http://medizininformatik-initiative.de/fhir/CodeSystem/report"/>
                <code value="first-execution"/>
            </coding>
        </type>
        <valueTime value="REPLACE-WITH-TIME"/>
    </input>
    -->
    <!-- Uncomment to define the HRP which should receive the report (use only if multiple HRP exist) -->
    <!-- Example: <value value="forschen-fuer-gesundheit.de" /> -->
    <!--
    <input>
        <type>
            <coding>
                <system value="http://medizininformatik-initiative.de/fhir/CodeSystem/report" />
                <code value="hrp-identifier" />
            </coding>
        </type>
        <valueReference>
            <type value="Organization" />
            <identifier>
                <system value="http://dsf.dev/sid/organization-identifier" />
                <value value="REPLACE-WITH-HRP-IDENTIFIER" />
            </identifier>
        </valueReference>
    </input>
    -->
</Task>

Task: Report Stop Autostart Process

<Task xmlns="http://hl7.org/fhir">
   <meta>
      <profile value="http://medizininformatik-initiative.de/fhir/StructureDefinition/task-report-autostart-stop|1.1"/>
   </meta>
   <instantiatesCanonical value="http://medizininformatik-initiative.de/bpe/Process/reportAutostart|1.1"/>
   <status value="requested"/>
   <intent value="order"/>
   <!-- Example: <authoredOn value="2022-11-16T15:00:00+01:00"/> -->
   <authoredOn value="<REPLACE-WITH-DATE-AND-TIME>"/>
   <requester>
      <type value="Organization"/>
      <identifier>
         <system value="http://dsf.dev/sid/organization-identifier"/>
         <!-- Example: <value value="ukhd.de"/> -->
         <value value="<REPLACE-WITH-YOUR-ORGANIZATION-IDENTIFIER>"/>
      </identifier>
   </requester>
   <restriction>
      <recipient>
         <type value="Organization"/>
         <identifier>
            <system value="http://dsf.dev/sid/organization-identifier"/>
            <!-- Example: <value value="ukhd.de"/> -->
            <value value="<REPLACE-WITH-YOUR-ORGANIZATION-IDENTIFIER>"/>
         </identifier>
      </recipient>
   </restriction>
   <input>
      <type>
         <coding>
            <system value="http://dsf.dev/fhir/CodeSystem/bpmn-message"/>
            <code value="message-name"/>
         </coding>
      </type>
      <valueString value="reportAutostartStop"/>
   </input>
</Task>