Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SDECXML4

SDECXML4.m

Go to the documentation of this file.
  1. SDECXML4 ;ALB/JCH - SCHEDULING ENHANCEMENTS 3 (cont) ;11/03/14 10:59am
  1. ;;5.3;Scheduling;**628**;Aug 13, 1993;Build 371
  1. ;
  1. ONECLIN(SDLCNT,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,DTINC,ALLCLDIV,SDEBUG,CLNTAG,GRPFLG,SDNODE,XMLNODE) ; Single Clinic
  1. N SDCLINOK,APPTOT,APPDEM,ADJDIFF,ADJDEM,ACTOT,SDACTAP,APPLEN,SDCLINOK,ADJDIFF,ADJDEM,APPDEM
  1. N APPEST,APPNEW,APPOVR,CLTOT,SDDATA,SDFILT,SDRESCH
  1. S SDCLINOK="",APPTOT=""
  1. N SDGRP
  1. D SDGRP^SDECXUTL($P(SDCLIN,"^",2),.SDGRP)
  1. ;
  1. I $G(ALLCLDIV) D
  1. .I $G(GRPFLG) D OUTPUT^SDECXUTL("</Rg>",13,.SDLCNT,SDEBUG,.CLNTAG,.GRPFLG,.DIVTAG,XMLNODE)
  1. .S SDFILT=$$GRP^SDECXML(SDGRP) D SETTMPF^SDECXML(.SDLCNT,SDFILT,13)
  1. ;
  1. I $G(CLNTAG) D OUTPUT^SDECXUTL("</Rs>",15,.SDLCNT,SDEBUG,.CLNTAG,.GRPFLG,.DIVTAG,XMLNODE)
  1. S SDFILT=$$CLIN^SDECXML(SDCLIN,1) D SETTMPF^SDECXML(.SDLCNT,SDFILT,15)
  1. ;
  1. ; Supply
  1. I $G(SDIV) S APPTOT=+$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","SUP"))
  1. I 'SDIV S APPTOT=+$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"CLIN",SDGRP,SDCLIN,"APP","SUP"))
  1. S SDDATA=$$PROV^SDECXML("All")_" "_$$RCASUP^SDECXML($P(APPTOT,"^"))
  1. D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ;
  1. ; Appointments - overbooks, new, established, demand
  1. I $G(SDIV) D
  1. .S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT="",SDSTP="",ADJDEM="",ADJDIFF=""
  1. .I SDGRP=0 N TMPGRP S TMPGRP=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP))
  1. .S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","LEN",APPLEN)) Q:APPLEN="" D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","LEN",APPLEN,SDSTP))
  1. ...Q:(APPTOT="")
  1. ...S APPDEM=APPDEM+$P(APPTOT,"^")
  1. ..S SDRESCH="" F S SDRESCH=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","LEN",APPLEN,"STAT",SDRESCH)) Q:SDRESCH="" D
  1. ...Q:'($P(SDRESCH,";")="NSR"!($P(SDRESCH,";")="CPR")!($P(SDRESCH,";")="CCR"))
  1. ...S ADJDIFF=ADJDIFF+(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","LEN",APPLEN,"STAT",SDRESCH)*APPLEN)
  1. .I ADJDIFF&APPDEM S ADJDEM=APPDEM-ADJDIFF
  1. .S ADJDEM=$S($G(ADJDEM):ADJDEM,1:APPDEM)
  1. .D PARSE^SDECXML2(APPDEM,"All","All","DEM",APPLEN,SDSTP,ADJDEM)
  1. .; Appointments - overbooks, new, established, demand
  1. .S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT=""
  1. .S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","LEN",APPLEN)) Q:APPLEN="" D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN,"APP","LEN",APPLEN,SDSTP))
  1. ...Q:(APPTOT="")
  1. ...S APPOVR=$P(APPTOT,"^",2),APPNEW=$P(APPTOT,"^",3),APPEST=$P(APPTOT,"^",4),ACTOT=APPNEW+APPEST
  1. ...D PARSE^SDECXML2(ACTOT,"All","All","APPACT",APPLEN,SDSTP)
  1. ...I APPOVR S SDDATA=$$PROV^SDECXML("All")_" "_$$OVRAP^SDECXML2(APPOVR,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ...I APPNEW S SDDATA=$$PROV^SDECXML("All")_" "_$$NEWAP^SDECXML2(APPNEW,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ...I APPEST S SDDATA=$$PROV^SDECXML("All")_" "_$$ESTAP^SDECXML2(APPEST,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ;
  1. ;
  1. I 'SDIV D
  1. .S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT="",SDSTP="",ADJDEM="",ADJDIFF=""
  1. .S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN,"APP","LEN",APPLEN)) Q:APPLEN="" D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN,"APP","LEN",APPLEN,SDSTP))
  1. ...Q:(APPTOT="")
  1. ...S APPDEM=APPDEM+$P(APPTOT,"^")
  1. ..S SDRESCH="" F S SDRESCH=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN,"APP","LEN",APPLEN,"STAT",SDRESCH)) Q:SDRESCH="" D
  1. ...Q:'($P(SDRESCH,";")="NSR"!($P(SDRESCH,";")="CPR")!($P(SDRESCH,";")="CCR"))
  1. ...S ADJDIFF=ADJDIFF+(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN,"APP","LEN",APPLEN,"STAT",SDRESCH)*APPLEN)
  1. .I ADJDIFF&APPDEM S ADJDEM=APPDEM-ADJDIFF
  1. .S ADJDEM=$S($G(ADJDEM):ADJDEM,1:APPDEM)
  1. .D PARSE^SDECXML2(APPDEM,"All","All","DEM",APPLEN,SDSTP,ADJDEM)
  1. .; Appointments - overbooks, new, established, demand
  1. .S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT=""
  1. .S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN,"APP","LEN",APPLEN)) Q:APPLEN="" D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN,"APP","LEN",APPLEN,SDSTP))
  1. ...Q:(APPTOT="")
  1. ...S APPOVR=$P(APPTOT,"^",2),APPNEW=$P(APPTOT,"^",3),APPEST=$P(APPTOT,"^",4),ACTOT=APPNEW+APPEST
  1. ...D PARSE^SDECXML2(ACTOT,"All","All","APPACT",APPLEN,SDSTP)
  1. ...I APPOVR S SDDATA=$$PROV^SDECXML("All")_" "_$$OVRAP^SDECXML2(APPOVR,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ...I APPNEW S SDDATA=$$PROV^SDECXML("All")_" "_$$NEWAP^SDECXML2(APPNEW,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ...I APPEST S SDDATA=$$PROV^SDECXML("All")_" "_$$ESTAP^SDECXML2(APPEST,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ;
  1. ; Encounters
  1. I $G(SDIV) S CLTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLIN))
  1. I 'SDIV S CLTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"FAC",SDGRP,SDCLIN))
  1. I (CLTOT]"") D
  1. .N SDI F SDI=1:1:4 D
  1. ..S SDDATA=$$PROV^SDECXML("All")_" "_$S(SDI=1:$$ENC^SDECXML($P(CLTOT,"^",SDI)),SDI=2:$$NEW^SDECXML($P(CLTOT,"^",SDI)),SDI=3:$$EST^SDECXML($P(CLTOT,"^",SDI)),SDI=4:$$TEL^SDECXML($P(CLTOT,"^",SDI)),1:"")
  1. ..Q:($TR(SDDATA,"^","")="")
  1. ..D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. .;
  1. Q
  1. ;
  1. PRALALAL(SDLCNT,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLN,SDPRV,DTINC,DTNAM) ; provider - all division, all groups, by clinic
  1. ; Provider - all divisions, all groups (facility level, for report type)
  1. N APPTOT,APPLEN,SDACTAP,APPDEM,ACTOT,SDSTP,ADJDIFF,ADJDEM,PRTOT,SDDATA,SDFILT,SDRESCH
  1. I SDIV="All",SDGRP="All" D
  1. .S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT="",SDSTP="",ADJDIFF="",ADJDEM=""
  1. .F S APPLEN=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...Q:SDSTP="STAT" S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV,"APP","LEN",APPLEN,SDSTP))
  1. ...S APPDEM=APPDEM+APPTOT
  1. ..S SDRESCH="" F S SDRESCH=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV,"APP","LEN",APPLEN,"STAT",SDRESCH)) Q:SDRESCH="" D
  1. ...Q:'($P(SDRESCH,";")="NSR"!($P(SDRESCH,";")="CPR")!($P(SDRESCH,";")="CCR"))
  1. ...S ADJDIFF=ADJDIFF+(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV,"APP","LEN",APPLEN,"STAT",SDRESCH)*APPLEN)
  1. .S ADJDEM=APPDEM I ADJDIFF&APPDEM S ADJDEM=APPDEM-ADJDIFF
  1. .S ADJDEM=$S($G(ADJDIFF):ADJDEM,1:APPDEM)
  1. .D PARSE^SDECXML2(APPDEM,SDCLN,SDPRV,"DEM",APPLEN,SDSTP,ADJDEM)
  1. .;
  1. .; Appointments - lengths
  1. .S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT=""
  1. .F S APPLEN=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...Q:SDSTP="STAT" S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV,"APP","LEN",APPLEN,SDSTP))
  1. ...I '$G(GRPFLG) S SDFILT=$$GRP^SDECXML(SDGRP) D SETTMPF^SDECXML(.SDLCNT,SDFILT,13)
  1. ...S APPOVR=$P(APPTOT,"^",2),APPNEW=$P(APPTOT,"^",3),APPEST=$P(APPTOT,"^",4),ACTOT=APPNEW+APPEST
  1. ...I ACTOT D PARSE^SDECXML2(ACTOT,SDCLN,SDPRV,"APPACT",APPLEN,SDSTP)
  1. ...I APPOVR S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$$OVRAP^SDECXML2(APPOVR,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ...I APPNEW S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$$NEWAP^SDECXML2(APPNEW,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ...I APPEST S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$$ESTAP^SDECXML2(APPEST,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. .;
  1. .S PRTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"FAC",SDFAC,"CLIN",SDCLN,"PROV",SDPRV))
  1. .Q:'PRTOT
  1. .N SDI F SDI=1:1:4 D
  1. ..S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$S(SDI=1:$$ENC^SDECXML($P(PRTOT,"^",SDI)),SDI=2:$$NEW^SDECXML($P(PRTOT,"^",SDI)),SDI=3:$$EST^SDECXML($P(PRTOT,"^",SDI)),SDI=4:$$TEL^SDECXML($P(PRTOT,"^",SDI)),1:"")
  1. ..Q:($TR(SDDATA,"^","")="")
  1. ..I '$G(GRPFLG) S SDFILT=$$GRP^SDECXML(SDGRP) D SETTMPF^SDECXML(.SDLCNT,SDFILT,13)
  1. ..D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. Q
  1. ;
  1. PRALAL(SDLCNT,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,SDCLN,SDPRV,DTINC,DTNAM) ; providers - all groups in one division, specific clinic
  1. ; Provider - one division, all groups (division level, for report type)
  1. N APPTOT,APPLEN,SDACTAP,APPDEM,ACTOT,SDSTP,ADJDIFF,ADJDEM,PRTOT
  1. I SDIV,$P(SDCLN,"^",2),SDGRP="All" D
  1. .S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT="",SDSTP="",ADJDIFF="",ADJDEM="",ADJDEM=""
  1. .F S APPLEN=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...Q:SDSTP="STAT" S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV,"APP","LEN",APPLEN,SDSTP))
  1. ...S APPDEM=APPDEM+APPTOT
  1. ..S SDRESCH="" F S SDRESCH=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV,"APP","LEN",APPLEN,"STAT",SDRESCH)) Q:SDRESCH="" D
  1. ...Q:'($P(SDRESCH,";")="NSR"!($P(SDRESCH,";")="CPR")!($P(SDRESCH,";")="CCR"))
  1. ...S ADJDIFF=ADJDIFF+(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV,"APP","LEN",APPLEN,"STAT",SDRESCH)*APPLEN)
  1. .S ADJDEM=APPDEM I ADJDIFF&APPDEM S ADJDEM=APPDEM-ADJDIFF
  1. .S ADJDEM=$S($G(ADJDIFF):ADJDEM,1:APPDEM)
  1. .D PARSE^SDECXML2(APPDEM,SDCLN,SDPRV,"DEM",APPLEN,SDSTP,ADJDEM)
  1. .;
  1. .; Appointments - lengths
  1. .S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT=""
  1. .F S APPLEN=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...Q:SDSTP="STAT" S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV,"APP","LEN",APPLEN,SDSTP))
  1. ...I '$G(GRPFLG) S SDFILT=$$GRP^SDECXML(SDGRP) D SETTMPF^SDECXML(.SDLCNT,SDFILT,13)
  1. ...S APPOVR=$P(APPTOT,"^",2),APPNEW=$P(APPTOT,"^",3),APPEST=$P(APPTOT,"^",4),ACTOT=APPNEW+APPEST
  1. ...I ACTOT D PARSE^SDECXML2(ACTOT,SDCLN,SDPRV,"APPACT",APPLEN,SDSTP)
  1. ...I APPOVR S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$$OVRAP^SDECXML2(APPOVR,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ...I APPNEW S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$$NEWAP^SDECXML2(APPNEW,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ...I APPEST S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$$ESTAP^SDECXML2(APPEST,APPLEN,SDSTP) D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. .;
  1. .S PRTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"DIV",SDIV,"CLIN",SDCLN,SDPRV))
  1. .Q:'PRTOT
  1. .N SDI F SDI=1:1:4 D
  1. ..S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$S(SDI=1:$$ENC^SDECXML($P(PRTOT,"^",SDI)),SDI=2:$$NEW^SDECXML($P(PRTOT,"^",SDI)),SDI=3:$$EST^SDECXML($P(PRTOT,"^",SDI)),SDI=4:$$TEL^SDECXML($P(PRTOT,"^",SDI)),1:"")
  1. ..Q:($TR(SDDATA,"^","")="")
  1. ..I '$G(GRPFLG) S SDFILT=$$GRP^SDECXML(SDGRP) D SETTMPF^SDECXML(.SDLCNT,SDFILT,13)
  1. ..D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. Q