# Услуги ###### tags: `medialog` ---- **Список услуг:** ```sql SELECT id, description, code, name, price, sort, group_code, group_id, extra_servs, cash FROM WEB_PRICELIST ``` **Виды приема:** ```sql select DISTINCT PL_EXAM_ID,NAME, (ISNULL(web_ok,0)+ISNULL(plan_ok,0)+ISNULL(med_ok,0)) as EXAM_TYPE, DUREE, SERVS,SPECIALISATION_ID, PL_SUBJ_ID, TREBUETSYA_BANKOVSKAYA_KA, sort from ( select PL_EXAM.PL_EXAM_ID,PL_EXAM.NAME, (case when isnull(pl_subj.TREBUETSYA_BANKOVSKAYA_KA,0)=1 or isnull(PL_EXAM.TREBUETSYA_BANKOVSKAYA_KA,0)=1 then 1 else 0 end) as TREBUETSYA_BANKOVSKAYA_KA, 1 as web_ok, (select 1 from PL_SUBJ_EXAM eo with(nolock) where eo.PL_subj_ID=PL_SUBJ_EXAM.PL_subj_ID and eo.PL_EXAM_ID=4074 and PL_SUBJ_EXAM.EXAM_ORDER>eo.EXAM_ORDER) plan_ok, (select 1 from PL_SUBJ_EXAM eo with(nolock) where eo.PL_subj_ID=PL_SUBJ_EXAM.PL_subj_ID and eo.PL_EXAM_ID=4075 and PL_SUBJ_EXAM.EXAM_ORDER>eo.EXAM_ORDER) med_ok, PL_SUBJ_EXAM.EXAM_ORDER as sort, PL_EXAM.DUREE, case when PL_EXAM.FM_SERV_ID IS not null then convert(varchar(100),FM_SERV_ID) else left( ((SELECT convert(varchar(100),FM_DIR_SERV.FM_SERV_ID)+',' FROM FM_DIR_SERV FM_DIR_SERV where PL_EXAM.PL_EXAM_ID=FM_DIR_SERV.PL_EXAM_ID FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')), LEN( ((SELECT convert(varchar(100),FM_DIR_SERV.FM_SERV_ID)+',' FROM FM_DIR_SERV FM_DIR_SERV where PL_EXAM.PL_EXAM_ID=FM_DIR_SERV.PL_EXAM_ID FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')))-1 ) end SERVS, isnull(PL_EXAM.SPECIALISATION_ID,MEDECINS.SPECIALISATION_ID) as SPECIALISATION_ID, PL_SUBJ_EXAM.PL_SUBJ_ID From PL_SUBJ_EXAM PL_SUBJ_EXAM with(nolock) inner join PL_EXAM PL_EXAM with(nolock) on PL_SUBJ_EXAM.PL_EXAM_ID=PL_EXAM.PL_EXAM_ID inner join PL_SUBJ pl_subj with(nolock) on PL_SUBJ_EXAM.PL_SUBJ_ID=PL_SUBJ.PL_SUBJ_ID left JOIN PL_SUROL PL_SUROL with(nolock) ON PL_SUBJ.PL_SUBJ_ID = PL_SUROL.PL_SUBJ_ID left JOIN PL_EXROL PL_EXROL with(nolock) ON PL_EXAM.PL_EXAM_ID = PL_EXROL.PL_EXAM_ID left join MEDECINS with(nolock) on MEDECINS.MEDECINS_ID = PL_SUBJ.MEDECINS_ID where isnull(PL_EXAM.REC_PLANNING,0)=1 and PL_SUBJ_EXAM.PL_subj_ID in ( select distinct e1.PL_subj_ID from PL_SUBJ_EXAM e1 with(nolock) inner join PL_SUBJ_EXAM e2 with(nolock) on e1.PL_subj_ID=e2.PL_subj_ID where e1.PL_EXAM_ID=4074 and e2.PL_EXAM_ID=4075 and e1.EXAM_ORDER<e2.EXAM_ORDER ) and (( PL_SUROL.PL_ROLE_ID= PL_EXROL.PL_ROLE_ID ) or (PL_EXROL.PL_ROLE_ID IS NULL)) and PL_SUBJ_EXAM.PL_EXAM_ID not in (4074,4075) and isnull(PL_EXAM.DUREE,'')<>'' and isnull(PL_EXAM.REC_PLANNING, 0) = 1 and isnull(PL_EXAM.ARCHIVE,0)<>1 and isnull(PL_SUBJ.ARCHIVE,0)<>1 ) sub order by EXAM_TYPE ``` **Категории:** ```sql SELECT FM_SERVGRP.FM_SERVGRP_ID as id, FM_SERVGRP.code as code, FM_SERVGRP.LABEL as name, PARENT as parent_id FROM FM_SERVGRP WHERE isnull(FM_SERVGRP.ARCHIVE,0)<>1 AND isnull(FM_SERVGRP.NO_WEB_ACCESS, 0) != 1 ORDER BY id, parent_id ``` **Соплатежи:** ```sql SELECT s.fm_serv_id AS fm_serv_id, s.label AS serv_label, fmsp.price AS serv_price, extra.label AS extra_label, fmsp2.price AS extra_price, Cast(ch.date_from AS DATE) AS extra_start, fm_org.code AS clinic_code FROM fm_serv s LEFT OUTER JOIN fm_servprice AS fmsp ON fmsp.fm_servprice_id = (SELECT TOP 1 fm_servprice.fm_servprice_id FROM fm_servprice WHERE ( fm_servprice.fm_pricetype_id = '113' ) AND fm_servprice.fm_serv_id = s.fm_serv_id AND fm_servprice.date_from <= Getdate() ORDER BY fm_servprice.date_from DESC) INNER JOIN fm_serv extra ON extra.fm_serv_id = s.extra_serv_id LEFT OUTER JOIN fm_servprice AS fmsp2 ON fmsp2.fm_servprice_id = (SELECT TOP 1 fm_servprice.fm_servprice_id FROM fm_servprice WHERE ( fm_servprice.fm_pricetype_id = '113' ) AND fm_servprice.fm_serv_id = extra.fm_serv_id AND fm_servprice.date_from <= Getdate() ORDER BY fm_servprice.date_from DESC) INNER JOIN ch_extra_pay ch ON ch.fm_serv_id = extra.fm_serv_id LEFT OUTER JOIN fm_org ON fm_org.fm_org_id = ch.fm_org_id WHERE s.state = 'a' AND ch.archive = 0 ``` **Доплаты:** ```sql SELECT isnull(doc.nom + ' ', '') + isnull(doc.prenom + ' ', '') + isnull(doc.PATRONYME, '') AS doc, fm_org.LABEL AS clinic, fmsp.PRICE AS price FROM ch_doc_rate_new LEFT OUTER JOIN FM_SERV ON FM_SERV.FM_SERV_ID = ch_doc_rate_new.fm_serv_id LEFT OUTER JOIN fm_org ON fm_org.FM_ORG_ID = ch_doc_rate_new.fm_org_id LEFT OUTER JOIN medecins AS doc ON doc.MEDECINS_ID = ch_doc_rate_new.medecins_id LEFT OUTER JOIN FM_SERVPRICE AS fmsp ON fmsp.FM_SERVPRICE_ID = (SELECT TOP 1 fm_servprice.FM_SERVPRICE_ID FROM FM_SERVPRICE WHERE (FM_SERVPRICE.DATE_FROM <= isnull(ch_doc_rate_new.date_From, getdate())) AND (FM_SERVPRICE.FM_PRICETYPE_ID = '113') AND fm_servprice.fm_serv_id = fm_serv.fm_serv_id ORDER BY FM_SERVPRICE.DATE_FROM DESC) WHERE fm_Serv.FM_SERVGRP_ID = 2025 AND isnull(ch_doc_rate_new.date_from, getdate()) >= isnull( (SELECT TOP 1 cdrn.date_from FROM ch_doc_rate_new AS cdrn WHERE cdrn.medecins_id = ch_doc_rate_new.medecins_id AND cdrn.fm_org_id = ch_doc_rate_new.fm_org_id AND isnull(cdrn.date_from, '2017-09-01') <= getdate() AND cdrn.ARCHIVE = 0 AND cdrn.FM_SERV_ID = FM_SERV.FM_SERV_ID ORDER BY cdrn.date_from DESC), '2017-09-01') AND (ch_doc_rate_new.week > 0 OR ch_doc_rate_new.sat > 0 OR ch_doc_rate_new.sun > 0) AND doc.ARCHIVE = 0 AND ch_doc_rate_new.ARCHIVE = 0 ORDER BY doc, clinic ```