FHIR HL7 PDQ Service - dcm4che/dcm4chee-arc-light GitHub Wiki

A FHIR HL7 PDQ Service searches for patient demographics for patient(s) available on an external patient demographics supplier capable of responding to (GET) FHIR HTTP requests addressing the Patient Resource type.

Example of FHIR Patient Demographics Supplier - HAPI FHIR Server

Configuration

Device & Network Connection for external patient demographics supplier

  • Create an own device.
    • Accessible from archive UI Configuration page - Devices tab - More Functions dropdown - Create Device
  • Create a Network Connection
    • Accessible from archive UI Configuration page - Devices tab - Edit eg. test-hapi - Child Objects - Network Connections
    • Reference Protocol as HTTP in its Network Connection Extension

Web Application for external patient demographics supplier

  • Create a Web Application in the same device (created above)
    • Accessible from archive UI Configuration page - Devices tab - Edit eg. test-hapi - Device Extension (Edit) - Child Objects - Web Applications
    • Select the above created network connection in Web Application Network Connections
    • Select FHIR as the Web Service Class
    • Configure the relative resource path of external patient demographics supplier FHIR server in Web Service Path

PDQ Service for external patient demographics supplier in archive device

  • In archive device dcm4chee-arc, Create a PDQ Service Descriptor
    • Accessible from archive UI Configuration page - Devices tab - Edit eg. dcm4chee-arc - Device Extension (Edit) - Archive Device Extension (Edit) - Child Objects - PDQ Service
    • Refer the above Web Application in PDQ Service URI as pdq-fhir:<your-web-app-name>
  • Some mandatory PDQ Service Property(s) shall be configured as indicated below
    dcmProperty: XSLStylesheetURI=${jboss.server.temp.url}/dcm4chee-arc/fhir-pat2dcm.xsl
    dcmProperty: search._format=xml
    dcmProperty: search.identifier.system=https://github.com/synthetichealth/synthea
    
    Note : https://github.com/synthetichealth/synthea is an example. Replace with System portion of identifier search parameter

Complete list of configurable PDQ service properties and their descriptions

Property Description
XSLStylesheetURI Stylesheet used to transcode Patient information from received HL7 FHIR R4 Patient Resource Bundle, ${jboss.server.temp.url}/dcm4chee-arc/fhir-pat2dcm.xsl by default
search._format _format search parameter (xml, text/xml, application/xml or application/fhir+xml). Alternatively a corresponding Accept header parameter (header.Accept) may be specified to ensure that the response is encoded in XML.
search.identifier.system System portion of identifier search parameter. Gets overwritten by search.identifier.system.issuer.{issuer} and search.identifier.system.type.{type}. If not specified DICOM attribute Patient ID (0010,0020) with no system portion is passed as identifier search parameter.
search.identifier.system.issuer.{issuer} System portion of identifier search parameter for Patient IDs which Issuer of Patient ID (0010,0021) = {issuer}. Gets overwritten by search.identifier.system.type.{type}
search.identifier.system.type.ISO Prefix (urn:oid:) for System portion of identifier search parameter derived from Universal Entity ID (0040,0032) of the item of the Issuer of Patient ID Qualifiers Sequence (0010,0024) if Universal Entity ID Type (0040,0033) = ISO.
search.identifier.system.type.UUID Prefix (urn:uuid:) for System portion of identifier search parameter derived from Universal Entity ID (0040,0032) of the item of the Issuer of Patient ID Qualifiers Sequence (0010,0024) if Universal Entity ID Type (0040,0033) = UUID.
search.identifier.system.type.URI Prefix (NONE) for System portion of identifier search parameter derived from Universal Entity ID (0040,0032) of the item of the Issuer of Patient ID Qualifiers Sequence (0010,0024) if Universal Entity ID Type (0040,0033) = URI.
search.identifier.system.type.{type} Prefix for System portion of identifier search parameter derived from Universal Entity ID (0040,0032) of the item of the Issuer of Patient ID Qualifiers Sequence (0010,0024) if Universal Entity ID Type (0040,0033) = {type}.
header.Accept Accept HTTP header (text/xml, application/xml or application/fhir+xml). Alternatively a corresponding _format search parameter (search._format) may be specified to ensure that the response is encoded in XML. May include FHIR Version Parameter ; fhirVersion=4.0.
header.{name} any other HTTP header included in the request
search.{name} any other search parameter included in the request

Alternatively, same steps indicated above can be directly imported into LDAP using following ldif

    version: 1       
    dn: dcmPDQServiceID=testHAPI,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    objectClass: dcmPDQService
    dcmPDQServiceID: testHAPI
    dcmURI: pdq-fhir:HAPI
    dicomDescription: Test PDQ with FHIR HL7 External Patient Demographics Supplier - HAPI Server
    dcmProperty: XSLStylesheetURI=${jboss.server.temp.url}/dcm4chee-arc/fhir-pat2dcm.xsl
    dcmProperty: search._format=xml
    dcmProperty: search.identifier.system=https://github.com/synthetichealth/synthea

    dn: dicomDeviceName=hapi-server,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    objectClass: dcmDevice
    objectClass: dicomDevice
    dicomDeviceName: hapi-server
    dicomInstalled: TRUE
    
    dn: cn=http,dicomDeviceName=hapi-server,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    objectClass: dcmNetworkConnection
    objectClass: dicomNetworkConnection
    dicomHostname: localhost
    cn: http
    dcmProtocol: HTTP
    dicomPort: 8780
    
    dn: dcmWebAppName=HAPI,dicomDeviceName=hapi-server,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
    objectClass: dcmWebApp
    dcmWebAppName: HAPI
    dcmWebServiceClass: FHIR
    dcmWebServicePath: /hapi-fhir-jpaserver/fhir/Patient
    dicomNetworkConnectionReference: cn=http,dicomDeviceName=hapi-server,cn=Devi
    ces,cn=DICOM Configuration,dc=dcm4che,dc=org

with help of Apache Directory Studio or LDAP Command Line Tools

For the configuration to be effective - if configured using ldif snippet - use archive UI to reload the configuration.

  • Accessible from Configuration page - Control tab

References

DICOM Conformance Statement

IHE (Integrating the Health Enterprise) - ITI (IT Infrastructure) framework

HL7 FHIR R4

Open Source FHIR Patient Demographics Supplier

⚠️ **GitHub.com Fallback** ⚠️