Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.44 KB | None | 0 0
  1. do LANGUAGE plpgsql $$
  2. DECLARE
  3. _r record;
  4. regroup_id INTEGER;
  5. _step record;
  6. _res_true INTEGER;
  7. _res_copy INTEGER;
  8. _step_id_new INTEGER;
  9. _plc_visit record;
  10. _hsp_record record;
  11. _mc_diagnosis record;
  12. BEGIN
  13. FOR _r IN (
  14. SELECT mc.id case_id, _st._create_date, ms.admission_date, mc.case_type_id FROM mc_case mc
  15. 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 || ' %'
  16. JOIN (SELECT case_id, MIN(admission_date)admission_date FROM mc_step GROUP BY case_id) ms ON ms.case_id=mc.id
  17. WHERE ms.admission_date>_st._create_date
  18.  
  19. )
  20. loop
  21.     SELECT * INTO _step FROM ms_step WHERE case_id=_r.case_id AND admission_date=_r.admission_date LIMIT 1;
  22.  
  23. SELECT id INTO _res_true FROM sr_res_group WHERE id=_step.res_group_id;
  24. --новый ресурс
  25. SELECT  res_group_system_copy(_res_true)  INTO _res_copy;
  26.     RAISE NOTICE 'обновляю ресурс для посещения id=%', "_r".ms_id;
  27. --посещение
  28. SELECT NEXTVAL('mc_step_seq') INTO _step_id_new;
  29. INSERT INTO mc_step(id, admission_date, outcome_date, case_id, result_id, res_group_id)
  30. VALUES (_step_id_new, _r.admission_date, _step.outcome_date, _step.case_id, _step.result_id, _res_copy);
  31. RAISE NOTICE 'новое посещение id=%', _step_id_new;
  32. IF(_r.case_type_id =1 AND EXISTS(SELECT 1  FROM plc_visit WHERE id=_step.id) )
  33. THEN
  34. SELECT *  INTO _plc_visit FROM plc_visit WHERE id=_step.id;
  35.     INSERT INTO plc_visit(id, goal_id, place_id, type_id)
  36. VALUES(_step_id_new, _plc_visit.goal_id, _plc_visit.place_id, _plc_visit.type_id );
  37. END IF;
  38.  
  39. IF(_r.case_type_id =2 AND EXISTS(SELECT 1 FROM hsp_record WHERE id=_step.id) )
  40. THEN
  41.     SELECT * INTO _hsp_record FROM hsp_record WHERE id=_step.id;
  42.     INSERT INTO hsp_record(id, department_id, funding_id, previous_id)
  43. VALUES(_step_id_new,_hsp_record.department_id, _hsp_record.funding_id, _hsp_record.previous_id );
  44. END IF;
  45. IF(EXISTS( SELECT 1 FROM mc_diagnosis WHERE step_id=_step.id LIMIT 1))
  46. THEN
  47. SELECT * INTO _mc_diagnosis FROM mc_diagnosis WHERE step_id=_step.id LIMIT 1;
  48. INSERT INTO mc_diagnosis(id, diagnos_id, case_id, patient_id, stage_id, step_id, type_id, is_main,disease_type_id)
  49. 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);
  50. END IF;
  51. END loop;
  52. END $$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement