@Test public void testLuaeFsIsEnriched() throws TemporaryException { when(puService.getPerson(any(Personnummer.class))).thenReturn(buildPersonSvar(false)); Intyg intyg = buildIntyg("luae_fs"); testee.enrichWithPatient(intyg); verify(puService, times(1)).getPerson(any(Personnummer.class)); Patient p = intyg.getPatient(); assertEquals("Tolvan", p.getFornamn()); assertEquals("Mellis", p.getMellannamn()); assertEquals("Tolvansson", p.getEfternamn()); assertEquals("Tolvgatan 12", p.getPostadress()); assertEquals("12121", p.getPostnummer()); assertEquals("Tolvhult", p.getPostort()); }
public void enrichWithPatient(Intyg intyg) throws TemporaryException { String intygsTyp = intyg.getTyp().getCode(); switch (intygsTyp.toLowerCase()) { case "luse": case "luae_na": case "luae_fs": case "lisjp": String personId = intyg.getPatient().getPersonId().getExtension(); Personnummer personnummer = Personnummer .createPersonnummer(personId) .orElseThrow(() -> new IllegalArgumentException("Cannot create Personummer object from personId: " + personId)); PersonSvar personSvar = puService.getPerson(personnummer); if (personSvar.getStatus() == PersonSvar.Status.FOUND) { if (!personSvar.getPerson().isSekretessmarkering()) { intyg.setPatient(buildPatientFromPersonSvar(personSvar.getPerson())); } else { intyg.getPatient().setEfternamn(SEKRETESSMARKERING); intyg.getPatient().setFornamn(EMPTY_STRING); intyg.getPatient().setMellannamn(EMPTY_STRING); intyg.getPatient().setPostadress(EMPTY_STRING); intyg.getPatient().setPostnummer(EMPTY_STRING); intyg.getPatient().setPostort(EMPTY_STRING); } } else if (personSvar.getStatus() == PersonSvar.Status.ERROR) { throw new TemporaryException( new IllegalStateException("Could not query PU-service for enriching notification with patient data.")); } else { LOG.warn("PU-service returned NOT_FOUND for personnummer: {}, not enriching notification.", personnummer.getPersonnummerHash()); } break; default: break; } }
NotificationPatientEnricher { public void enrichWithPatient(Intyg intyg) throws TemporaryException { String intygsTyp = intyg.getTyp().getCode(); switch (intygsTyp.toLowerCase()) { case "luse": case "luae_na": case "luae_fs": case "lisjp": String personId = intyg.getPatient().getPersonId().getExtension(); Personnummer personnummer = Personnummer .createPersonnummer(personId) .orElseThrow(() -> new IllegalArgumentException("Cannot create Personummer object from personId: " + personId)); PersonSvar personSvar = puService.getPerson(personnummer); if (personSvar.getStatus() == PersonSvar.Status.FOUND) { if (!personSvar.getPerson().isSekretessmarkering()) { intyg.setPatient(buildPatientFromPersonSvar(personSvar.getPerson())); } else { intyg.getPatient().setEfternamn(SEKRETESSMARKERING); intyg.getPatient().setFornamn(EMPTY_STRING); intyg.getPatient().setMellannamn(EMPTY_STRING); intyg.getPatient().setPostadress(EMPTY_STRING); intyg.getPatient().setPostnummer(EMPTY_STRING); intyg.getPatient().setPostort(EMPTY_STRING); } } else if (personSvar.getStatus() == PersonSvar.Status.ERROR) { throw new TemporaryException( new IllegalStateException("Could not query PU-service for enriching notification with patient data.")); } else { LOG.warn("PU-service returned NOT_FOUND for personnummer: {}, not enriching notification.", personnummer.getPersonnummerHash()); } break; default: break; } } }
NotificationPatientEnricher { public void enrichWithPatient(Intyg intyg) throws TemporaryException { String intygsTyp = intyg.getTyp().getCode(); switch (intygsTyp.toLowerCase()) { case "luse": case "luae_na": case "luae_fs": case "lisjp": String personId = intyg.getPatient().getPersonId().getExtension(); Personnummer personnummer = Personnummer .createPersonnummer(personId) .orElseThrow(() -> new IllegalArgumentException("Cannot create Personummer object from personId: " + personId)); PersonSvar personSvar = puService.getPerson(personnummer); if (personSvar.getStatus() == PersonSvar.Status.FOUND) { if (!personSvar.getPerson().isSekretessmarkering()) { intyg.setPatient(buildPatientFromPersonSvar(personSvar.getPerson())); } else { intyg.getPatient().setEfternamn(SEKRETESSMARKERING); intyg.getPatient().setFornamn(EMPTY_STRING); intyg.getPatient().setMellannamn(EMPTY_STRING); intyg.getPatient().setPostadress(EMPTY_STRING); intyg.getPatient().setPostnummer(EMPTY_STRING); intyg.getPatient().setPostort(EMPTY_STRING); } } else if (personSvar.getStatus() == PersonSvar.Status.ERROR) { throw new TemporaryException( new IllegalStateException("Could not query PU-service for enriching notification with patient data.")); } else { LOG.warn("PU-service returned NOT_FOUND for personnummer: {}, not enriching notification.", personnummer.getPersonnummerHash()); } break; default: break; } }  }
NotificationPatientEnricher { public void enrichWithPatient(Intyg intyg) throws TemporaryException { String intygsTyp = intyg.getTyp().getCode(); switch (intygsTyp.toLowerCase()) { case "luse": case "luae_na": case "luae_fs": case "lisjp": String personId = intyg.getPatient().getPersonId().getExtension(); Personnummer personnummer = Personnummer .createPersonnummer(personId) .orElseThrow(() -> new IllegalArgumentException("Cannot create Personummer object from personId: " + personId)); PersonSvar personSvar = puService.getPerson(personnummer); if (personSvar.getStatus() == PersonSvar.Status.FOUND) { if (!personSvar.getPerson().isSekretessmarkering()) { intyg.setPatient(buildPatientFromPersonSvar(personSvar.getPerson())); } else { intyg.getPatient().setEfternamn(SEKRETESSMARKERING); intyg.getPatient().setFornamn(EMPTY_STRING); intyg.getPatient().setMellannamn(EMPTY_STRING); intyg.getPatient().setPostadress(EMPTY_STRING); intyg.getPatient().setPostnummer(EMPTY_STRING); intyg.getPatient().setPostort(EMPTY_STRING); } } else if (personSvar.getStatus() == PersonSvar.Status.ERROR) { throw new TemporaryException( new IllegalStateException("Could not query PU-service for enriching notification with patient data.")); } else { LOG.warn("PU-service returned NOT_FOUND for personnummer: {}, not enriching notification.", personnummer.getPersonnummerHash()); } break; default: break; } }  void enrichWithPatient(Intyg intyg); @VisibleForTesting void setPuService(PUService puService); }
NotificationPatientEnricher { public void enrichWithPatient(Intyg intyg) throws TemporaryException { String intygsTyp = intyg.getTyp().getCode(); switch (intygsTyp.toLowerCase()) { case "luse": case "luae_na": case "luae_fs": case "lisjp": String personId = intyg.getPatient().getPersonId().getExtension(); Personnummer personnummer = Personnummer .createPersonnummer(personId) .orElseThrow(() -> new IllegalArgumentException("Cannot create Personummer object from personId: " + personId)); PersonSvar personSvar = puService.getPerson(personnummer); if (personSvar.getStatus() == PersonSvar.Status.FOUND) { if (!personSvar.getPerson().isSekretessmarkering()) { intyg.setPatient(buildPatientFromPersonSvar(personSvar.getPerson())); } else { intyg.getPatient().setEfternamn(SEKRETESSMARKERING); intyg.getPatient().setFornamn(EMPTY_STRING); intyg.getPatient().setMellannamn(EMPTY_STRING); intyg.getPatient().setPostadress(EMPTY_STRING); intyg.getPatient().setPostnummer(EMPTY_STRING); intyg.getPatient().setPostort(EMPTY_STRING); } } else if (personSvar.getStatus() == PersonSvar.Status.ERROR) { throw new TemporaryException( new IllegalStateException("Could not query PU-service for enriching notification with patient data.")); } else { LOG.warn("PU-service returned NOT_FOUND for personnummer: {}, not enriching notification.", personnummer.getPersonnummerHash()); } break; default: break; } }  void enrichWithPatient(Intyg intyg); @VisibleForTesting void setPuService(PUService puService);  }