protected RequestType getRequestType(PRPAIN201305UV02 event, AssertionType assertion) { addDebugLog("Begin -- PatientDiscoveryPolicyTransformHelper.getRequestType()"); RequestType request = new RequestType(); setSubjectToRequestType(event, request, assertion); ResourceType resource = null; AttributeHelper attrHelper = new AttributeHelper(); II ii = extractPatientIdentifier(event); if (ii != null) { resource = new ResourceType(); resource .getAttribute() .add( attrHelper.attributeFactory( PatientAssigningAuthorityAttributeId, Constants.DataTypeString, ii.getRoot())); String sStrippedPatientId = PatientIdFormatUtil.parsePatientId(ii.getExtension()); log.debug("transformSubjectAddedInToCheckPolicy: sStrippedPatientId = " + sStrippedPatientId); resource .getAttribute() .add( attrHelper.attributeFactory( PatientIdAttributeId, Constants.DataTypeString, sStrippedPatientId)); request.getResource().add(resource); } request.getResource().add(resource); addDebugLog("End -- PatientDiscoveryPolicyTransformHelper.getRequestType()"); return request; }
/** * Transform method to create a CheckPolicyRequest object from a 201306 message * * @param request * @return CheckPolicyRequestType */ public CheckPolicyRequestType transformPatientDiscoveryNhincToCheckPolicy( PatDiscReqEventType event) { addDebugLog( "Begin -- PatientDiscoveryPolicyTransformHelper.transformPatientDiscoveryNhincToCheckPolicy()"); CheckPolicyRequestType checkPolicyRequest = null; if (event == null) { addErrorLog("Request is null."); return checkPolicyRequest; } else { checkPolicyRequest = new CheckPolicyRequestType(); } PRPAIN201306UV02 patDiscReq = event.getPRPAIN201306UV02(); RequestType request = new RequestType(); SubjectHelper subjHelp = new SubjectHelper(); SubjectType subject = subjHelp.subjectFactory(event.getSendingHomeCommunity(), event.getAssertion()); log.debug("transformPatientDiscoveryNhincToCheckPolicy - adding subject"); request.getSubject().add(subject); II qualifiedPatientIdentifier = extractPatientIdentifier(patDiscReq); if (qualifiedPatientIdentifier != null) { ResourceType resource = new ResourceType(); AttributeHelper attrHelper = new AttributeHelper(); resource .getAttribute() .add( attrHelper.attributeFactory( PatientAssigningAuthorityAttributeId, Constants.DataTypeString, qualifiedPatientIdentifier.getRoot())); String sStrippedPatientId = PatientIdFormatUtil.parsePatientId(qualifiedPatientIdentifier.getExtension()); log.debug( "transformPatientDiscoveryNhincToCheckPolicy: sStrippedPatientId = " + sStrippedPatientId); resource .getAttribute() .add( attrHelper.attributeFactory( PatientIdAttributeId, Constants.DataTypeString, sStrippedPatientId)); request.getResource().add(resource); } log.debug("transformPatientDiscoveryNhincToCheckPolicy - adding assertion data"); AssertionHelper assertHelp = new AssertionHelper(); assertHelp.appendAssertionDataToRequest(request, event.getAssertion()); request.setAction(ActionHelper.actionFactory(ActionInValue)); checkPolicyRequest.setRequest(request); checkPolicyRequest.setAssertion(event.getAssertion()); addDebugLog( "End -- PatientDiscoveryPolicyTransformHelper.transformPatientDiscoveryNhincToCheckPolicy()"); return checkPolicyRequest; }
public static void PrintId(II id, String idname) { if (idname == null) { idname = ""; } if (!(id == null)) { log.info(idname + ".id.root=" + id.getRoot() + ";"); log.info(idname + ".id.extension=" + id.getExtension() + ";"); } else { log.info("id for " + idname + " is null"); } }
/** Test of BuildMessageFromMpiPatient method, of class HL7Parser201306. */ @Test public void testBuildMessageFromMpiPatient() { System.out.println("BuildMessageFromMpiPatient"); II subjectId = new II(); subjectId.setRoot("2.16.840.1.113883.3.200"); subjectId.setExtension("1234"); String firstExpectedName = "Joe"; String lastExpectedName = "Smith"; String middleExpectedName = "Middle"; String expectedTitle = "Title"; String expectedSuffix = "Suffix"; PRPAIN201305UV02 query = TestHelper.build201305( firstExpectedName, lastExpectedName, "M", "March 1, 1956", subjectId); Identifier patId = new Identifier(); patId.setId("1234"); patId.setOrganizationId("2.16.840.1.113883.3.200"); Patient patient = TestHelper.createMpiPatient( firstExpectedName, lastExpectedName, middleExpectedName, "M", "March 1, 1956", patId); patient.getName().setSuffix(expectedSuffix); patient.getName().setTitle(expectedTitle); PRPAIN201306UV02 result = HL7Parser201306.BuildMessageFromMpiPatient(patient, query); // TODO review the generated test code and remove the default call to fail. PNExplicit pnResult = result .getControlActProcess() .getSubject() .get(0) .getRegistrationEvent() .getSubject1() .getPatient() .getPatientPerson() .getValue() .getName() .get(0); PatientName patientName = extractName(pnResult); assertEquals(lastExpectedName, patientName.LastName); assertEquals(firstExpectedName, patientName.FirstName); assertEquals(middleExpectedName, patientName.MiddleName); assertEquals(expectedTitle, patientName.Title); assertEquals(expectedSuffix, patientName.Suffix); }
@Test public void testBuildMessageFromMpiPatient_MultiPhoneNumber() { System.out.println("testBuildMessageFromMpiPatient_MultiPhoneNumber"); II subjectId = new II(); subjectId.setRoot("2.16.840.1.113883.3.200"); subjectId.setExtension("1234"); String firstExpectedName = "Joe"; String lastExpectedName = "Smith"; String middleExpectedName = "Middle"; String expectedTitle = "Title"; String expectedSuffix = "Suffix"; PRPAIN201305UV02 query = TestHelper.build201305( firstExpectedName, lastExpectedName, "M", "March 1, 1956", subjectId); Identifier patId = new Identifier(); patId.setId("1234"); patId.setOrganizationId("2.16.840.1.113883.3.200"); Patient patient = TestHelper.createMpiPatient( firstExpectedName, lastExpectedName, middleExpectedName, "M", "March 1, 1956", patId); patient.getName().setSuffix(expectedSuffix); patient.getName().setTitle(expectedTitle); patient.getPhoneNumbers().add(new PhoneNumber("7031231234")); patient.getPhoneNumbers().add(new PhoneNumber("2021231234")); PRPAIN201306UV02 result = HL7Parser201306.BuildMessageFromMpiPatient(patient, query); // TODO review the generated test code and remove the default call to fail. PRPAMT201310UV02Person person = result .getControlActProcess() .getSubject() .get(0) .getRegistrationEvent() .getSubject1() .getPatient() .getPatientPerson() .getValue(); assertEquals(2, person.getTelecom().size()); assertEquals("7031231234", person.getTelecom().get(0).getValue()); assertEquals("2021231234", person.getTelecom().get(1).getValue()); }
public static Identifiers ExtractPersonIdentifiers(PRPAMT201306UV02ParameterList params) { log.debug("Entering HL7Parser201305.ExtractPersonIdentifiers method..."); Identifiers ids = new Identifiers(); Identifier id = new Identifier(); if (params.getLivingSubjectId() != null && params.getLivingSubjectId().size() > 0 && params.getLivingSubjectId().get(0) != null) { PRPAMT201306UV02LivingSubjectId livingSubjectId = params.getLivingSubjectId().get(0); if (livingSubjectId.getValue() != null && livingSubjectId.getValue().size() > 0 && livingSubjectId.getValue().get(0) != null) { II subjectId = livingSubjectId.getValue().get(0); if (subjectId.getExtension() != null && subjectId.getExtension().length() > 0 && subjectId.getRoot() != null && subjectId.getRoot().length() > 0) { id.setId(subjectId.getExtension()); id.setOrganizationId(subjectId.getRoot()); log.info( "Created id from patient identifier [organization=" + id.getOrganizationId() + "][id=" + id.getId() + "]"); ids.add(id); } else { log.info("message does not contain an id"); } } else { log.info("message does not contain an id"); } } else { log.info("message does not contain an id"); } log.debug("Exiting HL7Parser201305.ExtractPersonIdentifiers method..."); return ids; }
@Test public void testBuildMessageFromMpiPatient_MultiAddress() { System.out.println("testBuildMessageFromMpiPatient_MultiAddress"); II subjectId = new II(); subjectId.setRoot("2.16.840.1.113883.3.200"); subjectId.setExtension("1234"); String firstExpectedName = "Joe"; String lastExpectedName = "Smith"; String middleExpectedName = "Middle"; String expectedTitle = "Title"; String expectedSuffix = "Suffix"; PRPAIN201305UV02 query = TestHelper.build201305( firstExpectedName, lastExpectedName, "M", "March 1, 1956", subjectId); Identifier patId = new Identifier(); patId.setId("1234"); patId.setOrganizationId("2.16.840.1.113883.3.200"); Patient patient = TestHelper.createMpiPatient( firstExpectedName, lastExpectedName, middleExpectedName, "M", "March 1, 1956", patId); patient.getName().setSuffix(expectedSuffix); patient.getName().setTitle(expectedTitle); Address add = new Address(); add.setCity("Chantilly"); add.setState("VA"); add.setStreet1("5155 Parkstone Drive"); add.setStreet2("Att:Developer"); add.setZip("20151"); Address add2 = new Address(); add2.setCity("Melbourne"); add2.setState("FL"); add2.setStreet1("1025 West NASA Boulevard"); add2.setStreet2("Att:Developer"); add2.setZip("32919-0001"); patient.getAddresses().add(add); patient.getAddresses().add(add2); PRPAIN201306UV02 result = HL7Parser201306.BuildMessageFromMpiPatient(patient, query); // TODO review the generated test code and remove the default call to fail. PRPAMT201310UV02Person person = result .getControlActProcess() .getSubject() .get(0) .getRegistrationEvent() .getSubject1() .getPatient() .getPatientPerson() .getValue(); assertEquals(2, person.getAddr().size()); assertEquals(5, person.getAddr().get(0).getContent().size()); assertEquals(5, person.getAddr().get(1).getContent().size()); // assertEquals("5155 Parkstone Drive", person.getAddr().get(0).getUse().get(0)); // assertEquals("1025 West NASA Boulevard", person.getAddr().get(1).getUse().get(0)); }
public static II IIFactory(String root, String extension) { II ii = new II(); ii.setExtension(extension); ii.setRoot(HomeCommunityMap.formatHomeCommunityId(root)); return ii; }
public static II IIFactoryCreateNull(String nullFlavor) { II ii = new II(); ii.getNullFlavor().add(Constants.NullFlavor_NotAvailable); return ii; }
private static II extractPatientIdentifier(PRPAIN201305UV02 message) { II ii = null; String assigningAuthority = null; if (message != null && message.getControlActProcess() != null && NullChecker.isNotNullish(message.getControlActProcess().getAuthorOrPerformer()) && message.getControlActProcess().getAuthorOrPerformer().get(0) != null && message.getControlActProcess().getAuthorOrPerformer().get(0).getAssignedDevice() != null && message .getControlActProcess() .getAuthorOrPerformer() .get(0) .getAssignedDevice() .getValue() != null && NullChecker.isNotNullish( message .getControlActProcess() .getAuthorOrPerformer() .get(0) .getAssignedDevice() .getValue() .getId()) && message .getControlActProcess() .getAuthorOrPerformer() .get(0) .getAssignedDevice() .getValue() .getId() .get(0) != null && NullChecker.isNotNullish( message .getControlActProcess() .getAuthorOrPerformer() .get(0) .getAssignedDevice() .getValue() .getId() .get(0) .getRoot())) { assigningAuthority = message .getControlActProcess() .getAuthorOrPerformer() .get(0) .getAssignedDevice() .getValue() .getId() .get(0) .getRoot(); } if ((message != null) && (message.getControlActProcess() != null) && (message.getControlActProcess().getQueryByParameter() != null)) { JAXBElement<PRPAMT201306UV02QueryByParameter> queryParam = message.getControlActProcess().getQueryByParameter(); PRPAMT201306UV02QueryByParameter queryParam201306 = queryParam.getValue(); if (queryParam201306.getParameterList() != null && queryParam201306.getParameterList().getLivingSubjectId() != null) { List<PRPAMT201306UV02LivingSubjectId> livingSubjectIdList = queryParam201306.getParameterList().getLivingSubjectId(); if (NullChecker.isNotNullish(livingSubjectIdList)) { for (PRPAMT201306UV02LivingSubjectId livingSubId : livingSubjectIdList) { for (II id : livingSubId.getValue()) { if (id != null && NullChecker.isNotNullish(id.getExtension()) && NullChecker.isNotNullish(id.getRoot()) && id.getRoot().equalsIgnoreCase(assigningAuthority)) { ii = id; // Break out of the inner loop break; } } // If the id was found break out of the outer loop if (ii != null) { break; } } } } } return ii; }
/** * Transform method to create a CheckPolicyRequest object from a 201305 request * * @param request * @return CheckPolicyRequestType */ public CheckPolicyRequestType transformPatientDiscoveryEntityToCheckPolicy( RespondingGatewayPRPAIN201305UV02RequestType event) { addDebugLog( "Begin -- PatientDiscoveryPolicyTransformHelper.transformPatientDiscoveryEntityToCheckPolicy()"); CheckPolicyRequestType checkPolicyRequest = null; if (event == null) { addErrorLog("Request is null."); return checkPolicyRequest; } else { checkPolicyRequest = new CheckPolicyRequestType(); } PRPAIN201305UV02 patDiscReq = event.getPRPAIN201305UV02(); // RequestType request = getRequestType(patDiscReq, event.getAssertion()); RequestType request = new RequestType(); SubjectHelper subjHelp = new SubjectHelper(); // SubjectType subject = subjHelp.subjectFactory(event.getAssertion().getHomeCommunity(), // event.getAssertion()); SubjectType subject = new SubjectType(); subject.setSubjectCategory(SubjectHelper.SubjectCategory); log.debug("transformPatientDiscoveryNhincToCheckPolicy - adding subject"); request.getSubject().add(subject); II qualifiedPatientIdentifier = extractPatientIdentifier(patDiscReq); if (qualifiedPatientIdentifier != null) { ResourceType resource = new ResourceType(); AttributeHelper attrHelper = new AttributeHelper(); resource .getAttribute() .add( attrHelper.attributeFactory( PatientAssigningAuthorityAttributeId, Constants.DataTypeString, qualifiedPatientIdentifier.getRoot())); String sStrippedPatientId = PatientIdFormatUtil.parsePatientId(qualifiedPatientIdentifier.getExtension()); log.debug( "transformPatientDiscoveryNhincToCheckPolicy: sStrippedPatientId = " + sStrippedPatientId); resource .getAttribute() .add( attrHelper.attributeFactory( PatientIdAttributeId, Constants.DataTypeString, sStrippedPatientId)); HomeCommunityType homeCommunityId = null; if (event != null && event.getPRPAIN201305UV02() != null && NullChecker.isNotNullish(event.getPRPAIN201305UV02().getReceiver()) && event.getPRPAIN201305UV02().getReceiver().get(0) != null && event.getPRPAIN201305UV02().getReceiver().get(0).getDevice() != null && event.getPRPAIN201305UV02().getReceiver().get(0).getDevice().getAsAgent() != null && event.getPRPAIN201305UV02().getReceiver().get(0).getDevice().getAsAgent().getValue() != null && event .getPRPAIN201305UV02() .getReceiver() .get(0) .getDevice() .getAsAgent() .getValue() .getRepresentedOrganization() != null && event .getPRPAIN201305UV02() .getReceiver() .get(0) .getDevice() .getAsAgent() .getValue() .getRepresentedOrganization() .getValue() != null && NullChecker.isNotNullish( event .getPRPAIN201305UV02() .getReceiver() .get(0) .getDevice() .getAsAgent() .getValue() .getRepresentedOrganization() .getValue() .getId()) && event .getPRPAIN201305UV02() .getReceiver() .get(0) .getDevice() .getAsAgent() .getValue() .getRepresentedOrganization() .getValue() .getId() .get(0) != null && NullChecker.isNotNullish( event .getPRPAIN201305UV02() .getReceiver() .get(0) .getDevice() .getAsAgent() .getValue() .getRepresentedOrganization() .getValue() .getId() .get(0) .getRoot())) { homeCommunityId = new HomeCommunityType(); homeCommunityId.setHomeCommunityId( event .getPRPAIN201305UV02() .getReceiver() .get(0) .getDevice() .getAsAgent() .getValue() .getRepresentedOrganization() .getValue() .getId() .get(0) .getRoot()); } resource .getAttribute() .add( attrHelper.attributeFactory( Constants.HomeCommunityAttributeId, Constants.DataTypeString, subjHelp.determineSendingHomeCommunityId(homeCommunityId, event.getAssertion()))); request.getResource().add(resource); } log.debug("transformPatientDiscoveryNhincToCheckPolicy - adding assertion data"); AssertionHelper assertHelp = new AssertionHelper(); assertHelp.appendAssertionDataToRequest(request, event.getAssertion()); request.setAction(ActionHelper.actionFactory(ActionOutValue)); checkPolicyRequest.setRequest(request); checkPolicyRequest.setAssertion(event.getAssertion()); addDebugLog( "End -- PatientDiscoveryPolicyTransformHelper.transformPatientDiscoveryEntityToCheckPolicy()"); return checkPolicyRequest; }
@Test public void ensureNoDuplicates() { II id1 = new II(); id1.setRoot("1.1"); id1.setExtension("patientId"); id1.setAssigningAuthorityName("AA"); II id2 = new II(); id2.setRoot("1.1"); id2.setExtension("patientId"); id2.setAssigningAuthorityName("AA"); II[] idArray = new II[2]; idArray[0] = id1; idArray[1] = id2; AggregationService service = new AggregationService(); Set<II> idSet = service.removeDuplicates(java.util.Arrays.asList(idArray)); assertEquals(1, idSet.size()); II[] noDupesArray = (II[]) idSet.toArray(new II[0]); assertEquals(id1.getAssigningAuthorityName(), noDupesArray[0].getAssigningAuthorityName()); assertEquals(id1.getExtension(), noDupesArray[0].getExtension()); assertEquals(id1.getRoot(), noDupesArray[0].getRoot()); assertEquals(id1.isDisplayable(), noDupesArray[0].isDisplayable()); }