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

SDECXML5.m

Go to the documentation of this file.
  1. SDECXML5 ;ALB/JCH - SCHEDULING ENHANCEMENTS 3 (cont) ;11/03/14 10:59am
  1. ;;5.3;Scheduling;**628**;Aug 13, 1993;Build 371
  1. ;
  1. ; ALL CLINICS
  1. Q
  1. ALLCLIN(SDLCNT,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,DTINC,CLNTAG,ALLCLDIV,SDCALL,SDNODE,GRPFLG,SDEBUG,XMLNODE) ; All Clinic
  1. N SDCLDIV,APPDEM,ADJDIFF,ADJDEM,APPTOT,SDDATA,APPDEM,ADJDEM,APPLEN,ADJDIFF,SDSTP
  1. N APPOVR,APPNEW,APPEST,ACTOT,DTNAM,GRPTOT,PRGDTOT,SDACTAP,SDFILT,SDCLIN,SDPRV,SDRESCH
  1. D DTNAM^SDECXUTL(DTINC,.DTNAM)
  1. ;
  1. ; If the first clinic in this group, and more than one clinic, create an "All" clinic grouping
  1. I $G(SDGRP),($G(SDCALL)<1),'($G(ALLCLDIV)=1) D
  1. .I '$G(GRPFLG) S SDFILT=$$GRP^SDECXML(SDGRP) D SETTMPF^SDECXML(.SDLCNT,SDFILT,13)
  1. .I $G(CLNTAG) D OUTPUT^SDECXUTL("</Rs>",15,.SDLCNT,SDEBUG,.CLNTAG,.GRPFLG,.DIVTAG,XMLNODE)
  1. .S SDFILT=$$CLIN^SDECXML("All",1) D SETTMPF^SDECXML(.SDLCNT,SDFILT,15)
  1. ;
  1. ; Supply
  1. N APPTOT
  1. I ($G(ALLCLDIV)=1) S APPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,"APP","SUP"))
  1. I ($G(ALLCLDIV)=2) S APPTOT=$G(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"APP","SUP"))
  1. I '$G(ALLCLDIV) S APPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,"APP","SUP"))
  1. S SDDATA=$$PROV^SDECXML("All")_" "_$$RCASUP^SDECXML($P(APPTOT,"^"))
  1. D SETREC^SDECXML(.SDLCNT,SDDATA,16)
  1. ;
  1. ; Totals at the group level - sum of all clinics in the group
  1. ; Appointments - Group at Facility level, Demand, Lengths
  1. S APPTOT="",APPLEN="",SDACTAP="",APPDEM="",ACTOT="",ADJDEM="",ADJDIFF="",SDSTP=""
  1. ; Appointments - Group Level totals Demand, Length
  1. I $G(SDIV) D
  1. .S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...Q:SDSTP="STAT"
  1. ...S APPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,"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,"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,"APP","LEN",APPLEN,"STAT",SDRESCH)*APPLEN)
  1. .I ADJDIFF&APPDEM S ADJDEM=APPDEM-ADJDIFF
  1. .S ADJDEM=$S($G(ADJDEM):ADJDEM,1:APPDEM) S:ADJDEM<0 ADJDEM=0
  1. .D PARSE^SDECXML2(APPDEM,"All","All","DEM",+$G(APPLEN),+$G(SDSTP),$G(ADJDEM))
  1. .S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,"APP","LEN",APPLEN)) Q:APPLEN="" D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP,"APP","LEN",APPLEN,SDSTP))
  1. ...S APPOVR=$P(APPTOT,"^",2),APPNEW=$P(APPTOT,"^",3),APPEST=$P(APPTOT,"^",4),ACTOT=APPNEW+APPEST
  1. ...I ACTOT 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. .; Appointments - Group Level totals Demand, Length
  1. S APPTOT="",APPDEM="",ADJDIFF="",ADJDEM=""
  1. I '$G(SDIV) D
  1. .S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...Q:SDSTP="STAT"
  1. ...S APPTOT=$G(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"APP","LEN",APPLEN,SDSTP))
  1. ...Q:(APPTOT="")
  1. ...S APPDEM=APPDEM+$P(APPTOT,"^")
  1. ..S SDRESCH="" F S SDRESCH=$O(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"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,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"APP","LEN",APPLEN,"STAT",SDRESCH)*APPLEN)
  1. ...I ADJDIFF>APPDEM
  1. .I ADJDIFF&APPDEM S ADJDEM=APPDEM-ADJDIFF
  1. .S ADJDEM=$S($G(ADJDEM):ADJDEM,1:APPDEM) S:ADJDEM<0 ADJDEM=0
  1. .D PARSE^SDECXML2(APPDEM,"All","All","DEM",APPLEN,SDSTP,ADJDEM)
  1. .S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"APP","LEN",APPLEN)) Q:APPLEN="" D
  1. ..S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ...S ACTOT=""
  1. ...S APPTOT=$G(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP,"APP","LEN",APPLEN,SDSTP))
  1. ...S APPOVR=$P(APPTOT,"^",2),APPNEW=$P(APPTOT,"^",3),APPEST=$P(APPTOT,"^",4),ACTOT=APPNEW+APPEST
  1. ...I ACTOT 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 GRPTOT=$G(^XTMP(SDNODE,DTNAM,SDRPTYP,SDAT,SDFAC,SDIV,SDGRP))
  1. I '$G(SDIV) S GRPTOT=$G(^XTMP(SDNODE,"GROUP",DTNAM,SDRPTYP,SDAT,SDFAC,SDGRP))
  1. I '(GRPTOT="") N SDI F SDI=1:1:4 D
  1. .S SDDATA=$$PROV^SDECXML("All")_" "_$S(SDI=1:$$ENC^SDECXML($P(GRPTOT,"^",SDI)),SDI=2:$$NEW^SDECXML($P(GRPTOT,"^",SDI)),SDI=3:$$EST^SDECXML($P(GRPTOT,"^",SDI)),SDI=4:$$TEL^SDECXML($P(GRPTOT,"^",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. ;
  1. ; Get the total for the provider at the Group level, is the sum of All clinics
  1. ; Provider's cross-division resourcegroup totals
  1. N SDCLIN
  1. I $G(SDIV) D
  1. .S SDPRV="" F S SDPRV=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,SDPRV)) Q:SDPRV="" D
  1. ..Q:(SDPRV'["^") S APPDEM="",APPTOT="",ADJDIFF="",ADJDEM=""
  1. ..S APPLEN=0 F S APPLEN=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,SDPRV,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ...S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,SDPRV,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ....Q:SDSTP="" S ACTOT=""
  1. ....S APPTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,SDPRV,"APP","LEN",APPLEN,SDSTP))
  1. ....Q:(APPTOT="")
  1. ....;I '$G(GRPFLG) S SDFILT=$$GRP^SDECXML(SDGRP) D SETTMPF^SDECXML(.SDLCNT,SDFILT,13)
  1. ....S APPDEM=APPDEM+$P(APPTOT,"^")
  1. ...S SDRESCH="" F S SDRESCH=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,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,SDIV,"GRP",SDGRP,SDPRV,"APP","LEN",APPLEN,"STAT",SDRESCH)*APPLEN)
  1. ..I ADJDIFF&APPDEM S ADJDEM=APPDEM-ADJDIFF
  1. ..S ADJDEM=$S($G(ADJDEM):ADJDEM,1:APPDEM)
  1. ..I '(APPDEM="") D PARSE^SDECXML2(APPDEM,"All",SDPRV,"DEM",APPLEN,SDSTP,ADJDEM)
  1. ..S APPOVR="",APPNEW="",APPEST="",APPTOT=""
  1. ..S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,SDPRV,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ...S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,SDPRV,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ....S ACTOT=""
  1. ....S APPTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,SDPRV,"APP","LEN",APPLEN,SDSTP))
  1. ....Q:(APPTOT="")
  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. ....D PARSE^SDECXML2(ACTOT,"All",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. ..; Encounters
  1. ..I SDIV="All" S PRGDTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV))
  1. ..I $G(SDIV) S PRGDTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,SDIV,"GRP",SDGRP,SDPRV))
  1. ..I '(PRGDTOT="") D
  1. ...N SDI F SDI=1:1:4 D
  1. ....S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$S(SDI=1:$$ENC^SDECXML($P(PRGDTOT,"^",SDI)),SDI=2:$$NEW^SDECXML($P(PRGDTOT,"^",SDI)),SDI=3:$$EST^SDECXML($P(PRGDTOT,"^",SDI)),SDI=4:$$TEL^SDECXML($P(PRGDTOT,"^",SDI)),1:"")
  1. ....Q:($TR(SDDATA,"^","")="")
  1. ....D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ;
  1. N SDCLIN
  1. I '$G(SDIV) D
  1. .S SDPRV="" F S SDPRV=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV)) Q:SDPRV="" D
  1. ..Q:(SDPRV'["^") S APPDEM="",APPTOT="",ADJDIFF="",ADJDEM=""
  1. ..S APPLEN=0 F S APPLEN=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ...S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ....Q:SDSTP="" S ACTOT=""
  1. ....S APPTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV,"APP","LEN",APPLEN,SDSTP))
  1. ....Q:(APPTOT="")
  1. ....;I '$G(GRPFLG) S SDFILT=$$GRP^SDECXML(SDGRP) D SETTMPF^SDECXML(.SDLCNT,SDFILT,13)
  1. ....S APPDEM=APPDEM+$P(APPTOT,"^")
  1. ...S SDRESCH="" F S SDRESCH=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"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,"GRP",SDGRP,"PROV",SDPRV,"APP","LEN",APPLEN,"STAT",SDRESCH)*APPLEN)
  1. ..I ADJDIFF&APPDEM S ADJDEM=APPDEM-ADJDIFF
  1. ..S ADJDEM=$S($G(ADJDEM):ADJDEM,1:APPDEM)
  1. ..I '(APPDEM="") D PARSE^SDECXML2(APPDEM,"All",SDPRV,"DEM",APPLEN,SDSTP,ADJDEM)
  1. ..S APPOVR="",APPNEW="",APPEST="",APPTOT=""
  1. ..S APPLEN="" F S APPLEN=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV,"APP","LEN",APPLEN)) Q:'APPLEN D
  1. ...S SDSTP="" F S SDSTP=$O(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV,"APP","LEN",APPLEN,SDSTP)) Q:SDSTP="" D
  1. ....S ACTOT=""
  1. ....S APPTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV,"APP","LEN",APPLEN,SDSTP))
  1. ....Q:(APPTOT="")
  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. ....D PARSE^SDECXML2(ACTOT,"All",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. ..; Encounters
  1. ..I '$G(SDIV) S PRGDTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV))
  1. ..I $G(SDIV) S PRGDTOT=$G(^XTMP(SDNODE,"PROVIDER",DTNAM,SDRPTYP,SDAT,"GRP",SDGRP,"PROV",SDPRV))
  1. ..I '(PRGDTOT="") D
  1. ...N SDI F SDI=1:1:4 D
  1. ....S SDDATA=$$PROV^SDECXML(SDPRV)_" "_$S(SDI=1:$$ENC^SDECXML($P(PRGDTOT,"^",SDI)),SDI=2:$$NEW^SDECXML($P(PRGDTOT,"^",SDI)),SDI=3:$$EST^SDECXML($P(PRGDTOT,"^",SDI)),SDI=4:$$TEL^SDECXML($P(PRGDTOT,"^",SDI)),1:"")
  1. ....Q:($TR(SDDATA,"^","")="")
  1. ....D SETREC^SDECXML(.SDLCNT,SDDATA,15)
  1. ;
  1. I $G(CLNTAG) D OUTPUT^SDECXUTL("</Rs>",15,.SDLCNT,SDEBUG,.CLNTAG,.GRPFLG,.DIVTAG,XMLNODE)
  1. Q