Java 类ims.core.vo.domain.PatientAssembler 实例源码
项目:AvoinApotti
文件:DemographicsImpl.java
protected Patient getLocalPatient(ims.core.patient.domain.objects.Patient domPatient)
{
if (domPatient == null)
return null;
//recurse to get master patient if this patient was merged
ims.core.patient.domain.objects.Patient foundPatient = domPatient;
boolean isMergedPatient = false;
while(domPatient.getAssociatedPatient() != null)
{
domPatient = domPatient.getAssociatedPatient();
isMergedPatient = true;
}
if(isMergedPatient)
raiseAlert(domPatient.getMergedMessage(foundPatient));
Patient voPatient = PatientAssembler.create(domPatient);
if (voPatient != null && voPatient.getAge() == null) //wdev-14325
voPatient.calculateAge();
if (voPatient != null && voPatient.getCommChannels() != null) //wdev-14325
voPatient.getCommChannels().sort();
// Set Allergies & Allerts
if(voPatient != null) //wdev-14325
{
voPatient.setHasAlerts(hasAlerts(domPatient.getId()));
voPatient.setHasAllergies(hasAllergy(domPatient.getId()));
}
return voPatient;
}
项目:AvoinApotti
文件:DemographicsImpl.java
private Patient savePatientToDto(DomainFactory factory, ims.core.patient.domain.objects.Patient domPatient, Patient voPatient, Boolean fromInterface, boolean fromDtoReplicate, boolean bBlankTempAddress) throws DomainInterfaceException, StaleObjectException
{
factory.save(domPatient);
if(factory.isDirty(domPatient) || voPatient.getID_Patient() == null)
{
//WDEV- 6964 - update the pas and if new use the pasa generated hospnum for the local patient
if(ConfigFlag.DOM.HEARTS_REPLICATE_PATIENTS.getValue() == true && !fromInterface)
{
String[] newIds = updateOrInsertDTOPatient(voPatient, fromDtoReplicate, bBlankTempAddress);
if(newIds != null)
{
ims.core.patient.domain.objects.PatientId patHospnumId = new ims.core.patient.domain.objects.PatientId();
patHospnumId.setType(getDomLookup(PatIdType.HOSPNUM));
patHospnumId.setValue(newIds[0]);
domPatient.getIdentifiers().add(patHospnumId);
ims.core.patient.domain.objects.PatientId patPkeyId = new ims.core.patient.domain.objects.PatientId();
patPkeyId.setType(getDomLookup(PatIdType.PKEY));
patPkeyId.setValue(newIds[1]);
domPatient.getIdentifiers().add(patPkeyId);
factory.save(domPatient);
voPatient = PatientAssembler.create(domPatient);
}
}
}
factory.setDirtyCheck(false);
return voPatient;
}
项目:AvoinApotti
文件:DemographicsImpl.java
public ims.core.vo.Patient getMergedPatient(PatientShort patient)
{
ims.core.patient.domain.objects.Patient domPatient = getDomPatient(patient);
// The id sent down for the patient could be the main one, we may need
// to check whether this patient id is used as an associated patient anywhere!
if (domPatient != null && domPatient.getAssociatedPatient() == null)
{
DomainFactory factory = getDomainFactory();
List lst = factory.find("from Patient p where p.associatedPatient.id = :assoc", new String[]{"assoc"}, new Object[]{domPatient.getId()});
if (lst != null && lst.size() > 0)
return PatientAssembler.create((ims.core.patient.domain.objects.Patient) lst.get(0));
}
return PatientAssembler.create(domPatient);
}
项目:AvoinApotti
文件:PatientMergeDemographicsImpl.java
public ims.core.vo.Patient getDestinationPatient(PatientRefVo patientRef)
{
if(patientRef == null)
return null;
return PatientAssembler.create((Patient) getDomainFactory().getDomainObject(Patient.class, patientRef.getID_Patient()));
}
项目:AvoinApotti
文件:BedInfoDialogImpl.java
/**
* getPatient
*/
public ims.core.vo.Patient getPatient(ims.core.patient.vo.PatientRefVo patient)
{
if(patient == null || patient.getID_Patient() == null)
throw new CodingRuntimeException("patient os null or id not provided for method getPatient");
return PatientAssembler.create((Patient) getDomainFactory().getDomainObject(patient));
}
项目:AvoinApotti
文件:PatientMergeImpl.java
private PatientIdCollection mergePatientIdentifiers(DomainFactory factory, Patient srcPat, Patient destPat) throws SQLException, DomainInterfaceException, StaleObjectException, UniqueKeyViolationException
{
ims.core.vo.Patient sourcePatient = PatientAssembler.create(srcPat);
PatientIdCollection sourceIds = (PatientIdCollection) sourcePatient.getIdentifiers().clone();
srcPat.getIdentifiers().clear(); // Source identifiers moved to destination
factory.save(srcPat); // Need to save source pat with no ids before assigning to destination as otherwise, hibernate complains
//add (source) identifiers to new (destination) patient
for(int i=0;i<sourceIds.size();i++)
{
PatientId id = (PatientId) sourceIds.get(i).clone();
// wdev-6169 Do not move the nhsn over if it's the same as the nhsn for the destination patient
if (id.getType().getId() == PatIdType.NHSN.getID())
{
if (getNHSN(destPat.getIdentifiers()).equals(id.getValue()))
continue;
// wdev-6148 If moving an NHSN value over and it is verified, set it to unverified
id.setVerified(false);
}
// wdev-10710 Only merge the PATNUM identifier if the source is NOT an ICABDummy Patient
if (id.getType().getId() == PatIdType.PATNUM.getID())
{
if (sourcePatient.getNameIsNotNull() && sourcePatient.getName().getSurnameIsNotNull() &&
sourcePatient.getName().getSurname().equals(DUMMY_PATIENT))
continue; // Do no insert them
}
id.setMerged(true);
destPat.getIdentifiers().add(PatientIdAssembler.extractPatientId(factory,id));
}
return sourceIds;
}
项目:AvoinApotti
文件:DemographicsLocalImpl.java
public ims.core.vo.Patient getPatient(PatientShort patient) throws StaleObjectException
{
DomainFactory factory = getDomainFactory();
PatientId intfId = null;
if (patient.getIdentifiers() == null || patient.getIdentifiers().size() == 0 || (intfId = patient.getIdentifiers().get(0)) == null)
{
throw new DomainRuntimeException("Patient Get call must contain valid identifier");
}
String hql = " from Patient p " +
" join p.identifiers as ids" +
" where ids.value = :idValue " +
" and ids.type = :idType ";
java.util.List patientList = factory.find(hql, new String[]{"idValue", "idType"}, new Object[]{intfId.getValue(), getDomLookup(intfId.getType())});
ims.core.patient.domain.objects.Patient domPatient=null;
if (patientList != null && !patientList.isEmpty())
{
// Patient Should be unique per id value and type
if (patientList.size() > 1)
{
throw new DomainRuntimeException("More than one patient found with identifier type = " + PatIdType.TYPE_ID + " and value = " + intfId.getValue());
}
domPatient = (ims.core.patient.domain.objects.Patient)patientList.get(0);
return PatientAssembler.create(domPatient);
}
return null;
}
项目:AvoinApotti
文件:DischargeSummaryScheduleSTHKFormImpl.java
private Patient getPatientForCareContext(CareContextRefVo careContext)
{
if(careContext == null ||
careContext.getID_CareContext() == null)
throw new CodingRuntimeException("CareContext is null or id not provided for getPatientForCareContext");
DomainFactory factory = getDomainFactory();
List pat = factory.find("select careSpell.patient rom CareSpell as careSpell left join careSpell.episodes as epis left join epis.careContexts as cc where cc.id = :idCareContext", new String[]{"idCareContext"}, new Object[]{careContext.getID_CareContext()});
PatientCollection patVo = PatientAssembler.createPatientCollectionFromPatient(pat);
return patVo != null && patVo.size() > 0 ? patVo.get(0) : null;
}
项目:AvoinApotti
文件:ReferralWizardImpl.java
public Patient getPatient(PatientRefVo patient) throws DomainInterfaceException
{
if(patient == null || patient.getID_Patient() == null)
throw new DomainRuntimeException("Invalid patient");
return PatientAssembler.create((ims.core.patient.domain.objects.Patient)getDomainFactory().getDomainObject(patient));
}
项目:AvoinApotti
文件:DocumentGenerationImpl.java
public Patient getPatient(PatientRefVo patient)
{
if(patient == null)
throw new CodingRuntimeException("null patient passed to getPatient() !");
DomainFactory factory = getDomainFactory();
ims.core.patient.domain.objects.Patient boPatient = (ims.core.patient.domain.objects.Patient)factory.getDomainObject(ims.core.patient.domain.objects.Patient.class, patient.getID_Patient());
return PatientAssembler.create(boPatient);
}
项目:openMAXIMS
文件:PdsTouchPointImpl.java
@Override
public ims.core.vo.Patient getPatient(ims.core.patient.vo.PatientRefVo patient)
{
if(patient == null || patient.getID_Patient() == null)
throw new CodingRuntimeException("patient os null or id not provided for method getPatient");
return PatientAssembler.create((ims.core.patient.domain.objects.Patient) getDomainFactory().getDomainObject(patient));
}
项目:openMAXIMS
文件:PdsTouchPoint.java
@Override
public ims.core.vo.Patient getPatient(ims.core.patient.vo.PatientRefVo patient)
{
if(patient == null || patient.getID_Patient() == null)
throw new CodingRuntimeException("patient os null or id not provided for method getPatient");
return PatientAssembler.create((ims.core.patient.domain.objects.Patient) getDomainFactory().getDomainObject(patient));
}
项目:openMAXIMS
文件:PdsDomainHelperImpl.java
@Override
public ims.core.vo.Patient getPatient(ims.core.patient.vo.PatientRefVo patient)
{
if(patient == null || patient.getID_Patient() == null)
throw new CodingRuntimeException("patient os null or id not provided for method getPatient");
return PatientAssembler.create((ims.core.patient.domain.objects.Patient) getDomainFactory().getDomainObject(patient));
}
项目:openMAXIMS
文件:DemographicsImpl.java
public ims.core.vo.Patient getMergedPatient(PatientShort patient)
{
ims.core.patient.domain.objects.Patient domPatient = getDomPatient(patient);
// The id sent down for the patient could be the main one, we may need
// to check whether this patient id is used as an associated patient anywhere!
if (domPatient != null && domPatient.getAssociatedPatient() == null)
{
DomainFactory factory = getDomainFactory();
List lst = factory.find("from Patient p where p.associatedPatient.id = :assoc", new String[]{"assoc"}, new Object[]{domPatient.getId()});
if (lst != null && lst.size() > 0)
return PatientAssembler.create((ims.core.patient.domain.objects.Patient) lst.get(0));
}
return PatientAssembler.create(domPatient);
}
项目:openMAXIMS
文件:PatientMergeDemographicsImpl.java
public ims.core.vo.Patient getDestinationPatient(PatientRefVo patientRef)
{
if(patientRef == null)
return null;
return PatientAssembler.create((Patient) getDomainFactory().getDomainObject(Patient.class, patientRef.getID_Patient()));
}
项目:openMAXIMS
文件:PDSDemographicsImpl.java
protected Patient getLocalPatient(ims.core.patient.domain.objects.Patient domPatient)
{
if (domPatient == null)
return null;
//recurse to get master patient if this patient was merged
ims.core.patient.domain.objects.Patient foundPatient = domPatient;
boolean isMergedPatient = false;
while(domPatient.getAssociatedPatient() != null)
{
domPatient = domPatient.getAssociatedPatient();
isMergedPatient = true;
}
if(isMergedPatient)
raiseAlert(domPatient.getMergedMessage(foundPatient));
Patient voPatient = PatientAssembler.create(domPatient);
if (voPatient != null && voPatient.getAge() == null) //wdev-14325
voPatient.calculateAge();
if (voPatient != null && voPatient.getCommChannels() != null) //wdev-14325
voPatient.getCommChannels().sort();
// Set Allergies & Allerts
if(voPatient != null) //wdev-14325
{
voPatient.setHasAlerts(hasAlerts(domPatient.getId()));
voPatient.setHasAllergies(hasAllergy(domPatient.getId()));
}
return voPatient;
}
项目:openMAXIMS
文件:PDSDemographicsImpl.java
public ims.core.vo.Patient getMergedPatient(PatientShort patient)
{
ims.core.patient.domain.objects.Patient domPatient = getDomPatient(patient);
// The id sent down for the patient could be the main one, we may need
// to check whether this patient id is used as an associated patient anywhere!
if (domPatient != null && domPatient.getAssociatedPatient() == null)
{
DomainFactory factory = getDomainFactory();
List lst = factory.find("from Patient p where p.associatedPatient.id = :assoc", new String[]{"assoc"}, new Object[]{domPatient.getId()});
if (lst != null && lst.size() > 0)
return PatientAssembler.create((ims.core.patient.domain.objects.Patient) lst.get(0));
}
return PatientAssembler.create(domPatient);
}
项目:openMAXIMS
文件:PDSDemographicsImpl.java
@Override
public Patient activateDeactivatePatient(Patient patient) throws DomainInterfaceException, StaleObjectException, ForeignKeyViolationException, UniqueKeyViolationException, UnqViolationUncheckedException
{
if (patient == null)
return null;
DomainFactory factory = getDomainFactory();
patient.setIsActive(!patient.getIsActive());
ims.core.patient.domain.objects.Patient domPat = PatientAssembler.extractPatient(factory, patient);
//WDEV-20593 Trigger HL7 message
//WDEV-21056 Trigger HL7 message when patient is recativated as well
if (patient.getIsActive() != null)
{
if (Boolean.TRUE.equals(patient.getIsActive()))
{
triggerDemographicEvent(domPat, MsgEventType.A31);
}
else
{
triggerDemographicEvent(domPat, MsgEventType.A29);
}
}
factory.save(domPat);
return PatientAssembler.create(domPat);
}
项目:openMAXIMS
文件:PDSDemographicsImpl.java
public Patient getPatientByIdentifier(String ident, PatIdType type)
{
DomainFactory factory = getDomainFactory();
if (ident == null || ident.length() == 0)
{
throw new CodingRuntimeException("getPatientByIdentifier: invalid identifier: " + ident);
}
if (type == null)
{
throw new CodingRuntimeException("getPatientByIdentifier: invalid identifier type");
}
String hql = "select p1_1 from Patient as p1_1 left join p1_1.identifiers as p2_1 left join p2_1.type as l1_1 where (l1_1.id = :type and p2_1.value = :value)";
java.util.List patientList = factory.find(hql, new String[]{"type", "value"}, new Object[]{type.getId(), ident});
if (patientList != null && !patientList.isEmpty())
{
// Patient Should be unique per id value and type
if (patientList.size() > 1)
{
throw new DomainRuntimeException("More than one patient found with identifier type = " + type.getText() + " and value = " + ident);
}
ims.core.patient.domain.objects.Patient domPatient = (ims.core.patient.domain.objects.Patient) patientList.get(0);
return PatientAssembler.create(domPatient);
}
return null;
}
项目:openMAXIMS
文件:BedInfoDialogImpl.java
/**
* getPatient
*/
public ims.core.vo.Patient getPatient(ims.core.patient.vo.PatientRefVo patient)
{
if(patient == null || patient.getID_Patient() == null)
throw new CodingRuntimeException("patient os null or id not provided for method getPatient");
return PatientAssembler.create((Patient) getDomainFactory().getDomainObject(patient));
}
项目:openMAXIMS
文件:PDSBackOfficeWorklistImpl.java
public ims.core.vo.Patient getPatient(PatientRefVo ref)
{
if (ref != null)
{
Patient patient = (Patient) getDomainFactory().getDomainObject(Patient.class,ref.getID_Patient());
ims.core.vo.Patient voPatient = PatientAssembler.create(patient);
return voPatient;
}
return null;
}
项目:openMAXIMS
文件:PDSBackOfficeWorklistImpl.java
public ims.core.vo.Patient getPatientByIdentifier(String nhsNumber,
PatIdType idType)
{
DomainFactory factory = getDomainFactory();
if (nhsNumber == null || nhsNumber.length() == 0)
{
throw new CodingRuntimeException("getPatientByIdentifier: invalid identifier: " + nhsNumber);
}
if (idType == null)
{
throw new CodingRuntimeException("getPatientByIdentifier: invalid identifier type");
}
String hql = "select p1_1 from Patient as p1_1 left join p1_1.identifiers as p2_1 left join p2_1.type as l1_1 where (l1_1.id = :type and p2_1.value = :value)";
java.util.List patientList = factory.find(hql, new String[]{"type", "value"}, new Object[]{idType.getId(), nhsNumber});
if (patientList != null && !patientList.isEmpty())
{
// Patient Should be unique per id value and type
if (patientList.size() > 1)
{
throw new DomainRuntimeException("More than one patient found with identifier type = " + idType.getText() + " and value = " + nhsNumber);
}
ims.core.patient.domain.objects.Patient domPatient = (ims.core.patient.domain.objects.Patient) patientList.get(0);
return PatientAssembler.create(domPatient);
}
return null;
}
项目:openMAXIMS
文件:PDSPatientSearchImpl.java
public ims.core.vo.Patient saveLocalPatient(ims.core.vo.Patient patient) throws StaleObjectException
{
if (patient == null)
throw new DomainRuntimeException("Cannot save null record.");
if (!patient.isValidated())
throw new DomainRuntimeException("Record not validated.");
DomainFactory domainFactory = getDomainFactory();
Patient domPatient = PatientAssembler.extractPatient(domainFactory, patient);
domainFactory.save(domPatient);
ims.core.vo.Patient item = PatientAssembler.create(domPatient);
return item;
}
项目:openMAXIMS
文件:DemographicsLocalImpl.java
public ims.core.vo.Patient getPatient(PatientShort patient) throws StaleObjectException
{
DomainFactory factory = getDomainFactory();
PatientId intfId = null;
if (patient.getIdentifiers() == null || patient.getIdentifiers().size() == 0 || (intfId = patient.getIdentifiers().get(0)) == null)
{
throw new DomainRuntimeException("Patient Get call must contain valid identifier");
}
String hql = " from Patient p " +
" join p.identifiers as ids" +
" where ids.value = :idValue " +
" and ids.type = :idType ";
java.util.List patientList = factory.find(hql, new String[]{"idValue", "idType"}, new Object[]{intfId.getValue(), getDomLookup(intfId.getType())});
ims.core.patient.domain.objects.Patient domPatient=null;
if (patientList != null && !patientList.isEmpty())
{
// Patient Should be unique per id value and type
if (patientList.size() > 1)
{
throw new DomainRuntimeException("More than one patient found with identifier type = " + PatIdType.TYPE_ID + " and value = " + intfId.getValue());
}
domPatient = (ims.core.patient.domain.objects.Patient)patientList.get(0);
return PatientAssembler.create(domPatient);
}
return null;
}
项目:openMAXIMS
文件:FirstAppointmentSearchImpl.java
private ims.core.vo.Patient getLocalPatient(PatientShort patVo)
{
DomainFactory factory = getDomainFactory();
if (patVo.getIdentifiers() == null || patVo.getIdentifiers().size() == 0 || (patVo.getIdentifiers().get(0)) == null)
{
throw new DomainRuntimeException("Patient Get call must contain valid identifier");
}
PatientIdCollection identifiers = patVo.getIdentifiers();
for (int i = 0; i < identifiers.size(); i++)
{
if (identifiers.get(i).getType().equals(PatIdType.PKEY))
{
String idVal = identifiers.get(i).getIdValue().trim();
String hql = " from Patient p join p.identifiers as ids where ids.type = :idType and ids.value = :idValue ";
java.util.List<?> patientList = factory.find(hql, new String[]{"idValue", "idType"}, new Object[]{idVal, getDomLookup(identifiers.get(i).getType())});
PatientCollection patients = PatientAssembler.createPatientCollectionFromPatient(patientList);
if (patients!=null && patients.size()>0)
{
return patients.get(0);
}
}
}
return null;
}
项目:openMAXIMS
文件:DischargeSummaryScheduleImpl.java
private Patient getPatientForCareContext(CareContextRefVo careContext)
{
if(careContext == null ||
careContext.getID_CareContext() == null)
throw new CodingRuntimeException("CareContext is null or id not provided for getPatientForCareContext");
DomainFactory factory = getDomainFactory();
List pat = factory.find("select careSpell.patient from CareSpell as careSpell left join careSpell.episodes as epis left join epis.careContexts as cc where cc.id = :idCareContext", new String[]{"idCareContext"}, new Object[]{careContext.getID_CareContext()});
PatientCollection patVo = PatientAssembler.createPatientCollectionFromPatient(pat);
return patVo != null && patVo.size() > 0 ? patVo.get(0) : null;
}
项目:openMAXIMS
文件:DischargeSummaryScheduleSTHKImpl.java
private Patient getPatientForCareContext(CareContextRefVo careContext)
{
if(careContext == null ||
careContext.getID_CareContext() == null)
throw new CodingRuntimeException("CareContext is null or id not provided for getPatientForCareContext");
DomainFactory factory = getDomainFactory();
List pat = factory.find("select careSpell.patient rom CareSpell as careSpell left join careSpell.episodes as epis left join epis.careContexts as cc where cc.id = :idCareContext", new String[]{"idCareContext"}, new Object[]{careContext.getID_CareContext()});
PatientCollection patVo = PatientAssembler.createPatientCollectionFromPatient(pat);
return patVo != null && patVo.size() > 0 ? patVo.get(0) : null;
}
项目:openMAXIMS
文件:DischargeSummaryScheduleSTHKFormImpl.java
private Patient getPatientForCareContext(CareContextRefVo careContext)
{
if(careContext == null ||
careContext.getID_CareContext() == null)
throw new CodingRuntimeException("CareContext is null or id not provided for getPatientForCareContext");
DomainFactory factory = getDomainFactory();
List pat = factory.find("select careSpell.patient rom CareSpell as careSpell left join careSpell.episodes as epis left join epis.careContexts as cc where cc.id = :idCareContext", new String[]{"idCareContext"}, new Object[]{careContext.getID_CareContext()});
PatientCollection patVo = PatientAssembler.createPatientCollectionFromPatient(pat);
return patVo != null && patVo.size() > 0 ? patVo.get(0) : null;
}
项目:openMAXIMS
文件:ReferralWizardImpl.java
public Patient getPatient(PatientRefVo patient)
{
if(patient == null || patient.getID_Patient() == null)
return null;
return PatientAssembler.create((ims.core.patient.domain.objects.Patient)getDomainFactory().getDomainObject(patient));
}
项目:openMAXIMS
文件:DocumentGenerationImpl.java
public Patient getPatient(PatientRefVo patient)
{
if(patient == null)
throw new CodingRuntimeException("null patient passed to getPatient() !");
DomainFactory factory = getDomainFactory();
ims.core.patient.domain.objects.Patient boPatient = (ims.core.patient.domain.objects.Patient)factory.getDomainObject(ims.core.patient.domain.objects.Patient.class, patient.getID_Patient());
return PatientAssembler.create(boPatient);
}
项目:openMAXIMS
文件:DemographicsImpl.java
protected Patient getLocalPatient(ims.core.patient.domain.objects.Patient domPatient)
{
if (domPatient == null)
return null;
//recurse to get master patient if this patient was merged
ims.core.patient.domain.objects.Patient foundPatient = domPatient;
boolean isMergedPatient = false;
while(domPatient.getAssociatedPatient() != null)
{
domPatient = domPatient.getAssociatedPatient();
isMergedPatient = true;
}
if(isMergedPatient)
raiseAlert(domPatient.getMergedMessage(foundPatient));
Patient voPatient = PatientAssembler.create(domPatient);
if (voPatient != null && voPatient.getAge() == null) //wdev-14325
voPatient.calculateAge();
if (voPatient != null && voPatient.getCommChannels() != null) //wdev-14325
voPatient.getCommChannels().sort();
// Set Allergies & Allerts
if(voPatient != null) //wdev-14325
{
voPatient.setHasAlerts(hasAlerts(domPatient.getId()));
voPatient.setHasAllergies(hasAllergy(domPatient.getId()));
}
return voPatient;
}
项目:openMAXIMS
文件:DemographicsImpl.java
private Patient savePatientToDto(DomainFactory factory, ims.core.patient.domain.objects.Patient domPatient, Patient voPatient, Boolean fromInterface, boolean fromDtoReplicate, boolean bBlankTempAddress) throws DomainInterfaceException, StaleObjectException
{
factory.save(domPatient);
if(factory.isDirty(domPatient) || voPatient.getID_Patient() == null)
{
//WDEV- 6964 - update the pas and if new use the pasa generated hospnum for the local patient
if(ConfigFlag.DOM.HEARTS_REPLICATE_PATIENTS.getValue() == true && !fromInterface)
{
String[] newIds = updateOrInsertDTOPatient(voPatient, fromDtoReplicate, bBlankTempAddress);
if(newIds != null)
{
ims.core.patient.domain.objects.PatientId patHospnumId = new ims.core.patient.domain.objects.PatientId();
patHospnumId.setType(getDomLookup(PatIdType.HOSPNUM));
patHospnumId.setValue(newIds[0]);
domPatient.getIdentifiers().add(patHospnumId);
ims.core.patient.domain.objects.PatientId patPkeyId = new ims.core.patient.domain.objects.PatientId();
patPkeyId.setType(getDomLookup(PatIdType.PKEY));
patPkeyId.setValue(newIds[1]);
domPatient.getIdentifiers().add(patPkeyId);
factory.save(domPatient);
voPatient = PatientAssembler.create(domPatient);
}
}
}
factory.setDirtyCheck(false);
return voPatient;
}
项目:openMAXIMS
文件:DemographicsImpl.java
public ims.core.vo.Patient getMergedPatient(PatientShort patient)
{
ims.core.patient.domain.objects.Patient domPatient = getDomPatient(patient);
// The id sent down for the patient could be the main one, we may need
// to check whether this patient id is used as an associated patient anywhere!
if (domPatient != null && domPatient.getAssociatedPatient() == null)
{
DomainFactory factory = getDomainFactory();
List lst = factory.find("from Patient p where p.associatedPatient.id = :assoc", new String[]{"assoc"}, new Object[]{domPatient.getId()});
if (lst != null && lst.size() > 0)
return PatientAssembler.create((ims.core.patient.domain.objects.Patient) lst.get(0));
}
return PatientAssembler.create(domPatient);
}
项目:openMAXIMS
文件:PatientMergeDemographicsImpl.java
public ims.core.vo.Patient getDestinationPatient(PatientRefVo patientRef)
{
if(patientRef == null)
return null;
return PatientAssembler.create((Patient) getDomainFactory().getDomainObject(Patient.class, patientRef.getID_Patient()));
}
项目:openMAXIMS
文件:BedInfoDialogImpl.java
/**
* getPatient
*/
public ims.core.vo.Patient getPatient(ims.core.patient.vo.PatientRefVo patient)
{
if(patient == null || patient.getID_Patient() == null)
throw new CodingRuntimeException("patient os null or id not provided for method getPatient");
return PatientAssembler.create((Patient) getDomainFactory().getDomainObject(patient));
}
项目:openMAXIMS
文件:PatientMergeImpl.java
private PatientIdCollection mergePatientIdentifiers(DomainFactory factory, Patient srcPat, Patient destPat) throws SQLException, DomainInterfaceException, StaleObjectException, UniqueKeyViolationException
{
ims.core.vo.Patient sourcePatient = PatientAssembler.create(srcPat);
PatientIdCollection sourceIds = (PatientIdCollection) sourcePatient.getIdentifiers().clone();
srcPat.getIdentifiers().clear(); // Source identifiers moved to destination
factory.save(srcPat); // Need to save source pat with no ids before assigning to destination as otherwise, hibernate complains
//add (source) identifiers to new (destination) patient
for(int i=0;i<sourceIds.size();i++)
{
PatientId id = (PatientId) sourceIds.get(i).clone();
// wdev-6169 Do not move the nhsn over if it's the same as the nhsn for the destination patient
if (id.getType().getId() == PatIdType.NHSN.getID())
{
if (getNHSN(destPat.getIdentifiers()).equals(id.getValue()))
continue;
// wdev-6148 If moving an NHSN value over and it is verified, set it to unverified
id.setVerified(false);
}
// wdev-10710 Only merge the PATNUM identifier if the source is NOT an ICABDummy Patient
if (id.getType().getId() == PatIdType.PATNUM.getID())
{
if (sourcePatient.getNameIsNotNull() && sourcePatient.getName().getSurnameIsNotNull() &&
sourcePatient.getName().getSurname().equals(DUMMY_PATIENT))
continue; // Do no insert them
}
id.setMerged(true);
destPat.getIdentifiers().add(PatientIdAssembler.extractPatientId(factory,id));
}
return sourceIds;
}
项目:openMAXIMS
文件:DemographicsLocalImpl.java
public ims.core.vo.Patient getPatient(PatientShort patient) throws StaleObjectException
{
DomainFactory factory = getDomainFactory();
PatientId intfId = null;
if (patient.getIdentifiers() == null || patient.getIdentifiers().size() == 0 || (intfId = patient.getIdentifiers().get(0)) == null)
{
throw new DomainRuntimeException("Patient Get call must contain valid identifier");
}
String hql = " from Patient p " +
" join p.identifiers as ids" +
" where ids.value = :idValue " +
" and ids.type = :idType ";
java.util.List patientList = factory.find(hql, new String[]{"idValue", "idType"}, new Object[]{intfId.getValue(), getDomLookup(intfId.getType())});
ims.core.patient.domain.objects.Patient domPatient=null;
if (patientList != null && !patientList.isEmpty())
{
// Patient Should be unique per id value and type
if (patientList.size() > 1)
{
throw new DomainRuntimeException("More than one patient found with identifier type = " + PatIdType.TYPE_ID + " and value = " + intfId.getValue());
}
domPatient = (ims.core.patient.domain.objects.Patient)patientList.get(0);
return PatientAssembler.create(domPatient);
}
return null;
}
项目:openMAXIMS
文件:DischargeSummaryScheduleSTHKFormImpl.java
private Patient getPatientForCareContext(CareContextRefVo careContext)
{
if(careContext == null ||
careContext.getID_CareContext() == null)
throw new CodingRuntimeException("CareContext is null or id not provided for getPatientForCareContext");
DomainFactory factory = getDomainFactory();
List pat = factory.find("select careSpell.patient rom CareSpell as careSpell left join careSpell.episodes as epis left join epis.careContexts as cc where cc.id = :idCareContext", new String[]{"idCareContext"}, new Object[]{careContext.getID_CareContext()});
PatientCollection patVo = PatientAssembler.createPatientCollectionFromPatient(pat);
return patVo != null && patVo.size() > 0 ? patVo.get(0) : null;
}
项目:openMAXIMS
文件:ReferralWizardImpl.java
public Patient getPatient(PatientRefVo patient) throws DomainInterfaceException
{
if(patient == null || patient.getID_Patient() == null)
throw new DomainRuntimeException("Invalid patient");
return PatientAssembler.create((ims.core.patient.domain.objects.Patient)getDomainFactory().getDomainObject(patient));
}
项目:openMAXIMS
文件:DocumentGenerationImpl.java
public Patient getPatient(PatientRefVo patient)
{
if(patient == null)
throw new CodingRuntimeException("null patient passed to getPatient() !");
DomainFactory factory = getDomainFactory();
ims.core.patient.domain.objects.Patient boPatient = (ims.core.patient.domain.objects.Patient)factory.getDomainObject(ims.core.patient.domain.objects.Patient.class, patient.getID_Patient());
return PatientAssembler.create(boPatient);
}