Unable to unmarshall CONNECT adapter PD request

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Unable to unmarshall CONNECT adapter PD request

Nick King
CONNECT version 4.4.1

We're seeing an issue with the request CONNECT sends back to our gateway during an inbound PD request. The sequence of events is as follows:

1. External gateway sends gateway PD request to CONNECT
2. CONNECT sends adapter PD request to local gateway
3. Local gateway cannot unmarshall CONNECT's adapter PD request

When attempting to unmarshall the adapter PD request we see the following error on our local gateway implementation:

Error message was: Unable to create an instance of org.hl7.v3.ANY
javax.xml.bind.UnmarshalException: Unable to create an instance of org.hl7.v3.ANY
 - with linked exception:
[java.lang.InstantiationException]
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:662)

Although the PD request from the external gateway appears to contain the type of the minimumDegreeMatch value (INT), the minimumDegreeMatch element in the adapter PD request from CONNECT to the local gateway doesn't specify the value type. Below are the relevant queries:

External gateway PD request to CONNECT:

<controlActProcess moodCode="EVN" classCode="CACT">
        <code code="PRPA_TE201305UV02" codeSystem="2.16.840.1.113883.1.6"/>
        <authorOrPerformer typeCode="AUT">
                <assignedDevice classCode="ASSIGNED">
                        <id root="234.5.65.32.3.563452"/>
                        <assignedDevice determinerCode="INSTANCE" classCode="DEV">
                                <asLocatedEntity classCode="STOR">
                                        <location determinerCode="INSTANCE" classCode="COUNTRY"/>
                                </asLocatedEntity>
                        </assignedDevice>
                        <representedOrganization determinerCode="INSTANCE">
                                <id root="234.5.65.32.3.563452"/>
                        </representedOrganization>
                </assignedDevice>
        </authorOrPerformer>
        <queryByParameter>
                <queryId root="fdd7f993-e344-46cb-8611-823e3cad6b20" extension="1"/>
                <statusCode code="new"/>
                <responseModalityCode code="R"/>
                <responsePriorityCode code="I"/>
                <matchCriterionList>
                        <matchAlgorithm xsi:nil="true"/>
                        <matchWeight xsi:nil="true"/>
                        <minimumDegreeMatch>
                                <value xsi:type="INT" value="75"/>
                                <semanticsText>MinimumDegreeMatch</semanticsText>
                        </minimumDegreeMatch>
                </matchCriterionList>
                <parameterList>
                        <livingSubjectAdministrativeGender>
                                <value code="M"/>
                                <semanticsText>LivingSubject.administrativeGender</semanticsText>
                        </livingSubjectAdministrativeGender>
                        <livingSubjectBirthTime>
                                <value value="196540203"/>
                                <semanticsText>LivingSubject.birthTime</semanticsText>
                        </livingSubjectBirthTime>
                        <livingSubjectId>
                                <value root="23.5.423.2145.4232.13" extension="123245645"/>
                                <semanticsText>LivingSubject.Id</semanticsText>
                        </livingSubjectId>
                        <livingSubjectName>
                                <value>
                                        <family>TESTLAST</family>
                                        <given>TESTFIRST</given>
                                        <given>TESTMIDDLE</given>
                                </value>
                                <semanticsText>LivingSubject.name</semanticsText>
                        </livingSubjectName>
                        <patientAddress>
                                <value>
                                        <streetAddressLine>123 TEST STREET</streetAddressLine>
                                        <city>TESTCITY</city>
                                        <state>TEST</state>
                                        <postalCode>12345</postalCode>
                                </value>
                                <semanticsText>Patient.addr</semanticsText>
                        </patientAddress>
                </parameterList>
        </queryByParameter>
</controlActProcess>

CONNECT adapter PD request to local gateway:

<controlActProcess classCode="CACT" moodCode="EVN">
        <code code="PRPA_TE201305UV02" codeSystem="2.16.840.1.113883.1.6"/>
        <code code="PRPA_TE201305UV02" codeSystem="2.16.840.1.113883.1.6"/>
        <authorOrPerformer typeCode="AUT">
                <assignedDevice classCode="ASSIGNED">
                        <id root="234.5.65.32.3.563452"/>
                        <assignedDevice determinerCode="INSTANCE" classCode="DEV">
                                <asLocatedEntity classCode="STOR">
                                        <location determinerCode="INSTANCE" classCode="COUNTRY"/>
                                </asLocatedEntity>
                        </assignedDevice>
                        <representedOrganization determinerCode="INSTANCE">
                                <id root="234.5.65.32.3.563452"/>
                        </representedOrganization>
                </assignedDevice>
        </authorOrPerformer>
        <queryByParameter>
                <queryId extension="1" root="fdd7f993-e344-46cb-8611-823e3cad6b20"/>
                <statusCode code="new"/>
                <responseModalityCode code="R"/>
                <responsePriorityCode code="I"/>
                <matchCriterionList>
                        <matchAlgorithm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
                        <matchWeight xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
                        <minimumDegreeMatch>
                                <value value="75"/>
                                <semanticsText>MinimumDegreeMatch</semanticsText>
                        </minimumDegreeMatch>
                </matchCriterionList>
                <parameterList>
                        <livingSubjectAdministrativeGender>
                                <value code="M"/>
                                <semanticsText>LivingSubject.administrativeGender</semanticsText>
                        </livingSubjectAdministrativeGender>
                        <livingSubjectBirthTime>
                                <value value="196540203"/>
                                <semanticsText>LivingSubject.birthTime</semanticsText>
                        </livingSubjectBirthTime>
                        <livingSubjectId>
                                <value root="23.5.423.2145.4232.13" extension="123245645"/>
                                <semanticsText>LivingSubject.Id</semanticsText>
                        </livingSubjectId>
                        <livingSubjectName>
                                <value>
                                        <family>TESTLAST</family>
                                        <given>TESTFIRST</given>
                                        <given>TESTMIDDLE</given>
                                </value>
                                <semanticsText>LivingSubject.name</semanticsText>
                        </livingSubjectName>
                        <patientAddress>
                                <value>
                                        <streetAddressLine>123 TEST STREET</streetAddressLine>
                                        <city>TESTCITY</city>
                                        <state>TEST</state>
                                        <postalCode>12345</postalCode>
                                </value>
                                <semanticsText>Patient.addr</semanticsText>
                        </patientAddress>
                </parameterList>
        </queryByParameter>
</controlActProcess>
Reply | Threaded
Open this post in threaded view
|

Re: Unable to unmarshall CONNECT adapter PD request

Minh
Administrator
The cxf JAXB framework will remove any redundancy prefix if it has correct default namespace in top of xml(http://forums.connectopensource.org/Unable-to-unmarshall-CONNECT-entity-PD-response-td7580161.html) .  If your local gateway uses our commonType jar, can you please confirm that you use version 4.1.0A?  Otherwise, please make sure your local gateway use correct shcema in PRPA_MT201306UV02.xsd as following:
--------------------
<xs:complexType name="PRPA_MT201306UV02.MinimumDegreeMatch">
        <xs:sequence>
            <xs:group ref="InfrastructureRootElements"/>
            <xs:element name="value" type="INT" minOccurs="1" maxOccurs="1"/>
            <xs:element name="semanticsText" type="ST_explicit" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
        <xs:attributeGroup ref="InfrastructureRootAttributes"/>
        <xs:attribute name="nullFlavor" type="NullFlavor" use="optional"/>
    </xs:complexType>
-----------
Type="INT" comes from urn:hl7-org:v3 schema.
Thanks,
Minh-Hai Nguyen
CONNECT Product Team Member