ITI-41/ITI-42 How to add a new CDA document to document repository

1,953 views
Skip to first unread message

Sven Siekmann

unread,
May 31, 2011, 3:11:07 PM5/31/11
to ipf-user
Hi everybody,
I have a question concerning how to provide and register a new
document via ITI-41 and ITI-42 to a document registry (PXS). I found
the classes
org.openehealth.ipf.commons.ihe.xds.core.requests.ProvideAndRegisterDocumentSet
and …RegisterDocumentSet but I am not sure how to use them correctly.
I didn't found examples for them:\ I found a setter for submission
sets and getter for associations(getAssociations) and documents
(getDocuments). But I am missing the setter for these lists.
As far as I understood I have to crate a Document-object with my CDA
data. But how do I put these informations into the
ProvideAndRegistyDocumentSet-object?
Id would be nice if you could give me some code snippets how to add my
Document-object data (that contain the CDA data) to a
ProvideAndRegistryDocumentSet-object to add it via XDS ITI-41 (and XDS
ITI-42) to a document repository. Thank you in advance.

Best Regards,

Sven

Dmytro Rud

unread,
May 31, 2011, 3:48:28 PM5/31/11
to ipf-...@googlegroups.com
Hi Sven,

> I have a question concerning how to provide and register a new
> document via ITI-41 and ITI-42 to a document registry (PXS).

Do you want to use both these transactions in parallel?
Actually, ITI-41 should be enough.

> I found the classes
> org.openehealth.ipf.commons.ihe.xds.core.requests.ProvideAndRegisterDocumentSet

> and �RegisterDocumentSet but I am not sure how to use them correctly.


> I didn't found examples for them:\

See method createProvideAndRegisterDocumentSet() in https://github.com/krasserm/ipf/blob/master/commons/ihe/xds/src/test/java/org/openehealth/ipf/commons/ihe/xds/core/SampleData.java

> I found a setter for submission
> sets and getter for associations(getAssociations) and documents
> (getDocuments). But I am missing the setter for these lists.

You can insert elements into these lists using their add() methods.

> As far as I understood I have to crate a Document-object with my CDA
> data.

Exactly.

> But how do I put these informations into the
> ProvideAndRegistyDocumentSet-object?

Document cdaDocument = ...;
ProvideAndRegistyDocumentSet request = ...;
request.getDocuments().add(cdaDocument);

In IPF 2.2.2 and earlier, you must manually prepare the DataHandler in the Document object. Since IPF 2.2.3/2.3-m1, XDS document objects represent content maps and support type conversion (this feature is currently an "early draft" and therefore not yet documented in our Wiki). A small set of pre-defined converters is available in the package org.openehealth.ipf.platform.camel.ihe.continua.hrn.converters, see examples of their usage in the unit tests of the module platform-camel-ihe-continua and their Spring context descriptors.

> Id would be nice if you could give me some code snippets how to add my
> Document-object data (that contain the CDA data) to a
> ProvideAndRegistryDocumentSet-object to add it via XDS ITI-41 (and XDS
> ITI-42) to a document repository. Thank you in advance.

Regards,
Dmytro

Sven Siekmann

unread,
Jun 1, 2011, 7:07:07 AM6/1/11
to ipf-user
Hi Dmytro,

thank you for your answer. We thought that we have to use both
transactions. But if you say that the ITI-41 is enough we will try it:-
D Now I am wondering when to use the ITI-42 transaction. Is this
transaction only to update associations of existing documents, e.g.
that one document should replace all other documents of a certain kind
for a patient? Or is this transaction only used "intern"?
At the moment we are developing with an earlier version of IPF than
2.2.3. So will choose the "old ways" for the Document object.

Regards,

Sven


On 31 Mai, 21:48, Dmytro Rud <dmytro....@googlemail.com> wrote:
> Hi Sven,
>
> > I have a question concerning how to provide and register a new
> > document via ITI-41 and ITI-42 to a document registry (PXS).
>
> Do you want to use both these transactions in parallel?
> Actually, ITI-41 should be enough.
>
> > I found the classes
> > org.openehealth.ipf.commons.ihe.xds.core.requests.ProvideAndRegisterDocumentSet
> > and RegisterDocumentSet but I am not sure how to use them correctly.
> > I didn't found examples for them:\
>
> See method createProvideAndRegisterDocumentSet() inhttps://github.com/krasserm/ipf/blob/master/commons/ihe/xds/src/test/...

Dmytro Rud

unread,
Jun 1, 2011, 8:10:33 AM6/1/11
to ipf-...@googlegroups.com
Hi Sven,

when an XDS repository receives an ITI-41 request, it stores
the documents contained there, and then sends document's
metadata to the XDS registry by means of ITI-42 transaction.

See also: IHE IT Infrastructure Technical Framework,
Volume 2b, Section 3.42.

Regards,
Dmytro


2011/6/1 Sven Siekmann <sven.s...@web.de>:

Sven Siekmann

unread,
Jun 2, 2011, 2:36:08 PM6/2/11
to ipf-user
Hi Dmytro,

I have a little question concerning one dependency. What do I have to
add to import
org.openehealth.ipf.commons.ihe.ws.utils.LargeDataSource? I did not
found the right dependency yet:( I like to use it to test the basic
provide and register in our application with a of mock-document. Thank
you in advance.

Regards,

Sven



On 1 Jun., 14:10, Dmytro Rud <dmytro....@googlemail.com> wrote:
> Hi Sven,
>
> when an XDS repository receives an ITI-41 request, it stores
> the documents contained there, and then sends document's
> metadata to the XDS registry by means of ITI-42 transaction.
>
> See also: IHE IT Infrastructure Technical Framework,
> Volume 2b, Section 3.42.
>
> Regards,
> Dmytro
>
> 2011/6/1 Sven Siekmann <sven.siekm...@web.de>:

Dmytro Rud

unread,
Jun 2, 2011, 2:44:01 PM6/2/11
to ipf-...@googlegroups.com
Hi Sven,

here you are:

<dependency>
<groupId>org.openehealth.ipf.commons</groupId>
<artifactId>commons-ihe-ws</artifactId>
<version>${ipf-version}</version>
<!--scope>test</scope-->
<type>test-jar</type>
<dependency>

Best Regards,
Dmytro

Sven Siekmann

unread,
Jun 6, 2011, 5:30:33 PM6/6/11
to ipf-user
Hi Dmytro,

thanks for the answer. Now I have the next problem when I try to send
the ProvideAndRegisterDocumentSet to the PXS. The
ITI41RequestValidator tells us that the request is ok. But in the
response-object there is an "Internal Repository Error" listed without
further description. In the server log we get the following error

ERROR [http-8443-8]
com.icw.ehf.commons.errorhandling.handler.LogExceptionHandler#logMessage(75)
- Ticket: '6aeb4091-a741-4de6-9140-f3ced32bd3a5'; Message:
'Insufficient privileges. Cannot create object!
{type='com.icw.ehf.entity.domain.Object', context='null', role='null',
id='null}'.
java.security.AccessControlException: Insufficient privileges. Cannot
create object! {type='com.icw.ehf.entity.domain.Object',
context='null', role='null', id='null}
at
com.icw.ehf.commons.objectmanager.listener.AbstractMetaDataBasedObjectEventListener.failWithAccessDenied(AbstractMetaDataBasedObjectEventListener.java:
71)

We filled our document object with most of the data of the existing
example document (besides the uuids and other unique stuff). Our
author-object is created with the AuthorRole "Primary Care
Physician".
Id would be nice if you have a little hint for us. Thank you in
advance.

Best Regards,

Sven

Dmytro Rud

unread,
Jun 6, 2011, 5:38:45 PM6/6/11
to ipf-...@googlegroups.com
Hi,

I hope that your question will be answered by PXS developers
which are reading this mailing list...

prasad ghaisas

unread,
Nov 23, 2017, 6:27:27 AM11/23/17
to ipf-user
Hi Dmytro
I want to create an iti41 request using class package

org.openhealth.ipf.commons.ihe.xds.core.ebxml.ebxml30

Which contains SubmitObjectRequest and list of document.

Can u help me to create such request in java ?

Dmytro Rud

unread,
Nov 24, 2017, 9:16:01 AM11/24/17
to ipf-...@googlegroups.com
The easiest way is to use the simplified XDS data model -- IPF components will automatically convert the message to ebXML before sending it out.
Take a look at the method org.openehealth.ipf.commons.ihe.xds.core.requests.ProvideAndRegisterDocumentSet.

Best regards
Dmytro



--
You received this message because you are subscribed to the Google Groups "ipf-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ipf-user+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Dmytro Rud

unread,
Nov 25, 2017, 3:18:27 PM11/25/17
to ipf-...@googlegroups.com
I meant the method org.openehealth.ipf.commons.ihe.xds.core.SampleData#createProvideAndRegisterDocumentSet

prasad ghaisas

unread,
Nov 28, 2017, 4:28:28 AM11/28/17
to ipf-user
Hey I had a look at that method. But my concern is , i want to create a soap XML string like
<soap:Body>
<ProvideAndRegisterDocumentSetRequest>
<SubmitObjectRequest>
<RegistryObjectList>

<Document>
Etc

</soap:Body>

Dmytro Rud

unread,
Nov 28, 2017, 5:40:55 AM11/28/17
to ipf-...@googlegroups.com
After you have created the request as a simplified data model object, you can render it as ebXML using org.openehealth.ipf.platform.camel.ihe.xds.core.converters.XdsRenderingUtils#doRender.

prasad ghaisas

unread,
Nov 29, 2017, 4:13:13 AM11/29/17
to ipf-user
Thanks Dmytro. That worked for me.

prasad ghaisas

unread,
Nov 29, 2017, 4:38:19 AM11/29/17
to ipf-user
Now I want to add ClinicalDocument inside document. DocumentEntry is just meta data about document. Right ?
Is there any way to do that ?
I saw one render method inside CDAR2Renderer. But how to create this ClinicalDocument obj and add inside document tag of ITI41

prasad ghaisas

unread,
Nov 29, 2017, 7:19:02 AM11/29/17
to ipf-user
I tried using doc.setContent method but it doesn't worked for me
Reply all
Reply to author
Forward
0 new messages