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

BQI22PSC.m

Go to the documentation of this file.
  1. BQI22PSC ;VNGT/HS/ALA-PostInstall Conversion ; 21 Mar 2011 2:39 PM
  1. ;;2.2;ICARE MANAGEMENT SYSTEM;;Jul 28, 2011;Build 37
  1. ;
  1. EN ;EP - Entry Point
  1. ; Description
  1. ; For each user and their panels, recalculate the parameter string with the new format for visit data
  1. ; and then file it using the BQI SET PANEL FILTERS RPC
  1. ;
  1. NEW OWNR,PLIEN
  1. S OWNR=0
  1. I $D(^BQICARE(.5)) K ^BQICARE(.5)
  1. F S OWNR=$O(^BQICARE(OWNR)) Q:'OWNR D
  1. . S PLIEN=0
  1. . F S PLIEN=$O(^BQICARE(OWNR,1,PLIEN)) Q:'PLIEN D
  1. .. D PAR(OWNR,PLIEN)
  1. Q
  1. ;
  1. PAR(COWNR,CPLIEN) ; Set up PARMS String
  1. NEW DA,IENS,FSOURCE,PPIEN,PTYP,N,NN,PARMS,MPARMS,NPARM,AN,ASN,ASPM
  1. NEW ATYP,BMXSEC,MASP,MM,MSN,NM,DATA,OKAY,PM,PRVAL,VM
  1. NEW CPARMS
  1. S DA(1)=COWNR,DA=CPLIEN,IENS=$$IENS^DILF(.DA)
  1. S FSOURCE=$$GET1^DIQ(90505.01,IENS,.14,"E")
  1. ;
  1. ; Find definition
  1. I FSOURCE="" Q
  1. S PPIEN=$$PP^BQIDCDF(FSOURCE) I PPIEN=-1 S BMXSEC="Pre-defined panel type "_FSOURCE_" was not found" Q
  1. ;
  1. S N=0,PARMS="",MPARMS="",OKAY=0
  1. I FSOURCE="FILTER",$G(^BQICARE(COWNR,1,CPLIEN,15,0))="" D Q
  1. . NEW DIK,DA
  1. . S DA(1)=COWNR,DA=CPLIEN,DIK="^BQICARE("_DA(1)_",1,"
  1. . D ^DIK
  1. F S N=$O(^BQICARE(COWNR,1,CPLIEN,15,N)) Q:'N D
  1. . NEW DA,IENS
  1. . S DA(2)=COWNR,DA(1)=CPLIEN,DA=N,IENS=$$IENS^DILF(.DA)
  1. . S NAME=$$GET1^DIQ(90505.115,IENS,.01,"E")
  1. . I NAME="NUMVIS"!(NAME="CLIN")!(NAME="PROV") S OKAY=1
  1. . S PTYP=$$PTYP^BQIDCDF(FSOURCE,NAME)
  1. . S FILTER(N)=NAME
  1. . I '$D(^BQICARE(COWNR,1,CPLIEN,15,N,1)) D Q
  1. .. NEW DA,IENS,NAME,VALUE
  1. .. S DA(2)=COWNR,DA(1)=CPLIEN,DA=N,IENS=$$IENS^DILF(.DA)
  1. .. I PTYP="T" S VALUE=$$GET1^DIQ(90505.115,IENS,.03,"E")
  1. .. I PTYP'="T" S VALUE=$$GET1^DIQ(90505.115,IENS,.02,"E")
  1. .. I PTYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .. S FILTER(N,1)=VALUE
  1. .. ; Check for associated parameters
  1. .. S ASN=0
  1. .. F S ASN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN)) Q:'ASN D
  1. ... NEW DA,IENS,ASSOC,AVALUE,VALUE
  1. ... S DA(3)=COWNR,DA(2)=CPLIEN,DA(1)=N,DA=ASN,IENS=$$IENS^DILF(.DA)
  1. ... S ASSOC=$$GET1^DIQ(90505.1152,IENS,.01,"E")
  1. ... S ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
  1. ... S FILTER(N,1,ASN)=ASSOC
  1. ... I '$D(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN,1)) D Q
  1. .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.1152,IENS,.03,"E")
  1. .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.1152,IENS,.02,"E")
  1. .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .... S FILTER(N,1,ASN,1)=VALUE
  1. ... S MSN=0
  1. ... F S MSN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN,1,MSN)) Q:'MSN D
  1. .... NEW DA,IENS,VALUE
  1. .... S DA(4)=COWNR,DA(3)=CPLIEN,DA(2)=N,DA(1)=ASN,DA=MSN,IENS=$$IENS^DILF(.DA)
  1. .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.11521,IENS,.02,"E")
  1. .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.11521,IENS,.01,"E")
  1. .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .... S FILTER(N,1,ASN,MSN)=VALUE
  1. . ;
  1. . S NN=0
  1. . F S NN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN)) Q:'NN D
  1. .. NEW DA,IENS,VALUE
  1. .. S DA(3)=COWNR,DA(2)=CPLIEN,DA(1)=N,DA=NN,IENS=$$IENS^DILF(.DA)
  1. .. I PTYP="T" S VALUE=$$GET1^DIQ(90505.1151,IENS,.02,"E")
  1. .. I PTYP'="T" S VALUE=$$GET1^DIQ(90505.1151,IENS,.01,"E")
  1. .. I PTYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .. S FILTER(N,NN)=VALUE
  1. .. ; Check for associated parameters
  1. .. S ASN=0
  1. .. F S ASN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN)) Q:'ASN D
  1. ... NEW DA,IENS,ASSOC,AVALUE,VALUE
  1. ... S DA(4)=COWNR,DA(3)=CPLIEN,DA(2)=N,DA(1)=NN,DA=ASN,IENS=$$IENS^DILF(.DA)
  1. ... S ASSOC=$$GET1^DIQ(90505.11512,IENS,.01,"E")
  1. ... S ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
  1. ... S FILTER(N,NN,ASN)=ASSOC
  1. ... I '$D(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN,1)) D Q
  1. .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.11512,IENS,.03,"E")
  1. .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.11512,IENS,.02,"E")
  1. .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .... S FILTER(N,NN,ASN,1)=VALUE
  1. ... S MSN=0
  1. ... F S MSN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN,1,MSN)) Q:'MSN D
  1. .... NEW DA,IENS,VALUE
  1. .... S DA(5)=COWNR,DA(4)=CPLIEN,DA(3)=N,DA(2)=NN,DA(1)=ASN,DA=MSN,IENS=$$IENS^DILF(.DA)
  1. .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.115121,IENS,.02,"E")
  1. .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.115121,IENS,.01,"E")
  1. .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
  1. .... S FILTER(N,NN,ASN,MSN)=VALUE
  1. ;
  1. I 'OKAY K FILTER Q
  1. ; Recreate PARMS string if panel definition contains visit detail
  1. D PAS(1)
  1. I $D(FILTER) D PAS(2)
  1. S PARMS=$$TKO^BQIUL1(PARMS,$C(28))
  1. S PM=""
  1. F S PM=$O(FILTER(PM)) Q:PM="" D
  1. . S NAME=FILTER(PM)
  1. . I NAME="PROV" D
  1. .. S VM=1,PRVAL=NAME_"="_FILTER(PM,VM)
  1. .. I PARMS'["RANGE",PARMS'["FROM" D
  1. ... I $E(PARMS,$L(PARMS))'=$C(28),PARMS'="" S PARMS=PARMS_$C(28)_"RANGE=Ever"_$C(28) Q
  1. ... S PARMS=PARMS_"RANGE=Ever"_$C(28)
  1. .. I PARMS'["NUMVIS" D
  1. ... I $E(PARMS,$L(PARMS))'=$C(28),PARMS'="" S PARMS=PARMS_$C(28)_"NUMVIS='<1" Q
  1. ... S PARMS=PARMS_"NUMVIS='<1"
  1. .. S PARMS=PARMS_$C(25)_PRVAL
  1. . I NAME="CLIN" D
  1. .. S VM=""
  1. .. F S VM=$O(FILTER(PM,VM)) Q:VM="" D
  1. ... S PARMS=PARMS_$C(25)_NAME_"="_FILTER(PM,VM)_$C(29)
  1. ... I $O(FILTER(PM,VM))'="" S PARMS=PARMS_NPARM
  1. .. S PARMS=$$TKO^BQIUL1(PARMS,$C(29))
  1. S CPARMS=$$TKO^BQIUL1(PARMS,$C(29))
  1. K FILTER,PARMS,NPARM,ADA,ADTM,ASSOC,AVAL,NAME,FNAME,MDA,Y
  1. D CON^BQIPLFL(.DATA,COWNR,CPLIEN,CPARMS)
  1. Q
  1. ;
  1. PAS(PS) ; Build PARMS from each pass
  1. S PM=""
  1. F S PM=$O(FILTER(PM)) Q:PM="" D
  1. . S NAME=FILTER(PM)
  1. . I PS=1,NAME="PROV"!(NAME="CLIN")!(NAME="NUMVIS") Q
  1. . I PS=2,NAME="PROV"!(NAME="CLIN") Q
  1. . ;I PS=3 S PARMS=PARMS_$S($E(PARMS,$L(PARMS),$L(PARMS))'=$C(25):$C(25),1:"")
  1. . S PARMS=$G(PARMS)_NAME_"="
  1. . S VM=""
  1. . F S VM=$O(FILTER(PM,VM)) Q:VM="" D
  1. .. S AN=""
  1. .. F S AN=$O(FILTER(PM,VM,AN)) Q:AN="" D
  1. ... S MM="",MASP=""
  1. ... F S MM=$O(FILTER(PM,VM,AN,MM)) Q:MM="" D
  1. .... S MASP=$G(MASP)_FILTER(PM,VM,AN,MM)_$C(24)
  1. ... S MASP=$$TKO^BQIUL1(MASP,$C(24))
  1. ... S ASPM=FILTER(PM,VM,AN)_"="_MASP
  1. ... S MPRM(VM)=$S(AN'<2:$$TKO^BQIUL1(MPRM(VM),$C(29)),1:FILTER(PM,VM))_$C(25)_ASPM_$C(29)
  1. .. I '$D(MPRM(VM)) D
  1. ... I NAME'="NUMVIS" S MPRM(VM)=FILTER(PM,VM)_$C(29) Q
  1. ... I NAME="NUMVIS" S MPRM(VM)=FILTER(PM,VM)_"~"
  1. . S NM="",NPARM=""
  1. . F S NM=$O(MPRM(NM)) Q:NM="" D
  1. .. S PARMS=PARMS_MPRM(NM)
  1. .. I NAME="NUMVIS" S NPARM=NPARM_MPRM(NM)
  1. . I NAME'="NUMVIS" S PARMS=$$TKO^BQIUL1(PARMS,$C(29))
  1. . I NAME="NUMVIS" S PARMS=$$TKO^BQIUL1(PARMS,"~"),NPARM=$$TKO^BQIUL1(NPARM,"~")
  1. . S PARMS=PARMS_$S(PS<3:$C(28),$E(PARMS,$L(PARMS),$L(PARMS))'=$C(25):$C(25),1:"")
  1. . K MPRM,FILTER(PM)
  1. Q