@Override public void serialize(DataOutputStream dataOutputStream) throws IOException { dataOutputStream.writeInt(this.getId()); dataOutputStream.writeInt(this.getPatientId()); dataOutputStream.writeInt(this.getProgramId()); dataOutputStream.writeUTF(this.getName()); dataOutputStream.writeInt(this.getStatus()); dataOutputStream.writeUTF(this.getDateOfEnrollment()); dataOutputStream.writeUTF(this.getDateOfIncident()); dataOutputStream.writeInt(programStageInstances.size()); for (ProgramStage programStageInstance : programStageInstances) { programStageInstance.serialize(dataOutputStream); } }