Package clips.delegate.directory.simple.diseaseResult

Examples of clips.delegate.directory.simple.diseaseResult.DirectoryDiseaseResult


    @Override
    public void updateImpl() throws ClipsException {
        super.updateImpl();

        DirectoryVisitingPurpose dirPurpose = DirectoryLocator.getDirectory(DirectoryVisitingPurpose.class);
        DirectoryDiseaseResult dirResult = DirectoryLocator.getDirectory(DirectoryDiseaseResult.class);
        DirectoryService dirService = DirectoryLocator.getDirectory(DirectoryService.class);
        HashMap<String, DirectoryServiceItem> serviceMap = new HashMap<String, DirectoryServiceItem>();
        DirectoryServicingPlace dirPlace = DirectoryLocator.getDirectory(DirectoryServicingPlace.class);
        DirectoryMKB10 dirMkb = DirectoryLocator.getDirectory(DirectoryMKB10.class);
        DirectoryDiagnosisEncounter dirEncounter = DirectoryLocator.getDirectory(DirectoryDiagnosisEncounter.class);
        DirectoryTraumaType dirTraumaType = DirectoryLocator.getDirectory(DirectoryTraumaType.class);


        SelectorEditableExceptional<DirectoryServiceItem> servItems = dirService.getItems();
        for (int i = 0; i < servItems.size(); i++) {
            DirectoryServiceItem item = servItems.get(i);
            if (item.getID() != 0 && !item.getCode().trim().isEmpty()
                    && item.getGroup().getID() == ServiceGroup.SERVICE_GROUP_VISIT) {
                serviceMap.put(item.getCode().trim(), item);
            }
        }


        System.out.println("Запись в базу");
        out.println("Запись в базу");
        updaterStattalonBean.get().setFollowMap(followMap);
        GregorianCalendar gc1 = new GregorianCalendar();
        Queue queue = new Queue();
        //убрать после отладки
        //Writer w = new Writer(queue, "Единственный поток", 0);
        try {
            //разкоментить
            createThreads(queue);
            Set<Entry<Integer, SstData>> sstSet = sstMap.entrySet();
            float size = sstSet.size();
            int counter = 0;
      int countChunk = 0;
            for (Iterator<Entry<Integer, SstData>> it = sstSet.iterator(); it.hasNext();) {
                //через каждые 5000 статталонов напоминаем серваку, что юзер здесь, ато 1 раз отвалился
                if (counter % 100 == 0) {
                    System.out.println("Запись посещений - " + (counter + 1)/size*100 + "%");
                    GregorianCalendar gc2 = new GregorianCalendar();
                    long mc = gc2.getTimeInMillis() - gc1.getTimeInMillis();
                    System.out.println("Work time: " + mc + " ms");
                }
                if ((counter%5000) == 0) {
                    try {
                        UserInfo.get().disturbServer();
                    } catch (Throwable ex) {
                        //пофиг
                    }
                }
                Entry<Integer, SstData> entry = it.next();
                it.remove();
                int nSyst = entry.getKey();
                SstData sstData = entry.getValue();
                ArrayList<EmcIdAndDateBorn> emcList = clientMap.get(sstData.lnumber);
                if (emcList == null) {
                    System.out.println("Не найден пациент № " + sstData.lnumber + " stat_ds.dbf " " (N_SYST = " + sstData.nSyst + ")");
                    out.println("Не найден пациент № " + sstData.lnumber + " stat_ds.dbf " " (N_SYST = " + sstData.nSyst + ")");
                    counter++;
                    continue;
                }
                int emcID = sstData.getTrueEmc(emcList);
                if (emcID == 0) {
                    System.out.println("Не найден пациент № " + sstData.lnumber + " дата рождения " + Converter.dateToString(sstData.bithdate)
                            + " stat_ds.dbf " " (N_SYST = " + sstData.nSyst + ")");
                    out.println("Не найден пациент № " + sstData.lnumber + " дата рождения " + Converter.dateToString(sstData.bithdate)
                            + " stat_ds.dbf " " (N_SYST = " + sstData.nSyst + ")");
                    counter++;
                    continue;
                }

                if (sstData.dniList.size() < 1) {
                    System.out.println("Ошибка : В статталоне NSYST = " + nSyst + " нет посещений из STAT_DNI.DBF ");
                    out.println("Ошибка : В статталоне NSYST = " + nSyst + " нет посещений из STAT_DNI.DBF ");
                    continue;
                }


                /*if (sstData.nSyst != 523391
                        //&& sstData.nSyst != 493583
                        //&& sstData.nSyst != 61058
                        ) {
                    counter++;
                    continue;
                }*/


                if (sstData.getFinalDsCount() < 1) {
                    System.out.println("Ошибка : В статталоне NSYST = " + nSyst + " отсутствует заключительный диагноз ");
                    out.println("Ошибка : В статталоне NSYST = " + nSyst + " отсутствует заключительный диагноз ");
                    continue;
                }
                sstData.fixDiagnosys();

                if (sstData.getFinalDsCount() > 1) {
                    System.out.println("Ошибка : В статталоне NSYST = " + nSyst + " более одного заключительного диагноза ");
                    out.println("Ошибка : В статталоне NSYST = " + nSyst + " более одного заключительного диагноза ");
                    continue;
                }

                for (int i = 0; i < sstData.dniList.size(); i++) {
                    DniData dni = sstData.dniList.get(i);

                    //Заполнение чанка для быстрого ввода
                    QuickInputChunk c = new QuickInputChunk();
                    c.isUpdate = true;
                    try {
                        //Заболевание
                        c.nSyst = sstData.nSyst;
                        c.emcID = emcID;
                        c.diseaseID = 0;
                        c.purposeID = dirPurpose.getItemFromExtKey(sstData.purpose).getID();
                        c.resultID = dirResult.getItemFromExtKey(sstData.result).getID();
                        c.dataSt = sstData.dataSt;
                        c.dateEnd = sstData.data;
                        //Посещение
                        c.date = dni.date;
                        CollaboratorFunctionsChunk cfc = findCollFuncByExtKey(String.valueOf(dni.idWrach), sstData.vmu);
View Full Code Here


                    diseaseLocal.restore();
                }
            } else {
                diseaseLocal.setClosed(null);
                diseaseLocal.setCloser(null);
                DirectoryDiseaseResult dir = DirectoryLocator.getDirectory((DirectoryDiseaseResult.class));
                diseaseLocal.setDiseaseResult(dir.getNullItem());
                save();
                setScreenFields();
            }
        } catch (ClipsException ex) {
            diseaseLocal.restore();
View Full Code Here

            public void setSelectedDirectoryItem(DirectoryVisitingPurposeItem item) throws ClipsException {
                getObject().setVisitingPurpose(item);
            }
        };

        DirectoryDiseaseResult result = DirectoryLocator.getDirectory(DirectoryDiseaseResult.class);
        new DirectoryComboBoxModel<DiseaseLocal,DirectoryDiseaseResultItem>(cbResult, result, diseaseLocal) {

            @Override
            public DirectoryDiseaseResultItem getSelectedDirectoryItem() throws ClipsException {
                return getObject().getDiseaseResult();
View Full Code Here

            DirectoryDocumentType dirDocType = DirectoryLocator.getDirectory(DirectoryDocumentType.class);
            DirectoryRegionIdCode dirRegCode = DirectoryLocator.getDirectory(DirectoryRegionIdCode.class);
            dirInsurer = DirectoryLocator.getDirectory(DirectoryInsurer.class);
            DirectoryKladr dirKladr = DirectoryLocator.getDirectory(DirectoryKladr.class);
            DirectoryKladrType dirKladrType = DirectoryLocator.getDirectory(DirectoryKladrType.class);
            DirectoryDiseaseResult dirDisResult = DirectoryLocator.getDirectory(DirectoryDiseaseResult.class);
            DirectoryDvr dirDvr = DirectoryLocator.getDirectory(DirectoryDvr.class);
            DirectoryDiagnosisEncounter dirDiagEnc = DirectoryLocator.getDirectory(DirectoryDiagnosisEncounter.class);
            DirectoryMedicalAidType dirVmu = DirectoryLocator.getDirectory(DirectoryMedicalAidType.class);
            DirectoryVisitingPurpose dirVisPurp = DirectoryLocator.getDirectory(DirectoryVisitingPurpose.class);

            ErrorList target = new ErrorList();
            count = 0;
            for (RegisterData data : list) {
                if (!needWrite(data)) {
                    continue;
                }
                int id = data.id;

                //ID
                lf.id.put(id, target, data.uuid);
                //System.out.println("Запись посещения id = " + id);

                //HISTORY
                if (data.history.trim().isEmpty()) {
                    target.add(id, "Номер мед. карты не указан", ErrorList.CLIENT_ERROR);
                }
                lf.history.put(id, target, data.history);

                //FAM
                if (data.fam == 0) {
                    target.add(id, "Фамилия не указана", ErrorList.CLIENT_ERROR);
                    lf.fam.put(id, target, "");
                } else {
                    String surname = dirSurname.getItemFromID(data.fam).getTitle();
                    if (surname.trim().isEmpty()) {
                        target.add(id, "Фамилия пустая", ErrorList.CLIENT_ERROR);
                    }
                    lf.fam.put(id, target, surname);
                }

                //NAM
                if (data.nam == 0) {
                    target.add(id, "Имя не указано", ErrorList.CLIENT_ERROR);
                    lf.nam.put(id, target, "");
                } else {
                    String name = dirName.getItemFromID(data.nam).getTitle();
                    if (name.trim().isEmpty()) {
                        target.add(id, "Имя пустое", ErrorList.CLIENT_ERROR);
                    }
                    lf.nam.put(id, target, name);
                }

                //FNAM
                if (data.fnam == 0) {
                    target.add(id, "Отчество не указано", ErrorList.CLIENT_ERROR);
                    lf.fnam.put(id, target, "-");
                } else {
                    String patron = dirPatron.getItemFromID(data.fnam).getTitle();
                    if (patron.trim().isEmpty()) {
                        target.add(id, "Отчество пустое", ErrorList.CLIENT_ERROR);
                        patron = "-";
                    }
                    lf.fnam.put(id, target, patron);
                }

                //POL_SER
                lf.pol_ser.put(id, target, data.pol_ser);

                //POL_NUM
                if (data.pol_num.equals("0000000000000000")) {
                    target.add(id, "Полис фиктивный", ErrorList.CLIENT_ERROR);
                }
                lf.pol_num.put(id, target, data.pol_num);

                //BDAY
                if (data.bday == null) {
                    target.add(id, "Дата рождения не указана", ErrorList.CLIENT_ERROR);
                    lf.bday.put("");
                } else {
                    Calendar cal = Calendar.getInstance();
                    cal.setTime(data.bday);
                    lf.bday.put(cal);
                }

                //SEX
                if (data.sex == 0) {
                    target.add(id, "Пол не указан", ErrorList.CLIENT_ERROR);
                }
                lf.sex.put(data.sex);

                //STATUS
                if (data.status == 0) {
                    target.add(id, "Социальный статус не указан", ErrorList.CLIENT_ERROR);
                    lf.status.put(0);
                } else {
                    try {
                        String extKey = dirStatus.getItemFromID(data.status).getExtKey();
                        lf.status.put(Integer.parseInt(extKey));
                    } catch (NumberFormatException ex) {
                        target.add(id, "Код социального статуса должен быть числом", ErrorList.CLIENT_ERROR);
                        lf.status.put(0);
                    }

                }

                //PRED
                lf.pred.put(data.pred);

                //P_STATUS
                if (data.p_status == 0) {
                    lf.p_status.put("");
                } else {
                    lf.p_status.put(data.p_status);
                }

                //P_FAM
                if (data.p_fam == 0) {
                    lf.p_fam.put(id, target, "");
                } else {
                    lf.p_fam.put(id, target, dirSurname.getItemFromID(data.p_fam).getTitle());
                }

                //P_NAM
                if (data.p_nam == 0) {
                    lf.p_nam.put(id, target, "");
                } else {
                    lf.p_nam.put(id, target, dirName.getItemFromID(data.p_nam).getTitle());
                }

                //P_FNAM
                if (data.p_fnam == 0) {
                    lf.p_fnam.put(id, target, "");
                } else {
                    lf.p_fnam.put(id, target, dirPatron.getItemFromID(data.p_fnam).getTitle());
                }

                //C_OKSM
                if (data.c_oksm.trim().isEmpty()) {
                    target.add(id, "Гражданство не указано", ErrorList.CLIENT_ERROR);
                }
                lf.oksm.put(id, target, data.c_oksm);

                //DOC_TYPE
                if (data.type_doc == 0) {
                    lf.doc_type.put(0);
                } else {
                    try {
                        String extKey = dirDocType.getItemFromID(data.type_doc).getExtKey();
                        lf.doc_type.put(Integer.parseInt(extKey));
                    } catch (NumberFormatException ex) {
                        target.add(id, "Код социального статуса должен быть числом", ErrorList.CLIENT_ERROR);
                        lf.doc_type.put(0);
                    }
                }

                //DOC_SER
                lf.doc_ser.put(id, target, data.doc_ser);

                //DOC_NUM
                lf.doc_num.put(id, target, data.doc_num);

                //INS_ID_AR
                if (data.ins_id_ar == 0) {
                    lf.ins_id_ar.put("0");
                } else {
                    try {
                        String extKey = dirRegCode.getItemFromID(data.ins_id_ar).getExtKey();
                        lf.ins_id_ar.put(Integer.parseInt(extKey));
                    } catch (NumberFormatException ex) {
                        target.add(id, "ИД территории страховой организации должен быть числом", ErrorList.CLIENT_ERROR);
                        lf.ins_id_ar.put("");
                    }
                }

                //INS_ORG
                String arExtKey = dirRegCode.getItemFromID(data.ins_id_ar).getExtKey();
                DirectoryInsurerItem insurer = dirInsurer.getItemFromID(data.id_ins_org);
                if (!arExtKey.equals(RegisterBean.REGION_CODE) && !insurer.getExtKey().isEmpty()) {
                    lf.ins_org.put(id, target, "");
                } else if (data.pol_num.isEmpty() && insurer.getExtKey() != null && !insurer.getExtKey().isEmpty()) {
                    lf.ins_org.put(id, target, "");
                } else {
                    lf.ins_org.put(id, target, insurer.getTitle());
                }

                if (!arExtKey.equals(RegisterBean.REGION_CODE)
                        && lf.ins_org.get().trim().isEmpty()) {
                    target.add(id, "Для инотерриториального больного не указан филиал ФОМС", ErrorList.CLIENT_ERROR);
                }

                //INS_ID
                try {
                    String extKey = insurer.getExtKey();
                    if (!arExtKey.equals(RegisterBean.REGION_CODE) && !insurer.getExtKey().isEmpty()) {
                        lf.ins_id.put("");
                    } else if (data.pol_num.isEmpty() && extKey != null && !extKey.isEmpty()) {
                        lf.ins_id.put("0");
                    } else if (extKey == null || extKey.isEmpty()) {
                        lf.ins_id.put("");
                    } else {
                        lf.ins_id.put(Integer.parseInt(extKey));
                    }
                } catch (NumberFormatException ex) {
                    target.add(id, "ИД страховой организации должен быть числом", ErrorList.CLIENT_ERROR);
                    lf.ins_id.put("");
                }

                //KLADR
                lf.kladr.put(id, target, data.kladr);

                //AREA
                DirectoryKladrItem area = dirKladr.getItemFromID(data.area);
                if (area != null) {
                    lf.area.put(id, target, area.getTitle());
                } else {
                    lf.area.put(id, target, "");
                }

                //REGION
                lf.region.put(id, target, data.region);

                //REG_CITY
                if (data.region.trim().toUpperCase().equals("УФА") && data.reg_city.isEmpty()) {
                    target.add(id, "Неполный адрес: отсутствует район г. Уфа", ErrorList.CLIENT_ERROR);
                }
                lf.reg_city.put(id, target, data.reg_city);

                //ITEM
                lf.item.put(id, target, data.item);

                //TYPE_ITEM
                DirectoryKladrTypeItem typeItem = dirKladrType.getItemFromID(data.type_item);
                if (typeItem == null) {
                    lf.type_item.put("");
                } else {
                    try {
                        String extKey = typeItem.getExtKey();
                        if (extKey == null || extKey.isEmpty()) {
                            lf.type_item.put("");
                        } else {
                            lf.type_item.put(Integer.parseInt(extKey));
                        }
                    } catch (NumberFormatException ex) {
                        target.add(id, "Код типа населенного пункта должен быть числом", ErrorList.CLIENT_ERROR);
                        lf.type_item.put("");
                    }
                }

                //TYPE_UL
                if (data.type_ul == 0) {
                    lf.type_ul.put("");
                } else {
                    lf.type_ul.put(data.type_ul);
                }

                //STREET
                lf.street.put(id, target, data.street);

                //HOUSE
                try {
                    if (data.house.isEmpty()) {
                        lf.house.put("");
                    } else {
                        lf.house.put(Integer.parseInt(data.house));
                    }
                } catch (NumberFormatException ex) {
                    target.add(id, "Номер дома должен быть числом", ErrorList.CLIENT_ERROR);
                    lf.house.put("");
                }

                //LITER
                if (data.liter.length() > 1) {
                    try {
                        Integer.parseInt(data.liter);
                    } catch (NumberFormatException ex) {
                        target.add(id, "Буква дома имеет неправильный формат : " + data.liter, ErrorList.CLIENT_ERROR);
                    }
                }
                lf.liter.put(id, target, data.liter);

                //FLAT
                if (data.flat.equals("0")) {
                    lf.flat.put(id, target, "");
                } else {
                    lf.flat.put(id, target, data.flat);
                }

                //WORK
                if (data.is_ext != 0) {
                    lf.work.put(id, target, data.work);
                } else {
                    lf.work.put(id, target, "");
                }

                //DATE_BEGIN
                Calendar cal = Calendar.getInstance();
                cal.setTime(data.date_begin);
                lf.date_begin.put(cal);
                //DATE_END
                lf.date_end.put("");
                //MES
                if (!Pattern.matches("[0-9]{6}",data.mes)) {
                    target.add(id, "Неправильный код посещения");
                }
                lf.mes.put(id, target, data.mes);

                //UKL
                //Для поликлиник не заполняется
                lf.ukl.put("");

                //OUT
                if (data.out == 0) {
                    target.add(id, "Не указан исход лечения");
                    lf.out.put("");
                } else {
                    try {
                        DirectoryDiseaseResultItem item = dirDisResult.getItemFromID(data.out);
                        lf.out.put(Integer.parseInt(item.getExtKey()));
                    } catch (NumberFormatException ex) {
                        target.add(id, "Исход лечения должен быть числом");
                        lf.out.put("");
                    }
View Full Code Here

        getDetails().visitingPurposeID = item.getID();
        fireContentStateEvent();
    }
   
    public DirectoryDiseaseResultItem getDiseaseResult() throws ClipsException{
        DirectoryDiseaseResult result = DirectoryLocator.getDirectory(DirectoryDiseaseResult.class);
        return result.getItemFromID(getDetails().diseaseResultID);
    }
View Full Code Here

TOP

Related Classes of clips.delegate.directory.simple.diseaseResult.DirectoryDiseaseResult

Copyright © 2018 www.massapicom. 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.