Skip to content

Commit

Permalink
Merge pull request #100 from OsiriX-Foundation/refactor_pseudonym
Browse files Browse the repository at this point in the history
Refactor pseudonym to remove duplicate code
  • Loading branch information
nicolasvandooren authored Dec 14, 2020
2 parents d7a8c66 + f3bbf46 commit e880cee
Show file tree
Hide file tree
Showing 4 changed files with 239 additions and 103 deletions.
45 changes: 3 additions & 42 deletions mvc/src/main/java/org/karnak/cache/CachedPatient.java
Original file line number Diff line number Diff line change
@@ -1,63 +1,24 @@
package org.karnak.cache;

import java.io.Serializable;
import java.time.LocalDate;

public class CachedPatient implements PseudonymPatient, Serializable {
private String pseudonym;
private String patientId;
private String patientName;
private String issuerOfPatientId;
public class CachedPatient extends Patient {

public CachedPatient(String pseudonym, String patientId, String patientName, String issuerOfPatientId) {
this.pseudonym = pseudonym;
this.patientId = patientId;
this.patientName = patientName;
this.issuerOfPatientId = issuerOfPatientId;
}

@Override
public String getPseudonym() {
return pseudonym;
super(pseudonym, patientId, patientName, null, null, issuerOfPatientId);
}

public void setPseudonym(String pseudonym) {
this.pseudonym = pseudonym;
}

@Override
public String getPatientId() {
return patientId;
}

public void setPatientId(String patientId) {
this.patientId = patientId;
}
@Override
public String getPatientName() {
return patientName;
}

public void setPatientName(String patientName) {
this.patientName = patientName;
}

@Override
public String getIssuerOfPatientId() {
return issuerOfPatientId;
updatePatientName(patientName);
}

public void setIssuerOfPatientId(String issuerOfPatientId) {
this.issuerOfPatientId = issuerOfPatientId;
}

@Override
public LocalDate getPatientBirthDate() {
return null;
}

@Override
public String getPatientSex() {
return null;
}
}
68 changes: 7 additions & 61 deletions mvc/src/main/java/org/karnak/cache/MainzellistePatient.java
Original file line number Diff line number Diff line change
@@ -1,94 +1,40 @@
package org.karnak.cache;

import java.io.Serializable;
import java.time.LocalDate;

public class MainzellistePatient implements PseudonymPatient, Serializable {
private String pseudonym;
private String patientId;
private String patientFirstName;
private String patientLastName;
private LocalDate patientBirthDate;
private String patientSex;
private String issuerOfPatientId;
public class MainzellistePatient extends Patient {

@Override
public String getPseudonym() {
return pseudonym;
public MainzellistePatient(String pseudonym, String patientId, String patientFirstName, String patientLastName,
LocalDate patientBirthDate, String patientSex, String issuerOfPatientId)
{
super(pseudonym, patientId, patientFirstName, patientLastName, patientBirthDate, patientSex, issuerOfPatientId);
}

public void setPseudonym(String pseudonym) {
this.pseudonym = pseudonym;
}

@Override
public String getPatientId() {
return patientId;
}

public void setPatientId(String patientId) {
this.patientId = patientId;
}

@Override
public String getPatientName() {
return patientFirstName == null || patientFirstName.equals("") ?
patientLastName : String.format("%s^%s", patientLastName == null ? "" : patientLastName, patientFirstName);
}

public String getPatientFirstName() {
return patientFirstName;
}

public void setPatientFirstName(String patientFirstName) {
this.patientFirstName = patientFirstName;
}

public String getPatientLastName() {
return patientLastName;
updatePatientFirstName(patientFirstName);
}

public void setPatientLastName(String patientLastName) {
this.patientLastName = patientLastName;
}

@Override
public LocalDate getPatientBirthDate() {
return patientBirthDate;
updatePatientLastName(patientLastName);
}

public void setPatientBirthDate(LocalDate patientBirthDate) {
this.patientBirthDate = patientBirthDate;
}

@Override
public String getPatientSex() {
return patientSex;
}

public void setPatientSex(String patientSex) {
this.patientSex = patientSex;
}

@Override
public String getIssuerOfPatientId() {
return issuerOfPatientId;
}

public void setIssuerOfPatientId(String issuerOfPatientId) {
this.issuerOfPatientId = issuerOfPatientId;
}

public MainzellistePatient(String pseudonym, String patientId, String patientFirstName, String patientLastName,
LocalDate patientBirthDate, String patientSex, String issuerOfPatientId)
{
this.pseudonym = pseudonym;
this.patientId = patientId;
this.patientFirstName = patientFirstName;
this.patientLastName = patientLastName;
this.patientBirthDate= patientBirthDate;
this.patientSex = patientSex;
this.issuerOfPatientId = issuerOfPatientId;
}

}
119 changes: 119 additions & 0 deletions mvc/src/main/java/org/karnak/cache/Patient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package org.karnak.cache;

import java.io.Serializable;
import java.time.LocalDate;

public abstract class Patient implements PseudonymPatient, Serializable {
private static final Character SPLIT_CHAR_PATIENT_NAME = '^';
protected String pseudonym;
protected String patientId;
protected String patientName;
protected String patientFirstName;
protected String patientLastName;
protected LocalDate patientBirthDate;
protected String patientSex;
protected String issuerOfPatientId;

protected Patient(String pseudonym, String patientId, String patientName, LocalDate patientBirthDate,
String patientSex, String issuerOfPatientId)
{
this.pseudonym = pseudonym;
this.patientId = patientId;
this.patientName = patientName;
this.patientFirstName = createPatientFirstName(patientName);
this.patientLastName = createPatientLastName(patientName);
this.patientBirthDate= patientBirthDate;
this.patientSex = patientSex;
this.issuerOfPatientId = issuerOfPatientId;
}

protected Patient(String pseudonym, String patientId, String patientFirstName, String patientLastName,
LocalDate patientBirthDate, String patientSex, String issuerOfPatientId)
{
this.pseudonym = pseudonym;
this.patientId = patientId;
this.patientName = createPatientName(patientFirstName, patientLastName);
this.patientFirstName = emptyStringIfNull(patientFirstName);
this.patientLastName = emptyStringIfNull(patientLastName);
this.patientBirthDate= patientBirthDate;
this.patientSex = patientSex;
this.issuerOfPatientId = issuerOfPatientId;
}

protected static String createPatientLastName(String patientName) {
return patientName.split(String.format("\\%c", SPLIT_CHAR_PATIENT_NAME))[0];
}

protected static String createPatientFirstName(String patientName) {
String[] patientNameSplitted = patientName.split(String.format("\\%c", SPLIT_CHAR_PATIENT_NAME));
if (patientNameSplitted.length > 1) {
return patientNameSplitted[1];
}
return "";
}

protected static String createPatientName(String patientFirstName, String patientLastName) {
if (patientFirstName == null || patientFirstName.equals("")) {
return patientLastName;
}
return String.format("%s%c%s", patientLastName == null ? "" : patientLastName, SPLIT_CHAR_PATIENT_NAME, patientFirstName);
}

protected void updatePatientName(String patientName) {
this.patientName = patientName;
this.patientFirstName = createPatientFirstName(patientName);
this.patientLastName = createPatientLastName(patientName);
}

protected void updatePatientLastName(String patientLastName) {
this.patientLastName = emptyStringIfNull(patientLastName);
this.patientName = createPatientName(patientFirstName, patientLastName);
}

protected void updatePatientFirstName(String patientFirstName) {
this.patientFirstName = emptyStringIfNull(patientFirstName);
this.patientName = createPatientName(patientFirstName, patientLastName);
}

private static String emptyStringIfNull(String value) {
return value == null ? "" : value;
}

@Override
public String getPseudonym() {
return pseudonym;
}

@Override
public String getPatientId() {
return patientId;
}

@Override
public String getPatientName() {
return patientName;
}

public String getPatientFirstName() {
return patientFirstName;
}

public String getPatientLastName() {
return patientLastName;
}

@Override
public LocalDate getPatientBirthDate() {
return patientBirthDate;
}

@Override
public String getPatientSex() {
return patientSex;
}

@Override
public String getIssuerOfPatientId() {
return issuerOfPatientId;
}
}
Loading

0 comments on commit e880cee

Please sign in to comment.