private String getDFTInvestigationID(OcsOrderSession doOcsOrder) { Iterator<?> investigationIterator = doOcsOrder.getInvestigations().iterator(); StringBuilder dftIDValues = new StringBuilder(); while (investigationIterator.hasNext()) { OrderInvestigation investigation = (OrderInvestigation) investigationIterator.next(); if (!getDomLookup(OrderInvStatus.CANCEL_REQUEST).equals(investigation.getOrdInvCurrentStatus().getOrdInvStatus()) && !getDomLookup(OrderInvStatus.CANCELLED).equals(investigation.getOrdInvCurrentStatus().getOrdInvStatus())) { if (getDomLookup(InvEventType.TIME_SERIES).equals(investigation.getInvestigation().getEventType())) { if (dftIDValues.length() > 0) dftIDValues.append(", "); dftIDValues.append(investigation.getId()); } } } return dftIDValues.toString(); }
private boolean isDFTSpecimen(OrderSpecimen ordSpecBo) { Iterator<?> iter = ordSpecBo.getInvestigations().iterator(); while (iter.hasNext()) { OrderInvestigation ordInv = (OrderInvestigation)iter.next(); if(ordInv.getInvestigation()!=null &&ordInv.getInvestigation().getEventType()!=null &&ordInv.getInvestigation().getEventType().equals(getDomLookup(InvEventType.TIME_SERIES))) return true; } return false; }
public IfOrderInvestigationVo createInvestigationStatusRecord(OrderInvestigationRefVo investigation, IfOrderInvCurrentStatusVo statusRecordVo) throws StaleObjectException { DomainFactory factory = getDomainFactory(); DecimalFormat dftFormatter = new DecimalFormat("G00000000"); OrderInvestigation inv = (OrderInvestigation) factory.getDomainObject(OrderInvestigation.class, investigation.getID_OrderInvestigation()); OrderedInvestigationStatus stat = IfOrderInvCurrentStatusVoAssembler.extractOrderedInvestigationStatus(factory, statusRecordVo); inv.getOrdInvStatusHistory().add(stat); inv.setOrdInvCurrentStatus(stat); // wdev-2998 If the status is SENT // we want to mark the investigation as processed if (stat.getOrdInvStatus().getId() == OrderInvStatus.SENT.getId()) { inv.setWasProcessed(true); if (inv.getSpecimen() != null&&!inv.getSpecimen().isEmpty()) for (Object objSpecimen : inv.getSpecimen()) { OrderSpecimen specimen = (OrderSpecimen)objSpecimen; specimen.setWasProcessed(true); if(inv.getInvestigation()!=null &&inv.getInvestigation().getEventType()!=null && InvEventType.TIME_SERIES.equals( inv.getInvestigation().getEventType())) { specimen.setPlacerOrdNum(dftFormatter.format(inv.getId())); } } } factory.save(inv); return IfOrderInvestigationVoAssembler.create(inv); }
private IfOrderInvestigationVo getPathOrderInvestigation(IfOcsOrderVo order, IfInvestigationLiteVo investigation, OrderSpecimenRefVo orderSpecimen) { if((orderSpecimen==null||ConfigFlag.HL7.UNSOLICTED_NEW_SPECIMEN_PER_INVESTIGATION.getValue()) &&investigation.getInvestigationIndexIsNotNull() &&investigation.getInvestigationIndex().getCategoryIsNotNull() &&investigation.getInvestigationIndex().getCategory().equals(Category.PATHOLOGY) &&investigation.getEventTypeIsNotNull() &&(!investigation.getEventType().equals(InvEventType.TIME_SERIES))) { return null; } if(order==null||order.getInvestigations()==null||investigation==null) { return null; } for (IfOrderInvestigationVo inv : order.getInvestigations()) { if(inv.getInvestigation().equals(investigation)) { if(inv.getSpecimen()==null) { return null; } for (IfOrderSpecimenVo spec : inv.getSpecimen()) { if(spec.equals(orderSpecimen)) { return inv; } } } } return null; }
public Message populateMessage(IfOrderMessageVo msgVo, IfOutOcsOrderVo newOrder) throws Exception { LOG.debug("O01VoMapper populateMessage: entry"); if (msgVo == null || newOrder == null||msgVo.getProviderSystem()==null||msgVo.getProviderSystem().getCodeSystem()==null) throw new Exception("Invalid parameters supplied to populateMessage!"); ORM_O01 order=null; if (msgVo.getOrderCategoryIsNotNull() && msgVo.getOrderCategory().equals(Category.CLINICALIMAGING) ||(msgVo.getInvestigationsIsNotNull()&&msgVo.getInvestigations().size()>0&&msgVo.getInvestigations().get(0).getInvestigation().getEventType().equals(InvEventType.TIME_SERIES))) { order = populateNonSpecimenOrder(msgVo, newOrder); } else if (msgVo.getOrderCategoryIsNotNull() && msgVo.getOrderCategory().equals(Category.PATHOLOGY)) { order = populatePathologyOrder(msgVo, newOrder); } if (order == null) throw new Exception("Order message is null, an error has occurred"); // Setup Message Header Details populateMSH(msgVo.getProviderSystem(), order.getMSH(),getMessageControlIDFromOrderMessageVo( msgVo),"ORM","O01"); //Only Clinical Imaging and can be scheduled passed over to CARE UK code //MN WDEV-7711 changed newOrder.getInvestigations().get(0) to msgVo.getInvestigations().get(0) for RAD investigations //there should only be 1 investigation per message if((msgVo.getOrderCategoryIsNotNull() && msgVo.getOrderCategory().equals(Category.CLINICALIMAGING)) && ocsIf.getService(msgVo.getInvestigations() .get(0).getInvestigation()).getCanBeScheduled().booleanValue() ) { //ims.RefMan.helper.IHL7Helper RefManHelper= new ims.RefMan.helper.RefManHL7Helper(); IHL7Helper RefManHelper=(IHL7Helper)getDomainImpl("ims.RefMan.helper.RefManHL7Helper"); order = RefManHelper.PopulateOrderMessage(order,msgVo,msgVo.getInvestigations().get(0),RefMandomain); } LOG.debug("O01VoMapper populateMessage: exit"); return order; }
private void renderOrder(IfOrderInvestigationVo investigation, IfOrderMessageVo msgVo, IfOutOcsOrderVo newOrder, ORC orc, OBR obr, int id) throws Exception { LOG.debug("O01VoMapper renderOrder: entry"); // OBR-1 Set ID � OBR (SI) obr.getSetIDOBR().setValue(String.valueOf(id+1)); // OBR-2 Placer order number (EI) 00216 obr.getPlacerOrderNumber().getEntityIdentifier().setValue(msgVo.getPlacerOrdNum()); // OBR-3 Filler Order Number if (msgVo.getFillerNumberIsNotNull()) { obr.getFillerOrderNumber().getEntityIdentifier().setValue(msgVo.getFillerNumber()); } renderInvestigationToORC_OBR(investigation, orc, obr,msgVo.getProviderSystem()); renderMsgVoToORC(msgVo, orc); renderNewOrderToORC_OBR(msgVo.getProviderSystem(),newOrder, orc, obr); if (orc.getDateTimeOfTransaction().getTimeOfAnEvent().getValue() == null) renderDateTimeVoToTS(new DateTime(), orc.getDateTimeOfTransaction()); if(investigation.getInvestigationIsNotNull() &&investigation.getInvestigation().getEventType().equals(InvEventType.TIME_SERIES) &&investigation.getInvestigation().getPathInvDetailsIsNotNull() &&investigation.getInvestigation().getPathInvDetails().getSpecimens().size()>0 &&investigation.getInvestigation().getPathInvDetails().getSpecimens().get(0).getTypeIsNotNull()) { SpecimenType type = investigation.getInvestigation().getPathInvDetails().getSpecimens().get(0).getType(); SPS sps = obr.getSpecimenSource(); sps.getSpecimenSourceNameOrCode().getIdentifier().setValue(svc.getRemoteLookup(type.getId(), msgVo.getProviderSystem().getCodeSystem().getText())); sps.getSpecimenSourceNameOrCode().getText().setValue(type.getText()); } LOG.debug("O01VoMapper renderOrder: exit"); }
private boolean isDFT(OrderInvestigationListVo orderInvestigationListVo) { if(orderInvestigationListVo == null || orderInvestigationListVo.getInvestigation() == null) return false; if(InvEventType.TIME_SERIES.equals(orderInvestigationListVo.getInvestigation().getEventType())) return true; return false; }
private boolean isDFT(NewResultsSearchListVo newResult) //WDEV-16232 { if(newResult == null || newResult.getInvestigation() == null) return false; if(InvEventType.TIME_SERIES.equals(newResult.getInvestigation().getEventType())) return true; return false; }
private boolean isDFT(NewResultsListVo newResult) //WDEV-16232 { if(newResult == null || newResult.getInvestigation() == null) return false; if(InvEventType.TIME_SERIES.equals(newResult.getInvestigation().getEventType())) return true; return false; }
private boolean isDFT(OrderInvestigationVo voInvestigation) { if(voInvestigation == null || voInvestigation.getInvestigation() == null) return false; if(InvEventType.TIME_SERIES.equals(voInvestigation.getInvestigation().getEventType())) return true; return false; }
private boolean isTimeSeriesInvestigationIdentifier(Object identifier) { if (identifier instanceof OrderInvestigationVoCollection) { OrderInvestigationVoCollection investigationCollection = (OrderInvestigationVoCollection) identifier; if (investigationCollection.size() == 1) { if (InvEventType.TIME_SERIES.equals(investigationCollection.get(0).getInvestigation().getEventType())) return true; } } return false; }
private boolean isDFT(NewResultSpecDocVo result) //WDEV-16232 { if(result == null || result.getInvestigation() == null) return false; if(InvEventType.TIME_SERIES.equals(result.getInvestigation().getEventType())) return true; return false; }
private boolean isDFT(PathologyOrderVo result) //WDEV-16504 { if(result == null || result.getInvestigation() == null) return false; if(InvEventType.TIME_SERIES.equals(result.getInvestigation().getEventType())) return true; return false; }
private boolean isDFT(PathologyResultListShortVo result) { if(result == null || result.getInvestigation() == null) return false; if(InvEventType.TIME_SERIES.equals(result.getInvestigation().getEventType())) return true; return false; }
private boolean isDFT() { if(pathOrdInv != null && InvEventType.TIME_SERIES.equals(pathOrdInv.getIInvestigationEventType())) return true; return false; }
private boolean isDFT(InvEventType investigationEventType) { if(investigationEventType == null) return false; if(InvEventType.TIME_SERIES.equals(investigationEventType)) return true; return false; }
private void updateSpecimenWorkListItemsForDFT(List<?> orderInvestigations) throws StaleObjectException { if (orderInvestigations == null) return; StringBuilder dftInvestigations = new StringBuilder(); Iterator<?> investigationIterator = orderInvestigations.iterator(); while (investigationIterator.hasNext()) { OrderInvestigation investigation = (OrderInvestigation) investigationIterator.next(); if (getDomLookup(InvEventType.TIME_SERIES).equals(investigation.getInvestigation().getEventType())) { if (dftInvestigations.length() > 0) dftInvestigations.append(", "); dftInvestigations.append(investigation.getId()); } } if (dftInvestigations.length() > 0) { List<?> workListItems = getDomainFactory().find("SELECT item FROM SpecimenWorkListItem AS item LEFT JOIN item.dFTOrderInvestigation AS investigation WHERE investigation.id in (" + dftInvestigations.toString() + ")"); if (workListItems != null && workListItems.size() > 0) { Iterator<?> worklistIterator = workListItems.iterator(); while (worklistIterator.hasNext()) { SpecimenWorkListItem worklistItem = (SpecimenWorkListItem) worklistIterator.next(); worklistItem.setCollectionStatus(getDomLookup(SpecimenCollectionStatus.CANCELLED)); getDomainFactory().save(worklistItem); } } } }
boolean isDFT(OrderInvestigation ordInv) { if(ordInv!=null&&ordInv.getInvestigation()!=null &&ordInv.getInvestigation().getEventType()!=null &&ordInv.getInvestigation().getEventType().equals(getDomLookup(InvEventType.TIME_SERIES))) { return true; } else { return false; } }
private void renderOrder(IfOrderInvestigationVo investigation, IfOrderMessageVo msgVo, IfOutOcsOrderVo newOrder, ORC orc, OBR obr, int id) throws Exception { LOG.debug("O01VoMapper renderOrder: entry"); // OBR-1 Set ID – OBR (SI) obr.getSetIDOBR().setValue(String.valueOf(id+1)); // OBR-2 Placer order number (EI) 00216 obr.getPlacerOrderNumber().getEntityIdentifier().setValue(msgVo.getPlacerOrdNum()); // OBR-3 Filler Order Number if (msgVo.getFillerNumberIsNotNull()) { obr.getFillerOrderNumber().getEntityIdentifier().setValue(msgVo.getFillerNumber()); } renderInvestigationToORC_OBR(investigation, orc, obr,msgVo.getProviderSystem()); renderMsgVoToORC(msgVo, orc); renderNewOrderToORC_OBR(msgVo.getProviderSystem(),newOrder, orc, obr); if (orc.getDateTimeOfTransaction().getTimeOfAnEvent().getValue() == null) renderDateTimeVoToTS(new DateTime(), orc.getDateTimeOfTransaction()); if(investigation.getInvestigationIsNotNull() &&investigation.getInvestigation().getEventType().equals(InvEventType.TIME_SERIES) &&investigation.getInvestigation().getPathInvDetailsIsNotNull() &&investigation.getInvestigation().getPathInvDetails().getSpecimens().size()>0 &&investigation.getInvestigation().getPathInvDetails().getSpecimens().get(0).getTypeIsNotNull()) { SpecimenType type = investigation.getInvestigation().getPathInvDetails().getSpecimens().get(0).getType(); SPS sps = obr.getSpecimenSource(); sps.getSpecimenSourceNameOrCode().getIdentifier().setValue(svc.getRemoteLookup(type.getId(), msgVo.getProviderSystem().getCodeSystem().getText())); sps.getSpecimenSourceNameOrCode().getText().setValue(type.getText()); } LOG.debug("O01VoMapper renderOrder: exit"); }