use of org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery in project ipf by oehf.
the class GetDocumentsQueryTransformerTest method testFromEbXMLNull.
@Test
public void testFromEbXMLNull() {
var result = new GetDocumentsQuery();
transformer.fromEbXML(result, null);
assertEquals(new GetDocumentsQuery(), result);
}
use of org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery in project ipf by oehf.
the class GetDocumentsQueryTransformerTest method setUp.
@BeforeEach
public void setUp() {
transformer = new GetDocumentsQueryTransformer();
query = new GetDocumentsQuery();
query.setUuids(Arrays.asList("uuid1", "uuid2"));
query.setUniqueIds(Arrays.asList("uniqueId1", "uniqueId2"));
query.setHomeCommunityId("home");
var extraParams1 = new QueryList<String>();
extraParams1.getOuterList().add(Arrays.asList("para-11", "para-12"));
extraParams1.getOuterList().add(Arrays.asList("para-21", "para-22", "para-23"));
var extraParams2 = new QueryList<String>();
extraParams2.getOuterList().add(Arrays.asList("dia-31", "dia-32", "dia-33"));
extraParams2.getOuterList().add(Collections.singletonList("dia-41"));
query.getExtraParameters().put("$PatientPerimeter", extraParams1);
query.getExtraParameters().put("$PatientDiameter", extraParams2);
ebXML = new EbXMLFactory30().createAdhocQueryRequest();
}
use of org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery in project MobileAccessGateway by i4mi.
the class Iti67RequestConverter method searchParameterIti67ToFindDocumentsQuery.
/**
* convert ITI-67 request to ITI-18 request
* @param searchParameter
* @return
*/
public QueryRegistry searchParameterIti67ToFindDocumentsQuery(@Body Iti67SearchParameters searchParameter) {
boolean getLeafClass = true;
Query searchQuery = null;
if (searchParameter.get_id() != null || searchParameter.getIdentifier() != null) {
GetDocumentsQuery query = new GetDocumentsQuery();
if (searchParameter.getIdentifier() != null) {
String val = searchParameter.getIdentifier().getValue();
if (val.startsWith("urn:oid:")) {
query.setUniqueIds(Collections.singletonList(val.substring("urn:oid:".length())));
} else if (val.startsWith("urn:uuid:")) {
query.setUuids(Collections.singletonList(val.substring("urn:uuid:".length())));
}
} else {
query.setUuids(Collections.singletonList(searchParameter.get_id().getValue()));
}
searchQuery = query;
} else {
FindDocumentsQuery query;
// TODO related Note 4 --> $XDSDocumentEntryReferenceIdList
TokenOrListParam related = searchParameter.getRelated();
if (related != null) {
FindDocumentsByReferenceIdQuery referenceIdQuery = new FindDocumentsByReferenceIdQuery();
;
QueryList<ReferenceId> outerReferences = new QueryList<ReferenceId>();
List<ReferenceId> references = new ArrayList<ReferenceId>();
for (TokenParam token : related.getValuesAsQueryTokens()) {
references.add(new ReferenceId(token.getValue(), null, getScheme(token.getSystem())));
}
outerReferences.getOuterList().add(references);
referenceIdQuery.setTypedReferenceIds(outerReferences);
query = referenceIdQuery;
} else
query = new FindDocumentsQuery();
// query.setMetadataLevel(metadataLevel);
// status --> $XDSDocumentEntryStatus
TokenOrListParam status = searchParameter.getStatus();
if (status != null) {
List<AvailabilityStatus> availabilites = new ArrayList<AvailabilityStatus>();
for (TokenParam statusToken : status.getValuesAsQueryTokens()) {
String tokenValue = statusToken.getValue();
if (tokenValue.equals("current"))
availabilites.add(AvailabilityStatus.APPROVED);
else if (tokenValue.equals("superseded"))
availabilites.add(AvailabilityStatus.DEPRECATED);
}
query.setStatus(availabilites);
}
// patient or patient.identifier --> $XDSDocumentEntryPatientId
TokenParam tokenIdentifier = searchParameter.getPatientIdentifier();
if (tokenIdentifier != null) {
String system = getScheme(tokenIdentifier.getSystem());
if (system == null)
throw new InvalidRequestException("Missing OID for patient");
query.setPatientId(new Identifiable(tokenIdentifier.getValue(), new AssigningAuthority(system)));
}
ReferenceParam patientRef = searchParameter.getPatientReference();
if (patientRef != null) {
Identifiable id = transformReference(patientRef.getValue());
query.setPatientId(id);
}
// date Note 1 Note 5 --> $DSDocumentEntryCreationTimeFrom
// date Note 2 Note 5 --> $XDSDocumentEntryCreationTimeTo
DateRangeParam dateRange = searchParameter.getDate();
if (dateRange != null) {
DateParam creationTimeFrom = dateRange.getLowerBound();
DateParam creationTimeTo = dateRange.getUpperBound();
query.getCreationTime().setFrom(timestampFromDateParam(creationTimeFrom));
query.getCreationTime().setTo(timestampFromDateParam(creationTimeTo));
}
// period Note 1 --> $XDSDocumentEntryServiceStartTimeFrom
// period Note 2 --> $XDSDocumentEntryServiceStartTimeTo
// period Note 1 --> $XDSDocumentEntryServiceStopTimeFrom
// period Note 2 --> $XDSDocumentEntryServiceStopTimeTo
DateRangeParam periodRange = searchParameter.getPeriod();
if (periodRange != null) {
DateParam periodFrom = periodRange.getLowerBound();
DateParam periodTo = periodRange.getUpperBound();
query.getServiceStopTime().setFrom(timestampFromDateParam(periodFrom));
query.getServiceStartTime().setTo(timestampFromDateParam(periodTo));
}
// category --> $XDSDocumentEntryClassCode
TokenOrListParam categories = searchParameter.getCategory();
query.setClassCodes(codesFromTokens(categories));
// type --> $XDSDocumentEntryTypeCode
TokenOrListParam types = searchParameter.getType();
query.setTypeCodes(codesFromTokens(types));
// setting --> $XDSDocumentEntryPracticeSettingCode
TokenOrListParam settings = searchParameter.getSetting();
query.setPracticeSettingCodes(codesFromTokens(settings));
// facility --> $XDSDocumentEntryHealthcareFacilityTypeCode
TokenOrListParam facilities = searchParameter.getFacility();
query.setHealthcareFacilityTypeCodes(codesFromTokens(facilities));
// event --> $XDSDocumentEntryEventCodeList
TokenOrListParam events = searchParameter.getEvent();
if (events != null) {
QueryList<Code> eventCodeList = new QueryList<Code>();
eventCodeList.getOuterList().add(codesFromTokens(events));
query.setEventCodes(eventCodeList);
}
// security-label --> $XDSDocumentEntryConfidentialityCode
TokenOrListParam securityLabels = searchParameter.getSecurityLabel();
if (securityLabels != null) {
QueryList<Code> confidentialityCodes = new QueryList<Code>();
confidentialityCodes.getOuterList().add(codesFromTokens(securityLabels));
query.setConfidentialityCodes(confidentialityCodes);
}
// format --> $XDSDocumentEntryFormatCode
TokenOrListParam formats = searchParameter.getFormat();
query.setFormatCodes(codesFromTokens(formats));
// TODO author.given / author.family --> $XDSDocumentEntryAuthorPerson
StringParam authorGivenName = searchParameter.getAuthorGivenName();
StringParam authorFamilyName = searchParameter.getAuthorFamilyName();
if (authorGivenName != null || authorFamilyName != null) {
Person person = new Person();
XcnName name = new XcnName();
if (authorFamilyName != null)
name.setFamilyName(authorFamilyName.getValue());
if (authorGivenName != null)
name.setGivenName(authorGivenName.getValue());
person.setName(name);
// String author = (authorGivenName != null ? authorGivenName.getValue() : "%")+" "+(authorFamilyName != null ? authorFamilyName.getValue() : "%");
List<Person> authorPersons = Collections.singletonList(person);
query.setTypedAuthorPersons(authorPersons);
}
searchQuery = query;
}
final QueryRegistry queryRegistry = new QueryRegistry(searchQuery);
queryRegistry.setReturnType((getLeafClass) ? QueryReturnType.LEAF_CLASS : QueryReturnType.OBJECT_REF);
return queryRegistry;
}
use of org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery in project MobileAccessGateway by i4mi.
the class IdRequestConverter method idToGetDocumentsQuery.
/**
* convert ITI-67 request to ITI-18 request
*
* @param searchParameter
* @return
*/
public QueryRegistry idToGetDocumentsQuery(@Header(value = "FhirHttpUri") String fhirHttpUri) {
if (fhirHttpUri != null && fhirHttpUri.contains("/")) {
boolean getLeafClass = true;
String uuid = fhirHttpUri.substring(fhirHttpUri.lastIndexOf("/") + 1);
GetDocumentsQuery query = new GetDocumentsQuery();
final QueryRegistry queryRegistry = new QueryRegistry(query);
query.setUuids(Collections.singletonList(uuid));
queryRegistry.setReturnType((getLeafClass) ? QueryReturnType.LEAF_CLASS : QueryReturnType.OBJECT_REF);
return queryRegistry;
}
return null;
}
use of org.openehealth.ipf.commons.ihe.xds.core.requests.query.GetDocumentsQuery in project ipf by oehf.
the class GetDocumentsQueryTransformerTest method testFromEbXMLEmpty.
@Test
public void testFromEbXMLEmpty() {
var result = new GetDocumentsQuery();
transformer.fromEbXML(result, ebXML);
assertEquals(new GetDocumentsQuery(), result);
}
Aggregations