/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.delegate.doctor.certificate.tag.certTags;
import beans.doctor.diagnosis.DiagCodeTitle;
import cli_fmw.main.ClipsException;
import clips.delegate.doctor.DiseaseLocal;
import clips.delegate.doctor.certificate.CertificateLocal;
import clips.delegate.doctor.diagnosis.DiagnosisLocal;
import clips.delegate.doctor.certificate.tag.TagToClass;
import clips.delegate.doctor.certificate.tag.interfaces.TypeMultiSelectable;
import cli_fmw.delegate.report.ReportParam;
import java.util.List;
import framework.utils.PairIntStr;
import java.util.ArrayList;
/**
*
* @author vip
*/
@TagToClass(tagName="accomp_diagnosys", title="Сопутствующие заболевания")
public class CertTagAccompDiagnosys extends TypeMultiSelectable {
/**
*
* @throws cli_fmw.main.ClipsException
*/
public CertTagAccompDiagnosys() throws ClipsException {
}
public CertTagAccompDiagnosys(CertificateLocal certificateLocal, ReportParam reportParam, DiseaseLocal diseaseLocal) throws ClipsException {
super(certificateLocal, reportParam, diseaseLocal);
}
@Override
public void fillItems() throws ClipsException {
if (certificateLocal == null) throw new ClipsException();
List<DiagnosisLocal> fullDiagnosisList = certificateLocal.getClientLocal()
.getFullDiagnosisList(diseaseLocal == null ? 0 : diseaseLocal.getID());
//Добавление сопутствующих диагнозов
for (int i = 0; i < fullDiagnosisList.size(); i++) {
DiagnosisLocal dl = fullDiagnosisList.get(i);
if (dl.hasReferencedDiagnosis()) {
PairIntStr pair = new PairIntStr(dl.getID(), dl.getMkbAndStage());
allItems.add(pair);
}
}
}
@Override
public boolean isEditable() {
return true;
}
@Override
public DiagCodeTitle getValue() throws ClipsException {
List<Integer> items = getItems();
ArrayList<String> codes = new ArrayList<String>(items.size());
for (int i = 0; i < items.size(); i++) {
Integer id = items.get(i);
String diseaseCode;
try {
DiagnosisLocal dl = new DiagnosisLocal(id, null);
diseaseCode = dl.getMkb().getDiseaseCode();
} catch (ClipsException ex) {
diseaseCode = "";
}
codes.add(diseaseCode);
}
return new DiagCodeTitle(getText(), codes);
}
}