Package clips.delegate.directory.complex

Source Code of clips.delegate.directory.complex.DirectoryMKB10

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package clips.delegate.directory.complex;

import beans.directory.mkb10.DirectoryMKB10BeanRemote;
import beans.directory.mkb10.entity.Mkb10Details;
import beans.directory.mkb10.DirectoryMKB10Bean;
import beans.directory.mkb10.MKBCode;
import beans.directory.mkb10.MKBParser;
import beans.directory.mkb10.MkbItem;
import cli_fmw.delegate.directory.DirectoryRecursive;
import cli_fmw.main.ClipsException;
import cli_fmw.utils.Selector;
import clips.directory.editors.mkb10.MKbSelector;
import framework.beans.directory.DirectoryItemDetails;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;

/**
* Справочник заболеваний
* @author vip
*/
public class DirectoryMKB10 extends
        DirectoryRecursive<DirectoryMKB10BeanRemote, DirectoryMKB10Item> {
  private MKbSelector        selector;
  private MKBParser        parser;

  public DirectoryMKB10() throws ClipsException {
    super(DirectoryMKB10Bean.class.getSimpleName());
  }

  @Override
  public String getDirectoryTitle() {
    return "Болезни";
  }

  @Override
  protected DirectoryMKB10Item createFromLoadedDetails(DirectoryItemDetails details) {
    Mkb10Details d = (Mkb10Details) details;
    return new DirectoryMKB10Item(d);
  }

  @Override
  protected DirectoryMKB10Item createNullItem() {
    Mkb10Details d = new Mkb10Details();
    d.code = "";
    d.mustNotify = false;
    d.title = "Нет диагноза";
    return new DirectoryMKB10Item(d);
  }

  public void synchronize(List<MkbItem> newItems) throws ClipsException {
    try {
      getBean().get().synchronize(newItems);
    } catch (Exception ex) {
      clearBean();
      throw new ClipsException("Синхронизация не удалась", ex);
    }
  }

  public void updateTitle(List<MkbItem> newItems) throws ClipsException {
    try {
      getBean().get().updateTitle(newItems);
    } catch (Exception ex) {
      clearBean();
      throw new ClipsException("Апдейт тайтлов не удался", ex);
    }
  }

  public void validate() throws ParseException, ClipsException{
    Selector<DirectoryMKB10Item>      items = getItems();
    int      size = items.size();
    DirectoryMKB10Item.validateList(items, null);
    for (int i = 0; i < size; i++){
            DirectoryMKB10Item              item = items.get(i);
            if (item.getID() != 0){
                items.get(i).validateRecursive();
            }
    }
  }

  public DirectoryMKB10Item getItemByCode(String code) throws ClipsException, ParseException {
    MKBCode        parsed;
    try{
      parsed = MKBParser.decodeWellFormed(code);
    }
    catch (ParseException ex){
      System.out.println("Incorect code \"" + code + "\", try to use advanced parse method");
      if (parser == null){
        parser = new MKBParser(MKBParser.ParseLevel.hard);
      }
      ArrayList<MKBCode>      codes = parser.parse(code);
      if (codes.size() != 1){
        throw new ParseException("Строка \"" + code + "\" содержит более одного кода мкб", 0);
      }
      parsed = codes.get(0);
    }
    if (selector == null){
      selector = new MKbSelector(this, MKbSelector.SelectType.oneToOne);
    }
    return selector.getSingleItem(parsed);
  }
}
TOP

Related Classes of clips.delegate.directory.complex.DirectoryMKB10

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.