-
Notifications
You must be signed in to change notification settings - Fork 65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Implement the ITI-48 transaction (Retrieve Value Set, SOAP) #354
Conversation
The long service creation time is most probably caused by the huge XML Schemas which contain ca. 27000 lines. We have had the same problem many years ago when implementing PIXv3/PDQv3 components. |
I found the culprit. It wasn't the schema complexity but the following import in the schema: <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> It was most probably hitting the HTTP request timeout, thus the constant 30 seconds delay. I've nonetheless simplified the schema. |
FYI: we have a local copy of it in /commons/ihe/hl7v3/src/main/resources/schema. |
It does not seem to be useful, the definitions are self-contained or come from the |
@qligier: eHealth Suisse told us you need a new IPF release. No problem. But do you want this pull request to be part of it? If yes, please finalize it. :-) |
Yes, it would be nice to start the eHealthConnector refactoring based on IPF 4.1 I've updated the only part of the code that I wanted to change but there's no urgency for this, at least on my side: we're manually including the code in one of our HUG project (so not waiting on a release), and I think SVS is out of scope of the eHC. |
@qligier: FYI: IPF 4.1.0 is released. |
8ac5059
to
68523cc
Compare
68523cc
to
a2966ec
Compare
I've rebased the PR on top of master and fixed the parts that were not done yet. The PR should ultimately be ready for review. |
Hi @unixoid! Thank you for your work! Yes, I wasn't pleased with the XSD provided by IHE. I took the decision to write the few classes needed by hand. And at the time of writing the JAXB factories, it was simpler to continue by hand than to find the rights commands to generate the schema from the classes, and then regenerate the classes with the factories from the schema. I also tweaked the XSD file to improve the validation coverage, and added the XML XSD because |
This is an implementation of the IHE ITI-48 transaction, Retrieve Value Set, for the SOAP binding only. It introduces new modules:
ipf-commons-ihe-svs
andipf-platform-camel-ihe-svs
(SVS for Sharing Value Sets profile). Models for request and response are introduced, along with Camel converters. A simple validator (based on XSD) is implemented. The audit record messages are generated.List of issues with the specification, and how I dealt with them:
NAV
andVERUNK
codes can't be specified as a fault code, as per SOAP 1.2 specification. Instead, in the implementation, they're specified as fault subcode (without namespace) and the fault code is set toSENDER
.participantObjectDetail
contains the value set version and is mandatory on the repository side. In the DICOM specification, it's not a free text field but a type-value pair element. The specification does not define what value to use for@type
; this implementation usestype="ValueSetVersion"
.There are other small issues that are not preventing an implementation. Not sure if they are worth writing CPs.