- BQI22PSC ;VNGT/HS/ALA-PostInstall Conversion ; 21 Mar 2011 2:39 PM
- ;;2.2;ICARE MANAGEMENT SYSTEM;;Jul 28, 2011;Build 37
- ;
- EN ;EP - Entry Point
- ; Description
- ; For each user and their panels, recalculate the parameter string with the new format for visit data
- ; and then file it using the BQI SET PANEL FILTERS RPC
- ;
- NEW OWNR,PLIEN
- S OWNR=0
- I $D(^BQICARE(.5)) K ^BQICARE(.5)
- F S OWNR=$O(^BQICARE(OWNR)) Q:'OWNR D
- . S PLIEN=0
- . F S PLIEN=$O(^BQICARE(OWNR,1,PLIEN)) Q:'PLIEN D
- .. D PAR(OWNR,PLIEN)
- Q
- ;
- PAR(COWNR,CPLIEN) ; Set up PARMS String
- NEW DA,IENS,FSOURCE,PPIEN,PTYP,N,NN,PARMS,MPARMS,NPARM,AN,ASN,ASPM
- NEW ATYP,BMXSEC,MASP,MM,MSN,NM,DATA,OKAY,PM,PRVAL,VM
- NEW CPARMS
- S DA(1)=COWNR,DA=CPLIEN,IENS=$$IENS^DILF(.DA)
- S FSOURCE=$$GET1^DIQ(90505.01,IENS,.14,"E")
- ;
- ; Find definition
- I FSOURCE="" Q
- S PPIEN=$$PP^BQIDCDF(FSOURCE) I PPIEN=-1 S BMXSEC="Pre-defined panel type "_FSOURCE_" was not found" Q
- ;
- S N=0,PARMS="",MPARMS="",OKAY=0
- I FSOURCE="FILTER",$G(^BQICARE(COWNR,1,CPLIEN,15,0))="" D Q
- . NEW DIK,DA
- . S DA(1)=COWNR,DA=CPLIEN,DIK="^BQICARE("_DA(1)_",1,"
- . D ^DIK
- F S N=$O(^BQICARE(COWNR,1,CPLIEN,15,N)) Q:'N D
- . NEW DA,IENS
- . S DA(2)=COWNR,DA(1)=CPLIEN,DA=N,IENS=$$IENS^DILF(.DA)
- . S NAME=$$GET1^DIQ(90505.115,IENS,.01,"E")
- . I NAME="NUMVIS"!(NAME="CLIN")!(NAME="PROV") S OKAY=1
- . S PTYP=$$PTYP^BQIDCDF(FSOURCE,NAME)
- . S FILTER(N)=NAME
- . I '$D(^BQICARE(COWNR,1,CPLIEN,15,N,1)) D Q
- .. NEW DA,IENS,NAME,VALUE
- .. S DA(2)=COWNR,DA(1)=CPLIEN,DA=N,IENS=$$IENS^DILF(.DA)
- .. I PTYP="T" S VALUE=$$GET1^DIQ(90505.115,IENS,.03,"E")
- .. I PTYP'="T" S VALUE=$$GET1^DIQ(90505.115,IENS,.02,"E")
- .. I PTYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
- .. S FILTER(N,1)=VALUE
- .. ; Check for associated parameters
- .. S ASN=0
- .. F S ASN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN)) Q:'ASN D
- ... NEW DA,IENS,ASSOC,AVALUE,VALUE
- ... S DA(3)=COWNR,DA(2)=CPLIEN,DA(1)=N,DA=ASN,IENS=$$IENS^DILF(.DA)
- ... S ASSOC=$$GET1^DIQ(90505.1152,IENS,.01,"E")
- ... S ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
- ... S FILTER(N,1,ASN)=ASSOC
- ... I '$D(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN,1)) D Q
- .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.1152,IENS,.03,"E")
- .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.1152,IENS,.02,"E")
- .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
- .... S FILTER(N,1,ASN,1)=VALUE
- ... S MSN=0
- ... F S MSN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN,1,MSN)) Q:'MSN D
- .... NEW DA,IENS,VALUE
- .... S DA(4)=COWNR,DA(3)=CPLIEN,DA(2)=N,DA(1)=ASN,DA=MSN,IENS=$$IENS^DILF(.DA)
- .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.11521,IENS,.02,"E")
- .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.11521,IENS,.01,"E")
- .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
- .... S FILTER(N,1,ASN,MSN)=VALUE
- . ;
- . S NN=0
- . F S NN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN)) Q:'NN D
- .. NEW DA,IENS,VALUE
- .. S DA(3)=COWNR,DA(2)=CPLIEN,DA(1)=N,DA=NN,IENS=$$IENS^DILF(.DA)
- .. I PTYP="T" S VALUE=$$GET1^DIQ(90505.1151,IENS,.02,"E")
- .. I PTYP'="T" S VALUE=$$GET1^DIQ(90505.1151,IENS,.01,"E")
- .. I PTYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
- .. S FILTER(N,NN)=VALUE
- .. ; Check for associated parameters
- .. S ASN=0
- .. F S ASN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN)) Q:'ASN D
- ... NEW DA,IENS,ASSOC,AVALUE,VALUE
- ... S DA(4)=COWNR,DA(3)=CPLIEN,DA(2)=N,DA(1)=NN,DA=ASN,IENS=$$IENS^DILF(.DA)
- ... S ASSOC=$$GET1^DIQ(90505.11512,IENS,.01,"E")
- ... S ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
- ... S FILTER(N,NN,ASN)=ASSOC
- ... I '$D(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN,1)) D Q
- .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.11512,IENS,.03,"E")
- .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.11512,IENS,.02,"E")
- .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
- .... S FILTER(N,NN,ASN,1)=VALUE
- ... S MSN=0
- ... F S MSN=$O(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN,1,MSN)) Q:'MSN D
- .... NEW DA,IENS,VALUE
- .... S DA(5)=COWNR,DA(4)=CPLIEN,DA(3)=N,DA(2)=NN,DA(1)=ASN,DA=MSN,IENS=$$IENS^DILF(.DA)
- .... I ATYP="T" S VALUE=$$GET1^DIQ(90505.115121,IENS,.02,"E")
- .... I ATYP'="T" S VALUE=$$GET1^DIQ(90505.115121,IENS,.01,"E")
- .... I ATYP="D" S VALUE=$$FMTE^BQIUL1(VALUE)
- .... S FILTER(N,NN,ASN,MSN)=VALUE
- ;
- I 'OKAY K FILTER Q
- ; Recreate PARMS string if panel definition contains visit detail
- D PAS(1)
- I $D(FILTER) D PAS(2)
- S PARMS=$$TKO^BQIUL1(PARMS,$C(28))
- S PM=""
- F S PM=$O(FILTER(PM)) Q:PM="" D
- . S NAME=FILTER(PM)
- . I NAME="PROV" D
- .. S VM=1,PRVAL=NAME_"="_FILTER(PM,VM)
- .. I PARMS'["RANGE",PARMS'["FROM" D
- ... I $E(PARMS,$L(PARMS))'=$C(28),PARMS'="" S PARMS=PARMS_$C(28)_"RANGE=Ever"_$C(28) Q
- ... S PARMS=PARMS_"RANGE=Ever"_$C(28)
- .. I PARMS'["NUMVIS" D
- ... I $E(PARMS,$L(PARMS))'=$C(28),PARMS'="" S PARMS=PARMS_$C(28)_"NUMVIS='<1" Q
- ... S PARMS=PARMS_"NUMVIS='<1"
- .. S PARMS=PARMS_$C(25)_PRVAL
- . I NAME="CLIN" D
- .. S VM=""
- .. F S VM=$O(FILTER(PM,VM)) Q:VM="" D
- ... S PARMS=PARMS_$C(25)_NAME_"="_FILTER(PM,VM)_$C(29)
- ... I $O(FILTER(PM,VM))'="" S PARMS=PARMS_NPARM
- .. S PARMS=$$TKO^BQIUL1(PARMS,$C(29))
- S CPARMS=$$TKO^BQIUL1(PARMS,$C(29))
- K FILTER,PARMS,NPARM,ADA,ADTM,ASSOC,AVAL,NAME,FNAME,MDA,Y
- D CON^BQIPLFL(.DATA,COWNR,CPLIEN,CPARMS)
- Q
- ;
- PAS(PS) ; Build PARMS from each pass
- S PM=""
- F S PM=$O(FILTER(PM)) Q:PM="" D
- . S NAME=FILTER(PM)
- . I PS=1,NAME="PROV"!(NAME="CLIN")!(NAME="NUMVIS") Q
- . I PS=2,NAME="PROV"!(NAME="CLIN") Q
- . ;I PS=3 S PARMS=PARMS_$S($E(PARMS,$L(PARMS),$L(PARMS))'=$C(25):$C(25),1:"")
- . S PARMS=$G(PARMS)_NAME_"="
- . S VM=""
- . F S VM=$O(FILTER(PM,VM)) Q:VM="" D
- .. S AN=""
- .. F S AN=$O(FILTER(PM,VM,AN)) Q:AN="" D
- ... S MM="",MASP=""
- ... F S MM=$O(FILTER(PM,VM,AN,MM)) Q:MM="" D
- .... S MASP=$G(MASP)_FILTER(PM,VM,AN,MM)_$C(24)
- ... S MASP=$$TKO^BQIUL1(MASP,$C(24))
- ... S ASPM=FILTER(PM,VM,AN)_"="_MASP
- ... S MPRM(VM)=$S(AN'<2:$$TKO^BQIUL1(MPRM(VM),$C(29)),1:FILTER(PM,VM))_$C(25)_ASPM_$C(29)
- .. I '$D(MPRM(VM)) D
- ... I NAME'="NUMVIS" S MPRM(VM)=FILTER(PM,VM)_$C(29) Q
- ... I NAME="NUMVIS" S MPRM(VM)=FILTER(PM,VM)_"~"
- . S NM="",NPARM=""
- . F S NM=$O(MPRM(NM)) Q:NM="" D
- .. S PARMS=PARMS_MPRM(NM)
- .. I NAME="NUMVIS" S NPARM=NPARM_MPRM(NM)
- . I NAME'="NUMVIS" S PARMS=$$TKO^BQIUL1(PARMS,$C(29))
- . I NAME="NUMVIS" S PARMS=$$TKO^BQIUL1(PARMS,"~"),NPARM=$$TKO^BQIUL1(NPARM,"~")
- . S PARMS=PARMS_$S(PS<3:$C(28),$E(PARMS,$L(PARMS),$L(PARMS))'=$C(25):$C(25),1:"")
- . K MPRM,FILTER(PM)
- Q
- BQI22PSC ;VNGT/HS/ALA-PostInstall Conversion ; 21 Mar 2011 2:39 PM
- +1 ;;2.2;ICARE MANAGEMENT SYSTEM;;Jul 28, 2011;Build 37
- +2 ;
- EN ;EP - Entry Point
- +1 ; Description
- +2 ; For each user and their panels, recalculate the parameter string with the new format for visit data
- +3 ; and then file it using the BQI SET PANEL FILTERS RPC
- +4 ;
- +5 NEW OWNR,PLIEN
- +6 SET OWNR=0
- +7 IF $DATA(^BQICARE(.5))
- KILL ^BQICARE(.5)
- +8 FOR
- SET OWNR=$ORDER(^BQICARE(OWNR))
- IF 'OWNR
- QUIT
- Begin DoDot:1
- +9 SET PLIEN=0
- +10 FOR
- SET PLIEN=$ORDER(^BQICARE(OWNR,1,PLIEN))
- IF 'PLIEN
- QUIT
- Begin DoDot:2
- +11 DO PAR(OWNR,PLIEN)
- End DoDot:2
- End DoDot:1
- +12 QUIT
- +13 ;
- PAR(COWNR,CPLIEN) ; Set up PARMS String
- +1 NEW DA,IENS,FSOURCE,PPIEN,PTYP,N,NN,PARMS,MPARMS,NPARM,AN,ASN,ASPM
- +2 NEW ATYP,BMXSEC,MASP,MM,MSN,NM,DATA,OKAY,PM,PRVAL,VM
- +3 NEW CPARMS
- +4 SET DA(1)=COWNR
- SET DA=CPLIEN
- SET IENS=$$IENS^DILF(.DA)
- +5 SET FSOURCE=$$GET1^DIQ(90505.01,IENS,.14,"E")
- +6 ;
- +7 ; Find definition
- +8 IF FSOURCE=""
- QUIT
- +9 SET PPIEN=$$PP^BQIDCDF(FSOURCE)
- IF PPIEN=-1
- SET BMXSEC="Pre-defined panel type "_FSOURCE_" was not found"
- QUIT
- +10 ;
- +11 SET N=0
- SET PARMS=""
- SET MPARMS=""
- SET OKAY=0
- +12 IF FSOURCE="FILTER"
- IF $GET(^BQICARE(COWNR,1,CPLIEN,15,0))=""
- Begin DoDot:1
- +13 NEW DIK,DA
- +14 SET DA(1)=COWNR
- SET DA=CPLIEN
- SET DIK="^BQICARE("_DA(1)_",1,"
- +15 DO ^DIK
- End DoDot:1
- QUIT
- +16 FOR
- SET N=$ORDER(^BQICARE(COWNR,1,CPLIEN,15,N))
- IF 'N
- QUIT
- Begin DoDot:1
- +17 NEW DA,IENS
- +18 SET DA(2)=COWNR
- SET DA(1)=CPLIEN
- SET DA=N
- SET IENS=$$IENS^DILF(.DA)
- +19 SET NAME=$$GET1^DIQ(90505.115,IENS,.01,"E")
- +20 IF NAME="NUMVIS"!(NAME="CLIN")!(NAME="PROV")
- SET OKAY=1
- +21 SET PTYP=$$PTYP^BQIDCDF(FSOURCE,NAME)
- +22 SET FILTER(N)=NAME
- +23 IF '$DATA(^BQICARE(COWNR,1,CPLIEN,15,N,1))
- Begin DoDot:2
- +24 NEW DA,IENS,NAME,VALUE
- +25 SET DA(2)=COWNR
- SET DA(1)=CPLIEN
- SET DA=N
- SET IENS=$$IENS^DILF(.DA)
- +26 IF PTYP="T"
- SET VALUE=$$GET1^DIQ(90505.115,IENS,.03,"E")
- +27 IF PTYP'="T"
- SET VALUE=$$GET1^DIQ(90505.115,IENS,.02,"E")
- +28 IF PTYP="D"
- SET VALUE=$$FMTE^BQIUL1(VALUE)
- +29 SET FILTER(N,1)=VALUE
- +30 ; Check for associated parameters
- +31 SET ASN=0
- +32 FOR
- SET ASN=$ORDER(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN))
- IF 'ASN
- QUIT
- Begin DoDot:3
- +33 NEW DA,IENS,ASSOC,AVALUE,VALUE
- +34 SET DA(3)=COWNR
- SET DA(2)=CPLIEN
- SET DA(1)=N
- SET DA=ASN
- SET IENS=$$IENS^DILF(.DA)
- +35 SET ASSOC=$$GET1^DIQ(90505.1152,IENS,.01,"E")
- +36 SET ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
- +37 SET FILTER(N,1,ASN)=ASSOC
- +38 IF '$DATA(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN,1))
- Begin DoDot:4
- +39 IF ATYP="T"
- SET VALUE=$$GET1^DIQ(90505.1152,IENS,.03,"E")
- +40 IF ATYP'="T"
- SET VALUE=$$GET1^DIQ(90505.1152,IENS,.02,"E")
- +41 IF ATYP="D"
- SET VALUE=$$FMTE^BQIUL1(VALUE)
- +42 SET FILTER(N,1,ASN,1)=VALUE
- End DoDot:4
- QUIT
- +43 SET MSN=0
- +44 FOR
- SET MSN=$ORDER(^BQICARE(COWNR,1,CPLIEN,15,N,2,ASN,1,MSN))
- IF 'MSN
- QUIT
- Begin DoDot:4
- +45 NEW DA,IENS,VALUE
- +46 SET DA(4)=COWNR
- SET DA(3)=CPLIEN
- SET DA(2)=N
- SET DA(1)=ASN
- SET DA=MSN
- SET IENS=$$IENS^DILF(.DA)
- +47 IF ATYP="T"
- SET VALUE=$$GET1^DIQ(90505.11521,IENS,.02,"E")
- +48 IF ATYP'="T"
- SET VALUE=$$GET1^DIQ(90505.11521,IENS,.01,"E")
- +49 IF ATYP="D"
- SET VALUE=$$FMTE^BQIUL1(VALUE)
- +50 SET FILTER(N,1,ASN,MSN)=VALUE
- End DoDot:4
- End DoDot:3
- End DoDot:2
- QUIT
- +51 ;
- +52 SET NN=0
- +53 FOR
- SET NN=$ORDER(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN))
- IF 'NN
- QUIT
- Begin DoDot:2
- +54 NEW DA,IENS,VALUE
- +55 SET DA(3)=COWNR
- SET DA(2)=CPLIEN
- SET DA(1)=N
- SET DA=NN
- SET IENS=$$IENS^DILF(.DA)
- +56 IF PTYP="T"
- SET VALUE=$$GET1^DIQ(90505.1151,IENS,.02,"E")
- +57 IF PTYP'="T"
- SET VALUE=$$GET1^DIQ(90505.1151,IENS,.01,"E")
- +58 IF PTYP="D"
- SET VALUE=$$FMTE^BQIUL1(VALUE)
- +59 SET FILTER(N,NN)=VALUE
- +60 ; Check for associated parameters
- +61 SET ASN=0
- +62 FOR
- SET ASN=$ORDER(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN))
- IF 'ASN
- QUIT
- Begin DoDot:3
- +63 NEW DA,IENS,ASSOC,AVALUE,VALUE
- +64 SET DA(4)=COWNR
- SET DA(3)=CPLIEN
- SET DA(2)=N
- SET DA(1)=NN
- SET DA=ASN
- SET IENS=$$IENS^DILF(.DA)
- +65 SET ASSOC=$$GET1^DIQ(90505.11512,IENS,.01,"E")
- +66 SET ATYP=$$PTYP^BQIDCDF(FSOURCE,ASSOC)
- +67 SET FILTER(N,NN,ASN)=ASSOC
- +68 IF '$DATA(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN,1))
- Begin DoDot:4
- +69 IF ATYP="T"
- SET VALUE=$$GET1^DIQ(90505.11512,IENS,.03,"E")
- +70 IF ATYP'="T"
- SET VALUE=$$GET1^DIQ(90505.11512,IENS,.02,"E")
- +71 IF ATYP="D"
- SET VALUE=$$FMTE^BQIUL1(VALUE)
- +72 SET FILTER(N,NN,ASN,1)=VALUE
- End DoDot:4
- QUIT
- +73 SET MSN=0
- +74 FOR
- SET MSN=$ORDER(^BQICARE(COWNR,1,CPLIEN,15,N,1,NN,2,ASN,1,MSN))
- IF 'MSN
- QUIT
- Begin DoDot:4
- +75 NEW DA,IENS,VALUE
- +76 SET DA(5)=COWNR
- SET DA(4)=CPLIEN
- SET DA(3)=N
- SET DA(2)=NN
- SET DA(1)=ASN
- SET DA=MSN
- SET IENS=$$IENS^DILF(.DA)
- +77 IF ATYP="T"
- SET VALUE=$$GET1^DIQ(90505.115121,IENS,.02,"E")
- +78 IF ATYP'="T"
- SET VALUE=$$GET1^DIQ(90505.115121,IENS,.01,"E")
- +79 IF ATYP="D"
- SET VALUE=$$FMTE^BQIUL1(VALUE)
- +80 SET FILTER(N,NN,ASN,MSN)=VALUE
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +81 ;
- +82 IF 'OKAY
- KILL FILTER
- QUIT
- +83 ; Recreate PARMS string if panel definition contains visit detail
- +84 DO PAS(1)
- +85 IF $DATA(FILTER)
- DO PAS(2)
- +86 SET PARMS=$$TKO^BQIUL1(PARMS,$CHAR(28))
- +87 SET PM=""
- +88 FOR
- SET PM=$ORDER(FILTER(PM))
- IF PM=""
- QUIT
- Begin DoDot:1
- +89 SET NAME=FILTER(PM)
- +90 IF NAME="PROV"
- Begin DoDot:2
- +91 SET VM=1
- SET PRVAL=NAME_"="_FILTER(PM,VM)
- +92 IF PARMS'["RANGE"
- IF PARMS'["FROM"
- Begin DoDot:3
- +93 IF $EXTRACT(PARMS,$LENGTH(PARMS))'=$CHAR(28)
- IF PARMS'=""
- SET PARMS=PARMS_$CHAR(28)_"RANGE=Ever"_$CHAR(28)
- QUIT
- +94 SET PARMS=PARMS_"RANGE=Ever"_$CHAR(28)
- End DoDot:3
- +95 IF PARMS'["NUMVIS"
- Begin DoDot:3
- +96 IF $EXTRACT(PARMS,$LENGTH(PARMS))'=$CHAR(28)
- IF PARMS'=""
- SET PARMS=PARMS_$CHAR(28)_"NUMVIS='<1"
- QUIT
- +97 SET PARMS=PARMS_"NUMVIS='<1"
- End DoDot:3
- +98 SET PARMS=PARMS_$CHAR(25)_PRVAL
- End DoDot:2
- +99 IF NAME="CLIN"
- Begin DoDot:2
- +100 SET VM=""
- +101 FOR
- SET VM=$ORDER(FILTER(PM,VM))
- IF VM=""
- QUIT
- Begin DoDot:3
- +102 SET PARMS=PARMS_$CHAR(25)_NAME_"="_FILTER(PM,VM)_$CHAR(29)
- +103 IF $ORDER(FILTER(PM,VM))'=""
- SET PARMS=PARMS_NPARM
- End DoDot:3
- +104 SET PARMS=$$TKO^BQIUL1(PARMS,$CHAR(29))
- End DoDot:2
- End DoDot:1
- +105 SET CPARMS=$$TKO^BQIUL1(PARMS,$CHAR(29))
- +106 KILL FILTER,PARMS,NPARM,ADA,ADTM,ASSOC,AVAL,NAME,FNAME,MDA,Y
- +107 DO CON^BQIPLFL(.DATA,COWNR,CPLIEN,CPARMS)
- +108 QUIT
- +109 ;
- PAS(PS) ; Build PARMS from each pass
- +1 SET PM=""
- +2 FOR
- SET PM=$ORDER(FILTER(PM))
- IF PM=""
- QUIT
- Begin DoDot:1
- +3 SET NAME=FILTER(PM)
- +4 IF PS=1
- IF NAME="PROV"!(NAME="CLIN")!(NAME="NUMVIS")
- QUIT
- +5 IF PS=2
- IF NAME="PROV"!(NAME="CLIN")
- QUIT
- +6 ;I PS=3 S PARMS=PARMS_$S($E(PARMS,$L(PARMS),$L(PARMS))'=$C(25):$C(25),1:"")
- +7 SET PARMS=$GET(PARMS)_NAME_"="
- +8 SET VM=""
- +9 FOR
- SET VM=$ORDER(FILTER(PM,VM))
- IF VM=""
- QUIT
- Begin DoDot:2
- +10 SET AN=""
- +11 FOR
- SET AN=$ORDER(FILTER(PM,VM,AN))
- IF AN=""
- QUIT
- Begin DoDot:3
- +12 SET MM=""
- SET MASP=""
- +13 FOR
- SET MM=$ORDER(FILTER(PM,VM,AN,MM))
- IF MM=""
- QUIT
- Begin DoDot:4
- +14 SET MASP=$GET(MASP)_FILTER(PM,VM,AN,MM)_$CHAR(24)
- End DoDot:4
- +15 SET MASP=$$TKO^BQIUL1(MASP,$CHAR(24))
- +16 SET ASPM=FILTER(PM,VM,AN)_"="_MASP
- +17 SET MPRM(VM)=$SELECT(AN'<2:$$TKO^BQIUL1(MPRM(VM),$CHAR(29)),1:FILTER(PM,VM))_$CHAR(25)_ASPM_$CHAR(29)
- End DoDot:3
- +18 IF '$DATA(MPRM(VM))
- Begin DoDot:3
- +19 IF NAME'="NUMVIS"
- SET MPRM(VM)=FILTER(PM,VM)_$CHAR(29)
- QUIT
- +20 IF NAME="NUMVIS"
- SET MPRM(VM)=FILTER(PM,VM)_"~"
- End DoDot:3
- End DoDot:2
- +21 SET NM=""
- SET NPARM=""
- +22 FOR
- SET NM=$ORDER(MPRM(NM))
- IF NM=""
- QUIT
- Begin DoDot:2
- +23 SET PARMS=PARMS_MPRM(NM)
- +24 IF NAME="NUMVIS"
- SET NPARM=NPARM_MPRM(NM)
- End DoDot:2
- +25 IF NAME'="NUMVIS"
- SET PARMS=$$TKO^BQIUL1(PARMS,$CHAR(29))
- +26 IF NAME="NUMVIS"
- SET PARMS=$$TKO^BQIUL1(PARMS,"~")
- SET NPARM=$$TKO^BQIUL1(NPARM,"~")
- +27 SET PARMS=PARMS_$SELECT(PS<3:$CHAR(28),$EXTRACT(PARMS,$LENGTH(PARMS),$LENGTH(PARMS))'=$CHAR(25):$CHAR(25),1:"")
- +28 KILL MPRM,FILTER(PM)
- End DoDot:1
- +29 QUIT