diff --git a/dcm4chee-arc-store/src/main/java/org/dcm4chee/arc/store/org/dcm4chee/archive/store/impl/StoreServiceEJB.java b/dcm4chee-arc-store/src/main/java/org/dcm4chee/arc/store/org/dcm4chee/archive/store/impl/StoreServiceEJB.java index fbb7872bb..145c1e01f 100644 --- a/dcm4chee-arc-store/src/main/java/org/dcm4chee/arc/store/org/dcm4chee/archive/store/impl/StoreServiceEJB.java +++ b/dcm4chee-arc-store/src/main/java/org/dcm4chee/arc/store/org/dcm4chee/archive/store/impl/StoreServiceEJB.java @@ -454,6 +454,16 @@ private Patient updatePatient(StoreContext ctx, Patient pat) { updateInfo.log(session, pat, attrs); pat = em.find(Patient.class, pat.getPk()); + IDWithIssuer idWithIssuer = IDWithIssuer.pidOf(attrs); + Issuer issuer = idWithIssuer.getIssuer(); + if (issuer != null) { + PatientID patientID = pat.getPatientID(); + IssuerEntity issuerEntity = patientID.getIssuer(); + if (issuerEntity == null) + patientID.setIssuer(issuerService.mergeOrCreate(issuer)); + else + issuerEntity.getIssuer().merge(issuer); + } pat.setAttributes(attrs, filter, arcDev.getFuzzyStr()); return pat; }