Search in sources :

Example 1 with DirectDocument2

use of org.nhindirect.xd.common.DirectDocument2 in project nhin-d by DirectProject.

the class DefaultXdsDirectDocumentsTransformer method transform.

@Override
public DirectDocuments transform(ProvideAndRegisterDocumentSetRequestType provideAndRegisterDocumentSetRequestType) throws TransformationException {
    DirectDocuments documents = new DirectDocuments();
    try {
        documents.setValues(provideAndRegisterDocumentSetRequestType.getSubmitObjectsRequest());
    } catch (MetadataException e) {
        throw new TransformationException("Unable to complete transformation due to metadata error", e);
    }
    for (ihe.iti.xds_b._2007.ProvideAndRegisterDocumentSetRequestType.Document document : provideAndRegisterDocumentSetRequestType.getDocument()) {
        byte[] data = null;
        try {
            DataHandler dataHandler = document.getValue();
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            dataHandler.writeTo(outputStream);
            data = outputStream.toByteArray();
        } catch (IOException e) {
            throw new TransformationException("Unable to complete transformation due to document IO error", e);
        }
        DirectDocument2 doc = documents.getDocumentByUniqueId(document.getId());
        if (doc != null) {
            doc.setData(data);
        } else {
            documents.getDocumentById(document.getId()).setData(data);
        }
    }
    return documents;
}
Also used : TransformationException(org.nhindirect.xd.transform.exception.TransformationException) DirectDocument2(org.nhindirect.xd.common.DirectDocument2) DirectDocuments(org.nhindirect.xd.common.DirectDocuments) DataHandler(javax.activation.DataHandler) ByteArrayOutputStream(java.io.ByteArrayOutputStream) IOException(java.io.IOException) MetadataException(org.nhindirect.xd.common.exception.MetadataException) ProvideAndRegisterDocumentSetRequestType(ihe.iti.xds_b._2007.ProvideAndRegisterDocumentSetRequestType)

Example 2 with DirectDocument2

use of org.nhindirect.xd.common.DirectDocument2 in project nhin-d by DirectProject.

the class DefaultMimeXdsTransformer method getDocument.

/*
     * Metadata Attribute           XDS     Minimal Metadata
     * -----------------------------------------------------
     * author                       R2      R2
     * classCode                    R       R2
     * confidentialityCode          R       R2
     * creationTime                 R       R2
     * entriUUID                    R       R
     * formatCode                   R       R
     * healthcareFacilityTypeCode   R       R2
     * languageCode                 R       R2
     * mimeType                     R       R
     * patientId                    R       R2
     * practiceSettingCode          R       R2
     * sourcePatientId              R       R2
     * typeCode                     R       R2
     * uniqueId                     R       R
     */
private DirectDocument2 getDocument(Date sentDate, String auth) throws Exception {
    DirectDocument2 document = new DirectDocument2();
    DirectDocument2.Metadata metadata = document.getMetadata();
    // (R) Minimal Metadata Source
    metadata.setMimeType(xdsMimeType);
    metadata.setUniqueId(UUID.randomUUID().toString());
    // (R2) Minimal Metadata Source
    if (xdsFormatCode != null) {
        metadata.setFormatCode(xdsFormatCode);
    }
    // Additional metadata from document parsing
    documentType.parse(new String(xdsDocument), metadata);
    document.setData(xdsDocument);
    return document;
}
Also used : DirectDocument2(org.nhindirect.xd.common.DirectDocument2)

Example 3 with DirectDocument2

use of org.nhindirect.xd.common.DirectDocument2 in project nhin-d by DirectProject.

the class NHINDClientTest method getTestDirectDocuments.

private DirectDocuments getTestDirectDocuments() {
    // Create a collection of documents
    DirectDocuments documents = new DirectDocuments();
    documents.getSubmissionSet().setId("1");
    documents.getSubmissionSet().setName("2");
    documents.getSubmissionSet().setDescription("3");
    documents.getSubmissionSet().setSubmissionTime(new Date());
    documents.getSubmissionSet().setIntendedRecipient(Arrays.asList("5.1", "5.2"));
    documents.getSubmissionSet().setAuthorPerson("6");
    documents.getSubmissionSet().setAuthorInstitution(Arrays.asList("7.1", "7.2"));
    documents.getSubmissionSet().setAuthorRole("8");
    documents.getSubmissionSet().setAuthorSpecialty("9");
    documents.getSubmissionSet().setAuthorTelecommunication("10");
    documents.getSubmissionSet().setContentTypeCode("11");
    documents.getSubmissionSet().setContentTypeCode_localized("12");
    documents.getSubmissionSet().setUniqueId("13");
    documents.getSubmissionSet().setSourceId("14");
    documents.getSubmissionSet().setPatientId("xxx");
    DirectDocument2 doc1 = new DirectDocument2();
    doc1.setData(new String("data1").getBytes());
    DirectDocument2.Metadata metadata1 = doc1.getMetadata();
    metadata1.setMimeType("1.1");
    metadata1.setId("1.2");
    metadata1.setDescription("1.3");
    metadata1.setCreationTime(new Date());
    metadata1.setLanguageCode("1.5");
    metadata1.setServiceStartTime(new Date());
    metadata1.setServiceStopTime(new Date());
    metadata1.setSourcePatient(new SimplePerson("1.Bob", "1.Smith"));
    metadata1.setAuthorPerson("1.10");
    metadata1.setAuthorInstitution(Arrays.asList("1.11.1", "1.11.2"));
    metadata1.setAuthorRole("1.12");
    metadata1.setAuthorSpecialty("1.13");
    metadata1.setClassCode(ClassCodeEnum.HISTORY_AND_PHYSICAL.getValue());
    metadata1.setClassCode_localized(ClassCodeEnum.HISTORY_AND_PHYSICAL.getValue());
    metadata1.setConfidentialityCode("1.16");
    metadata1.setConfidentialityCode_localized("1.17");
    metadata1.setFormatCode(FormatCodeEnum.XDS_MEDICAL_SUMMARIES);
    metadata1.setHealthcareFacilityTypeCode(HealthcareFacilityTypeCodeEnum.OF.getValue());
    metadata1.setHealthcareFacilityTypeCode_localized(HealthcareFacilityTypeCodeEnum.OF.getValue());
    metadata1.setPracticeSettingCode(PracticeSettingCodeEnum.MULTIDISCIPLINARY.getValue());
    metadata1.setPracticeSettingCode_localized(PracticeSettingCodeEnum.MULTIDISCIPLINARY.getValue());
    metadata1.setLoinc(LoincEnum.LOINC_34133_9.getValue());
    metadata1.setLoinc_localized(LoincEnum.LOINC_34133_9.getValue());
    metadata1.setPatientId("xxx");
    metadata1.setUniqueId("1.27");
    DirectDocument2 doc2 = new DirectDocument2();
    doc2.setData(new String("data2").getBytes());
    DirectDocument2.Metadata metadata2 = doc2.getMetadata();
    metadata2.setMimeType("2.1");
    metadata2.setId("2.2");
    metadata2.setDescription("2.3");
    metadata2.setCreationTime(new Date());
    metadata2.setLanguageCode("2.5");
    metadata2.setServiceStartTime(new Date());
    metadata2.setServiceStopTime(new Date());
    metadata2.setSourcePatient(new SimplePerson("2.Bob", "2.Smith"));
    metadata2.setAuthorPerson("2.10");
    metadata2.setAuthorInstitution(Arrays.asList("2.11.1", "2.11.2"));
    metadata2.setAuthorRole("2.12");
    metadata2.setAuthorSpecialty("2.13");
    metadata2.setClassCode(ClassCodeEnum.HISTORY_AND_PHYSICAL.getValue());
    metadata2.setClassCode_localized(ClassCodeEnum.HISTORY_AND_PHYSICAL.getValue());
    metadata2.setConfidentialityCode("2.16");
    metadata2.setConfidentialityCode_localized("2.17");
    metadata2.setFormatCode(FormatCodeEnum.BASIC_PATIENT_PRIVACY_CONSENTS);
    metadata2.setHealthcareFacilityTypeCode(HealthcareFacilityTypeCodeEnum.OF.getValue());
    metadata2.setHealthcareFacilityTypeCode_localized(HealthcareFacilityTypeCodeEnum.OF.getValue());
    metadata2.setPracticeSettingCode(PracticeSettingCodeEnum.MULTIDISCIPLINARY.getValue());
    metadata2.setPracticeSettingCode_localized(PracticeSettingCodeEnum.MULTIDISCIPLINARY.getValue());
    metadata2.setLoinc(LoincEnum.LOINC_34133_9.getValue());
    metadata2.setLoinc_localized(LoincEnum.LOINC_34133_9.getValue());
    metadata2.setPatientId("xxx");
    metadata2.setUniqueId("2.27");
    documents.getDocuments().add(doc1);
    documents.getDocuments().add(doc2);
    return documents;
}
Also used : DirectDocument2(org.nhindirect.xd.common.DirectDocument2) DirectDocuments(org.nhindirect.xd.common.DirectDocuments) Date(java.util.Date) SimplePerson(org.nhindirect.xd.transform.pojo.SimplePerson)

Example 4 with DirectDocument2

use of org.nhindirect.xd.common.DirectDocument2 in project nhin-d by DirectProject.

the class DefaultMimeXdsTransformer method getDocument.

/*
     * Metadata Attribute           XDS     Minimal Metadata
     * -----------------------------------------------------
     * author                       R2      R2
     * classCode                    R       R2
     * confidentialityCode          R       R2
     * creationTime                 R       R2
     * entriUUID                    R       R
     * formatCode                   R       R
     * healthcareFacilityTypeCode   R       R2
     * languageCode                 R       R2
     * mimeType                     R       R
     * patientId                    R       R2
     * practiceSettingCode          R       R2
     * sourcePatientId              R       R2
     * typeCode                     R       R2
     * uniqueId                     R       R
     */
private DirectDocument2 getDocument(Date sentDate, String auth, String xdsMimeType, FormatCodeEnum xdsFormatCode, byte[] xdsDocument, DirectDocumentType documentType) throws Exception {
    DirectDocument2 document = new DirectDocument2();
    DirectDocument2.Metadata metadata = document.getMetadata();
    // (R) Minimal Metadata Source
    metadata.setMimeType(xdsMimeType);
    metadata.setUniqueId(UUID.randomUUID().toString());
    // (R2) Minimal Metadata Source
    if (xdsFormatCode != null) {
        metadata.setFormatCode(xdsFormatCode);
    }
    // Additional metadata from document parsing
    documentType.parse(new String(xdsDocument), metadata);
    document.setData(xdsDocument);
    return document;
}
Also used : DirectDocument2(org.nhindirect.xd.common.DirectDocument2)

Example 5 with DirectDocument2

use of org.nhindirect.xd.common.DirectDocument2 in project nhin-d by DirectProject.

the class DefaultXdsXdmTransformerTest method testTransform.

public void testTransform() throws Exception {
    // Create a collection of documents
    DirectDocuments documents = new DirectDocuments();
    documents.getSubmissionSet().setId("1");
    documents.getSubmissionSet().setName("2");
    documents.getSubmissionSet().setDescription("3");
    documents.getSubmissionSet().setSubmissionTime(new Date());
    documents.getSubmissionSet().setIntendedRecipient(Arrays.asList("5.1", "5.2"));
    documents.getSubmissionSet().setAuthorPerson("6");
    documents.getSubmissionSet().setAuthorInstitution(Arrays.asList("7.1", "7.2"));
    documents.getSubmissionSet().setAuthorRole("8");
    documents.getSubmissionSet().setAuthorSpecialty("9");
    documents.getSubmissionSet().setAuthorTelecommunication("10");
    documents.getSubmissionSet().setContentTypeCode("11");
    documents.getSubmissionSet().setContentTypeCode_localized("12");
    documents.getSubmissionSet().setUniqueId("13");
    documents.getSubmissionSet().setSourceId("14");
    documents.getSubmissionSet().setPatientId("xxx");
    DirectDocument2 doc1 = new DirectDocument2();
    doc1.setData(new String("data1").getBytes());
    DirectDocument2.Metadata metadata1 = doc1.getMetadata();
    metadata1.setMimeType("text/xml");
    metadata1.setId("1.2");
    metadata1.setDescription("1.3");
    metadata1.setCreationTime(new Date());
    metadata1.setLanguageCode("1.5");
    metadata1.setServiceStartTime(new Date());
    metadata1.setServiceStopTime(new Date());
    metadata1.setSourcePatient(new SimplePerson("1.Bob", "1.Smith"));
    metadata1.setAuthorPerson("1.10");
    metadata1.setAuthorInstitution(Arrays.asList("1.11.1", "1.11.2"));
    metadata1.setAuthorRole("1.12");
    metadata1.setAuthorSpecialty("1.13");
    metadata1.setClassCode(ClassCodeEnum.HISTORY_AND_PHYSICAL.getValue());
    metadata1.setClassCode_localized(ClassCodeEnum.HISTORY_AND_PHYSICAL.getValue());
    metadata1.setConfidentialityCode("1.16");
    metadata1.setConfidentialityCode_localized("1.17");
    metadata1.setFormatCode(FormatCodeEnum.HL7_CCD_DOCUMENT);
    metadata1.setHealthcareFacilityTypeCode(HealthcareFacilityTypeCodeEnum.OF.getValue());
    metadata1.setHealthcareFacilityTypeCode_localized(HealthcareFacilityTypeCodeEnum.OF.getValue());
    metadata1.setPracticeSettingCode(PracticeSettingCodeEnum.MULTIDISCIPLINARY.getValue());
    metadata1.setPracticeSettingCode_localized(PracticeSettingCodeEnum.MULTIDISCIPLINARY.getValue());
    metadata1.setLoinc(LoincEnum.LOINC_34133_9.getValue());
    metadata1.setLoinc_localized(LoincEnum.LOINC_34133_9.getValue());
    metadata1.setPatientId("xxx");
    metadata1.setUniqueId("1.27");
    DirectDocument2 doc2 = new DirectDocument2();
    doc2.setData(new String("data2").getBytes());
    DirectDocument2.Metadata metadata2 = doc2.getMetadata();
    metadata2.setMimeType("text/xml");
    metadata2.setId("2.2");
    metadata2.setDescription("2.3");
    metadata2.setCreationTime(new Date());
    metadata2.setLanguageCode("2.5");
    metadata2.setServiceStartTime(new Date());
    metadata2.setServiceStopTime(new Date());
    metadata2.setSourcePatient(new SimplePerson("2.Bob", "2.Smith"));
    metadata2.setAuthorPerson("2.10");
    metadata2.setAuthorInstitution(Arrays.asList("2.11.1", "2.11.2"));
    metadata2.setAuthorRole("2.12");
    metadata2.setAuthorSpecialty("2.13");
    metadata2.setClassCode(ClassCodeEnum.HISTORY_AND_PHYSICAL.getValue());
    metadata2.setClassCode_localized(ClassCodeEnum.HISTORY_AND_PHYSICAL.getValue());
    metadata2.setConfidentialityCode("2.16");
    metadata2.setConfidentialityCode_localized("2.17");
    metadata2.setFormatCode(FormatCodeEnum.IMMUNIZATION_REGISTRY_CONTENT_CRC);
    metadata2.setHealthcareFacilityTypeCode(HealthcareFacilityTypeCodeEnum.OF.getValue());
    metadata2.setHealthcareFacilityTypeCode_localized(HealthcareFacilityTypeCodeEnum.OF.getValue());
    metadata2.setPracticeSettingCode(PracticeSettingCodeEnum.MULTIDISCIPLINARY.getValue());
    metadata2.setPracticeSettingCode_localized(PracticeSettingCodeEnum.MULTIDISCIPLINARY.getValue());
    metadata2.setLoinc(LoincEnum.LOINC_34133_9.getValue());
    metadata2.setLoinc_localized(LoincEnum.LOINC_34133_9.getValue());
    metadata2.setPatientId("xxx");
    metadata2.setUniqueId("2.27");
    documents.getDocuments().add(doc1);
    documents.getDocuments().add(doc2);
    ProvideAndRegisterDocumentSetRequestType request = documents.toProvideAndRegisterDocumentSetRequestType();
    QName qname = new QName("urn:ihe:iti:xds-b:2007", "ProvideAndRegisterDocumentSet_bRequest");
    String body = XmlUtils.marshal(qname, request, ihe.iti.xds_b._2007.ObjectFactory.class);
    System.out.println(body);
    XdsXdmTransformer transformer = new DefaultXdsXdmTransformer();
    File f = transformer.transform(request);
    System.out.println(f.getAbsolutePath());
}
Also used : QName(javax.xml.namespace.QName) XdsXdmTransformer(org.nhindirect.xd.transform.XdsXdmTransformer) Date(java.util.Date) DirectDocument2(org.nhindirect.xd.common.DirectDocument2) DirectDocuments(org.nhindirect.xd.common.DirectDocuments) File(java.io.File) SimplePerson(org.nhindirect.xd.transform.pojo.SimplePerson) ProvideAndRegisterDocumentSetRequestType(ihe.iti.xds_b._2007.ProvideAndRegisterDocumentSetRequestType)

Aggregations

DirectDocument2 (org.nhindirect.xd.common.DirectDocument2)5 DirectDocuments (org.nhindirect.xd.common.DirectDocuments)3 ProvideAndRegisterDocumentSetRequestType (ihe.iti.xds_b._2007.ProvideAndRegisterDocumentSetRequestType)2 Date (java.util.Date)2 SimplePerson (org.nhindirect.xd.transform.pojo.SimplePerson)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 File (java.io.File)1 IOException (java.io.IOException)1 DataHandler (javax.activation.DataHandler)1 QName (javax.xml.namespace.QName)1 MetadataException (org.nhindirect.xd.common.exception.MetadataException)1 XdsXdmTransformer (org.nhindirect.xd.transform.XdsXdmTransformer)1 TransformationException (org.nhindirect.xd.transform.exception.TransformationException)1