Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- do LANGUAGE plpgsql $$
- DECLARE
- _r record;
- regroup_id INTEGER;
- _step record;
- _res_true INTEGER;
- _res_copy INTEGER;
- _step_id_new INTEGER;
- _plc_visit record;
- _hsp_record record;
- _mc_diagnosis record;
- BEGIN
- FOR _r IN (
- SELECT mc.id case_id, _st._create_date, ms.admission_date, mc.case_type_id FROM mc_case mc
- JOIN (SELECT case_note, MIN(create_date::DATE) _create_date FROM supp.add_first_step GROUP BY case_note) _st ON mc.note LIKE _st.case_note || ' %'
- JOIN (SELECT case_id, MIN(admission_date)admission_date FROM mc_step GROUP BY case_id) ms ON ms.case_id=mc.id
- WHERE ms.admission_date>_st._create_date
- )
- loop
- SELECT * INTO _step FROM ms_step WHERE case_id=_r.case_id AND admission_date=_r.admission_date LIMIT 1;
- SELECT id INTO _res_true FROM sr_res_group WHERE id=_step.res_group_id;
- --новый ресурс
- SELECT res_group_system_copy(_res_true) INTO _res_copy;
- RAISE NOTICE 'обновляю ресурс для посещения id=%', "_r".ms_id;
- --посещение
- SELECT NEXTVAL('mc_step_seq') INTO _step_id_new;
- INSERT INTO mc_step(id, admission_date, outcome_date, case_id, result_id, res_group_id)
- VALUES (_step_id_new, _r.admission_date, _step.outcome_date, _step.case_id, _step.result_id, _res_copy);
- RAISE NOTICE 'новое посещение id=%', _step_id_new;
- IF(_r.case_type_id =1 AND EXISTS(SELECT 1 FROM plc_visit WHERE id=_step.id) )
- THEN
- SELECT * INTO _plc_visit FROM plc_visit WHERE id=_step.id;
- INSERT INTO plc_visit(id, goal_id, place_id, type_id)
- VALUES(_step_id_new, _plc_visit.goal_id, _plc_visit.place_id, _plc_visit.type_id );
- END IF;
- IF(_r.case_type_id =2 AND EXISTS(SELECT 1 FROM hsp_record WHERE id=_step.id) )
- THEN
- SELECT * INTO _hsp_record FROM hsp_record WHERE id=_step.id;
- INSERT INTO hsp_record(id, department_id, funding_id, previous_id)
- VALUES(_step_id_new,_hsp_record.department_id, _hsp_record.funding_id, _hsp_record.previous_id );
- END IF;
- IF(EXISTS( SELECT 1 FROM mc_diagnosis WHERE step_id=_step.id LIMIT 1))
- THEN
- SELECT * INTO _mc_diagnosis FROM mc_diagnosis WHERE step_id=_step.id LIMIT 1;
- INSERT INTO mc_diagnosis(id, diagnos_id, case_id, patient_id, stage_id, step_id, type_id, is_main,disease_type_id)
- VALUES(NEXTVAL('mc_diagnosis_seq'), _mc_diagnosis.diagnos_id, _mc_diagnosis.case_id, _mc_diagnosis.patient_id, _mc_diagnosis.stage_id , _mc_diagnosis.step_id, _mc_diagnosis.type_id, _mc_diagnosis.is_main ,_mc_diagnosis.disease_type_id);
- END IF;
- END loop;
- END $$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement