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

BQIPDSCM.m

Go to the documentation of this file.
  1. BQIPDSCM ;VNGT/HS/BEE-Panel Description Utility ; 7 Apr 2008 4:28 PM
  1. ;;2.6;ICARE MANAGEMENT SYSTEM;;Jul 07, 2017;Build 72
  1. ;
  1. Q
  1. ;
  1. DESC(OWNR,PLIEN,DESC) ;EP - Format Panel Generated Description
  1. ;
  1. ; Input:
  1. ; OWNR - The panel owner
  1. ; PLIEN - The panel IEN
  1. ;
  1. ; Output:
  1. ; DESC - Array containing the generated panel description
  1. ;
  1. NEW DA,IENS,TYPE,SOURCE,MPARMS,PARMS,FILTER,FSOURCE,FPARMS,TDESC,IPC,PCAT
  1. ;
  1. S DA(1)=OWNR,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. S TYPE=$$GET1^DIQ(90505.01,IENS,.03,"I")
  1. S SOURCE=$$GET1^DIQ(90505.01,IENS,.11,"I")
  1. S FSOURCE=$$GET1^DIQ(90505.01,IENS,.14,"E")
  1. ;
  1. ;Set Up Parameter Section
  1. ;
  1. ;Manual Patients
  1. I TYPE="M" S DESC(1,0)="The patients who were selected manually"
  1. ;
  1. ;QMAN Template
  1. I TYPE="Q" S DESC(1,0)="Search Template "_$P($G(^DIBT(SOURCE,0)),U,1)
  1. ;
  1. ;My Panel - User preferences Definition
  1. I TYPE="Y" D
  1. . NEW MPIEN,PFLD,SOURCE,TDESC,PMAP
  1. . S MPIEN=0 F S MPIEN=$O(^BQICARE(OWNR,7,MPIEN)) Q:'MPIEN D
  1. .. S SOURCE=$G(^BQICARE(OWNR,7,MPIEN,0))
  1. .. S PFLD=0 F S PFLD=$O(^BQICARE(OWNR,7,MPIEN,10,PFLD)) Q:'PFLD D
  1. ... ;
  1. ... NEW DA,IENS,PNAM,PTYP,VALUE,FILE,PEXE,MUL,OPNAM
  1. ... S DA(2)=OWNR,DA(1)=MPIEN,DA=PFLD,IENS=$$IENS^DILF(.DA)
  1. ... ;
  1. ... ;Pull parameter information
  1. ... S (OPNAM,PNAM)=$$GET1^DIQ(90505.08,IENS,".01","E") Q:PNAM=""
  1. ... S PTYP=$$PTYP^BQIDCDF(SOURCE,PNAM)
  1. ... I PTYP="T" D
  1. .... S VALUE=$$GET1^DIQ(90505.08,IENS,.03,"E")
  1. .... S FILE=$$FILN^BQIDCDF(SOURCE,PNAM) Q:FILE=""
  1. .... S VALUE=$$GET1^DIQ(FILE,VALUE,.01,"E")
  1. ... I PTYP'="T" S VALUE=$$GET1^DIQ(90505.08,IENS,.02,"E")
  1. ... S PMAP=$$PMAP^BQIDCDF(SOURCE,PNAM) I PMAP]"" D MAP(SOURCE,PMAP,.VALUE,.PNAM)
  1. ... S PEXE=$$PEXE^BQIDCDF(SOURCE,PNAM) I VALUE]"",PEXE]"" X PEXE
  1. ... ;
  1. ... ;Single value save
  1. ... I VALUE]"" S PARMS(PNAM,$$TRUNC(VALUE))="" Q
  1. ... ;
  1. ... ;Multiple value save
  1. ... S MUL=0 F S MUL=$O(^BQICARE(OWNR,7,MPIEN,10,PFLD,1,MUL)) Q:'MUL D
  1. .... NEW DA,IENS,VALUE
  1. .... S DA(3)=OWNR,DA(2)=MPIEN,DA(1)=PFLD,DA=MUL,IENS=$$IENS^DILF(.DA)
  1. .... S PNAM=OPNAM
  1. .... I PTYP="T" D
  1. ..... S VALUE=$$GET1^DIQ(90505.81,IENS,.01,"E")
  1. ..... S FILE=$$FILN^BQIDCDF(SOURCE,PNAM) Q:FILE=""
  1. ..... S VALUE=$$GET1^DIQ(FILE,VALUE,.01,"E")
  1. .... I PTYP'="T" S VALUE=$$GET1^DIQ(90505.81,IENS,.01,"E")
  1. .... I VALUE]"",PMAP]"" D MAP(SOURCE,PMAP,.VALUE,.PNAM)
  1. .... I VALUE]"",PEXE]"" X PEXE
  1. .... I VALUE]"" S PARMS(PNAM,$$TRUNC(VALUE))=""
  1. . ;
  1. . ;Assemble parameter description
  1. . D PDESC(TYPE,"MY PATIENTS-DESCRIPTION",.TDESC,.PARMS)
  1. . S DESC(1,0)=$G(TDESC)
  1. . Q
  1. ;
  1. ;Other Panel Types
  1. I ".M.Q.Y."'[TYPE D
  1. . ;
  1. . I SOURCE="" Q
  1. . ;
  1. . NEW PPIEN,PMIEN
  1. . S PPIEN=$$PP^BQIDCDF(SOURCE) I PPIEN=-1 Q
  1. . ;
  1. . ; Get parameters from panel definition
  1. . S PMIEN=0 F S PMIEN=$O(^BQICARE(OWNR,1,PLIEN,10,PMIEN)) Q:'PMIEN D
  1. .. ;
  1. .. NEW DA,PNAM,PTYP,VALUE,FILE,MUL,PEXE,OPNAM,PMAP
  1. .. S DA(2)=OWNR,DA(1)=PLIEN,DA=PMIEN,IENS=$$IENS^DILF(.DA)
  1. .. S (OPNAM,PNAM)=$$GET1^DIQ(90505.02,IENS,.01,"E")
  1. .. S PTYP=$$PTYP^BQIDCDF(SOURCE,PNAM)
  1. .. I PTYP="T" D
  1. ... S VALUE=$$GET1^DIQ(90505.02,IENS,.03,"E")
  1. ... S FILE=$$FILN^BQIDCDF(SOURCE,PNAM) Q:FILE=""
  1. ... S VALUE=$$GET1^DIQ(FILE,VALUE,.01,"E")
  1. .. I PTYP'="T" S VALUE=$$GET1^DIQ(90505.02,IENS,.02,"E")
  1. .. I PTYP="D" S VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1))
  1. .. I PTYP="R" D
  1. ... I VALUE["T" S VALUE=$$DATE^BQIUL1(VALUE),VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1)) Q
  1. ... D RANGE^BQIDCAH1(VALUE,PPIEN,PNAM) D
  1. .... S VALUE=VALUE_" ("_$$FMTE^BQIUL1(RFROM)_"-"_$$FMTE^BQIUL1(RTHRU)_")"
  1. ... ;
  1. .. S PMAP=$$PMAP^BQIDCDF(SOURCE,PNAM) I VALUE]"",PMAP]"" D MAP(SOURCE,PMAP,.VALUE,.PNAM)
  1. .. S PEXE=$$PEXE^BQIDCDF(SOURCE,PNAM) I VALUE]"",PEXE]"" X PEXE
  1. .. ;
  1. .. ;Single value save
  1. .. I VALUE]"" S PARMS(PNAM,$$TRUNC(VALUE))="" Q
  1. .. ;
  1. .. ;Multiple value save
  1. .. S MUL=0 F S MUL=$O(^BQICARE(OWNR,1,PLIEN,10,PMIEN,1,MUL)) Q:'MUL D
  1. ... NEW DA,IENS,VALUE
  1. ... S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=PMIEN,DA=MUL,IENS=$$IENS^DILF(.DA)
  1. ... S PNAM=OPNAM
  1. ... I PTYP="T" D
  1. .... S VALUE=$$GET1^DIQ(90505.21,IENS,.01,"E")
  1. .... S FILE=$$FILN^BQIDCDF(SOURCE,PNAM) Q:FILE=""
  1. .... S VALUE=$$GET1^DIQ(FILE,VALUE,.01,"E")
  1. ... I PTYP'="T" S VALUE=$$GET1^DIQ(90505.21,IENS,.01,"E")
  1. ... I PTYP="D" S VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1))
  1. ... I PTYP="R" D
  1. .... I VALUE["T" S VALUE=$$DATE^BQIUL1(VALUE),VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1)) Q
  1. .... ;S VALUE=$$DATE^BQIUL1(VALUE)
  1. .... ;S VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1))
  1. ... I VALUE]"",PMAP]"" D MAP(SOURCE,PMAP,.VALUE,.PNAM)
  1. ... I VALUE]"",PEXE]"" X PEXE
  1. ... I VALUE]"" S PARMS(PNAM,$$TRUNC(VALUE))=""
  1. .. Q
  1. . ;Assemble parameter description
  1. . D PDESC(TYPE,SOURCE,.TDESC,.PARMS)
  1. . I $L(TDESC)<70 S DESC(1,0)=$G(TDESC) Q
  1. . D WP(TDESC,.DESC)
  1. ;
  1. ;Retrieve filter information
  1. D FILTER^BQIPDSCF(OWNR,PLIEN,.FPARMS)
  1. ;
  1. ;Assemble filter description
  1. I $D(FPARMS) D
  1. . I SOURCE["AD HOC",FSOURCE="FILTER" K X,DESC
  1. . D FDESC(.DESC,.FPARMS)
  1. ;
  1. ;Pull category and IPC Flag
  1. D CATIPC(OWNR,PLIEN,.DESC)
  1. ;
  1. Q
  1. ;
  1. TRUNC(VAL) ;EP - Truncate value to 255
  1. ;
  1. Q:$L(VAL)<256 VAL
  1. Q $E(VAL,1,252)_"..."
  1. ;
  1. WP(TEXT,DESC) ;EP - update description text
  1. NEW DIWL,DIWR,BQN
  1. K ^UTILITY($J,"W")
  1. S DIWL=1,DIWR=45
  1. I '$D(DESC) D
  1. . S X=TEXT
  1. . D ^DIWP
  1. . S BQN=""
  1. . F S BQN=$O(^UTILITY($J,"W",1,BQN)) Q:BQN="" S DESC(BQN,0)=^UTILITY($J,"W",1,BQN,0)
  1. Q
  1. ;
  1. CNT(PARM) ;EP - Return number of entries for specific parameter
  1. I PARM="" Q 0
  1. I $G(PARMS(PARM))="" Q 0
  1. Q $L(PARMS(PARM),",")
  1. ;
  1. FCNT(FPRM) ;EP - Return if filter is defined for panel
  1. ;
  1. N PORD
  1. I FPRM="" Q 0
  1. I $D(FPARMS("VAL",FPRM)) Q $L(FPARMS("VAL",FPRM),", ")
  1. Q 0
  1. ;
  1. PCNT(PRM) ;EP - Return if parameter is defined for panel
  1. I PRM="" Q 0
  1. I $D(PARMS(PRM)) Q $L(PARMS(PRM),", ")
  1. Q 0
  1. ;
  1. CATIPC(OWNR,PLIEN,DESC) ;EP - Add in category and IPC status
  1. NEW PCAT,PIPC,DA,IENS,DII
  1. ;
  1. S DA(1)=OWNR,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. S PCAT=$$PCAT^BQIPLDF(OWNR,PLIEN) ;$$GET1^DIQ(90505.01,IENS,2.2,"I")
  1. S PIPC=$$GET1^DIQ(90505.01,IENS,2.1,"I")
  1. ;
  1. S DA(1)=DUZ,DA=PCAT,IENS=$$IENS^DILF(.DA)
  1. S:PCAT]"" PCAT=$$GET1^DIQ(90505.017,IENS,.01,"I")
  1. S:PCAT="" PCAT="N/A"
  1. S PIPC=$S(PIPC="1":"Yes",1:"No")
  1. S DII=$O(DESC(""),"-1") S DII=$G(DII)+1
  1. S DESC(DII,0)="Panel Category: "_PCAT_" IPC Panel: "_PIPC_"; "
  1. ;
  1. Q
  1. ;
  1. MAP(SOURCE,PMAP,VALUE,PNAM) ;EP - Map one value to another
  1. ;
  1. NEW PDEF,FIEN,MAP,I,PC,FND
  1. ;
  1. S PDEF=$$PP^BQIDCDF(SOURCE) Q:PDEF=""
  1. ;
  1. S FIEN=$O(^BQI(90506,PDEF,3,"B",PMAP,"")) Q:FIEN=""
  1. ;
  1. S FND=""
  1. S MAP="" F S MAP=$O(^BQI(90506,PDEF,3,FIEN,3,"AC",MAP)) Q:MAP="" D Q:FND
  1. . F I=1:1:$L(MAP,"~") S PC=$P(MAP,"~",I) I PC]"" D Q:FND
  1. .. NEW VAR,VAL,CIEN,DA,IEN
  1. .. S VAR=$P(PC,"=") Q:VAR=""
  1. .. S VAL=$P(PC,"=",2) Q:VAL=""
  1. .. Q:VAR'=PNAM
  1. .. Q:VAL'=VALUE
  1. .. S CIEN=$O(^BQI(90506,PDEF,3,FIEN,3,"AC",MAP,"")) Q:CIEN=""
  1. .. S DA(2)=PDEF,DA(1)=FIEN,DA=CIEN,IEN=$$IENS^DILF(.DA)
  1. .. S VALUE=$$GET1^DIQ(90506.33,IEN,.01,"E"),PNAM=PMAP,FND=1
  1. ;
  1. Q
  1. ;
  1. PVST(TYPE) ;EP - Assemble primary secondary visit description section
  1. ;
  1. I TYPE="PRIM",$D(PARMS("PVISITS")) D PSVST("PRIM",PARMS("PVISITS"),$G(PARMS("PTMFRAME")),.PARMS)
  1. I TYPE="PRSC",$D(PARMS("PSVISITS")) D PSVST("PRSC",PARMS("PSVISITS"),$G(PARMS("PSTMFRAM")),.PARMS)
  1. Q
  1. ;
  1. PSVST(BQITYPE,BQIVST,BQITIME,BQIMPRM) ;EP - Assemble Primary/Secondary Provider Visit Checks
  1. ;
  1. ;Description: This tag receives primary or secondary visit check information and moves it into
  1. ; the multiple field "TYPE" node so it will be included with the other specialties.
  1. ;
  1. ;Parameters:
  1. ;BQITYPE = "PRIM" - Primary or "PRSC" - Primary/Secondary
  1. ;BQIVST = # of visits parameter
  1. ;BQITIME = Date Range
  1. ;BQIMPRM = Passed in MPARMS array. Gets updated with visit check description
  1. ;
  1. ;
  1. N STR
  1. I BQITYPE=""!(BQIVST="")!(BQITIME="") Q
  1. ;
  1. ;Assemble Visit Check Description
  1. S STR=BQIVST
  1. S STR=STR_" "_$S(BQITYPE="PRIM":"Primary Visit Provider",1:"Primary/Secondary Visit Provider")
  1. S STR=STR_" "_$S(BQIVST>1:"visits",1:"visit")
  1. ;Now added in executable string
  1. ;I $G(BQITIME)]"" S STR=STR_" in "_$S(BQITIME="T-24M":"2 years",BQITIME="T-12M":"1 year",1:$P(BQITIME,"T-",2))
  1. S BE=$G(BE)+1,BE(BE)=BQITYPE_U_BQITIME
  1. ;
  1. ;Save New Entry With Visit Check Description
  1. S BQIMPRM(BQITYPE)=STR
  1. Q
  1. ;
  1. EHPL ;EP - Format EHR Personal List
  1. NEW EHPLIEN,EHVAL,PC
  1. S EHVAL=""
  1. F PC=1:1:$L(PARMS("EHRPLIEN"),", ") S EHPLIEN=$P(PARMS("EHRPLIEN"),", ",PC) D
  1. . NEW EHPL
  1. . S EHPL=$$GETNAME^BEHOPTP2(EHPLIEN)
  1. . S EHVAL=$G(EHVAL)_EHPL_","
  1. S EHVAL=$$TKO^BQIUL1(EHVAL,",")
  1. S:EHVAL]"" PARMS("EHRPLIEN")=EHVAL
  1. Q
  1. ;
  1. REG ;EP - Format RPMS Register Panel Information
  1. N REGIEN,REGNMSP
  1. I '$D(PARMS("REG")) Q
  1. S REGIEN=$O(^BQI(90507,"B",PARMS("REG"),""))
  1. I REGIEN="" Q
  1. S REGNMSP=$$GET1^DIQ(90507,REGIEN_",",.13,"E")
  1. I REGNMSP'="" S PARMS("NMSP")=REGNMSP
  1. I $G(PARMS("SUBREG"))'="" D
  1. . N SBIEN,SBREG
  1. . S SBIEN=0 F S SBIEN=$O(^BQI(90507,SBIEN)) Q:'SBIEN D
  1. .. S SBREG=$P($G(^BQI(90507,SBIEN,0)),U,9)
  1. .. I SBREG=PARMS("SUBREG") D
  1. ... S REGNMSP=$$GET1^DIQ(90507,SBIEN_",",.13,"E")
  1. ... I REGNMSP'="" S PARMS("NMSP")=REGNMSP
  1. Q
  1. ;
  1. PRS(TDESC) ;EP - Parse description
  1. S TDESC=$P(TDESC,"|",1)_$G(PARMS($P(TDESC,"|",2)))_$P(TDESC,"|",3,99)
  1. Q
  1. ;
  1. MPRS(TDESC) ;EP - Parse filter description
  1. S TDESC=$P(TDESC,"|",1)_$G(FPARMS("VAL",$P(TDESC,"|",2)))_$P(TDESC,"|",3,99)
  1. Q
  1. ;
  1. PDESC(TYPE,SOURCE,TDESC,PARMS) ;EP - Assemble parameter description
  1. N PPIEN,DSCEXE,DSC,PORD,PFIEN,PSORD
  1. ;
  1. ;Convert multiple values into single value
  1. D MPARMS(.PARMS,"")
  1. ;
  1. ;Pull first part of description
  1. S PPIEN=$$PP^BQIDCDF(SOURCE) I PPIEN=-1 Q
  1. S DSC=""
  1. S DSCEXE=$$GET1^DIQ(90506,PPIEN,6) I DSCEXE]"" X DSCEXE
  1. S TDESC=DSC
  1. ;
  1. ;Loop through parameters for source and assemble description
  1. S PORD="" F S PORD=$O(^BQI(90506,PPIEN,3,"C",PORD)) Q:PORD="" D
  1. . S PFIEN=$O(^BQI(90506,PPIEN,3,"C",PORD,"")) Q:PFIEN=""
  1. . ;
  1. . ;Get description framework for parameter
  1. . S DSC=""
  1. . S PSORD="" F S PSORD=$O(^BQI(90506,PPIEN,3,PFIEN,5,"B",PSORD)) Q:PSORD="" D I DSC]"" Q
  1. .. NEW PSIEN,PREXE
  1. .. S PSIEN=$O(^BQI(90506,PPIEN,3,PFIEN,5,"B",PSORD,"")) Q:PSIEN=""
  1. .. S PREXE=$G(^BQI(90506,PPIEN,3,PFIEN,5,PSIEN,1))
  1. .. I PREXE]"" X PREXE
  1. . S:DSC]"" TDESC=$G(TDESC)_DSC
  1. ;
  1. ;Populate values
  1. F Q:'$F(TDESC,"|") D PRS(.TDESC)
  1. ;
  1. Q
  1. ;
  1. FDESC(PARMS,FPARMS) ;EP - Assemble filter description
  1. NEW PPIEN,DSC,DSCEXE,TDESC,PORD,FPC,VAL,DII,PSORD,PFIEN,FNAME
  1. ;
  1. ;Convert multiple values into single value
  1. D FPARMS(.FPARMS)
  1. ;
  1. ;Pull first part of description
  1. S PPIEN=$$PP^BQIDCDF(FSOURCE) I PPIEN=-1 Q
  1. S DSC=""
  1. S DSCEXE=$$GET1^DIQ(90506,PPIEN,6) I DSCEXE]"" X DSCEXE
  1. S TDESC=DSC
  1. ;
  1. ;Loop through parameters for source and assemble description
  1. S PORD="" F S PORD=$O(FPARMS(PORD)) Q:'PORD D
  1. . S FNAME="" F S FNAME=$O(FPARMS(PORD,FNAME)) Q:FNAME="" D
  1. .. ;
  1. .. S PFIEN=$O(^BQI(90506,PPIEN,3,"B",FNAME,"")) Q:PFIEN=""
  1. .. ;
  1. .. ;Get description framework for parameter
  1. .. S DSC=""
  1. .. S FPARMS("VAL",FNAME)=$G(FPARMS(PORD,FNAME))
  1. .. K FPARMS(PORD,FNAME)
  1. .. ;
  1. .. S PSORD="" F S PSORD=$O(^BQI(90506,PPIEN,3,PFIEN,5,"B",PSORD)) Q:PSORD="" D I DSC]"" Q
  1. ... NEW PSIEN,PREXE
  1. ... S PSIEN=$O(^BQI(90506,PPIEN,3,PFIEN,5,"B",PSORD,"")) Q:PSIEN=""
  1. ... S PREXE=$G(^BQI(90506,PPIEN,3,PFIEN,5,PSIEN,1))
  1. ... I PREXE]"" X PREXE
  1. .. S:DSC]"" TDESC=$G(TDESC)_DSC_"; "
  1. S TDESC=$$TKO^BQIUL1(TDESC,"; ")
  1. ;
  1. ;Populate values
  1. NEW FPC,DII
  1. F Q:'$F(TDESC,"|") D MPRS(.TDESC)
  1. F FPC=1:1:$L(TDESC,"; ") D
  1. . NEW VAL
  1. . S VAL=$P(TDESC,"; ",FPC) Q:FPC=""
  1. . S DII=$O(DESC(""),"-1") S DII=$G(DII)+1
  1. . S DESC(DII,0)=VAL_"; "
  1. ;
  1. D WP(TDESC,.DESC)
  1. Q
  1. ;
  1. MPARMS(PARMS,DEL) ;EP - Convert multiple values into single value
  1. ;
  1. ; Input:
  1. ; PARMS - Array of current fields with their values
  1. ; DEL - Delimiter to put between entries
  1. ;
  1. ; Output:
  1. ; PARMS - Updated array which includes multiple values
  1. ; combined into single entries
  1. ;
  1. NEW NAME
  1. S DEL=$G(DEL,"") S:DEL="" DEL=", "
  1. S NAME="" F S NAME=$O(PARMS(NAME)) Q:NAME="" D
  1. . NEW VAL,VALS
  1. . S VAL="",VALS=""
  1. . F S VAL=$O(PARMS(NAME,VAL)) Q:VAL="" S VALS=VALS_VAL_$S($G(PARMS(NAME,VAL))]"":PARMS(NAME,VAL),1:DEL) K PARMS(NAME,VAL)
  1. . S VALS=$$TKO^BQIUL1(VALS,DEL)
  1. . S PARMS(NAME)=VALS
  1. ;
  1. Q
  1. ;
  1. FPARMS(FPARMS) ;EP - Convert multiple filter values into single value
  1. ;
  1. ; Input:
  1. ; FPARMS - Array of current fields with their values
  1. ;
  1. ; Output:
  1. ; FPARMS - Updated array which includes multiple values
  1. ; combined into single entries
  1. ;
  1. NEW NAME,PORD
  1. S PORD="" F S PORD=$O(FPARMS(PORD)) Q:PORD="" D
  1. . S NAME="" F S NAME=$O(FPARMS(PORD,NAME)) Q:NAME="" D
  1. .. NEW VAL,VALS,DLM,APOS
  1. .. S VAL="",VALS="",APOS="'"
  1. .. ;
  1. .. ;Determine whether to add an apostrophe
  1. .. S VAL=$O(FPARMS(PORD,NAME,VAL)) S:VAL="" APOS=""
  1. .. S VAL=$O(FPARMS(PORD,NAME,VAL)) S:VAL="" APOS=""
  1. .. S VAL="" F S VAL=$O(FPARMS(PORD,NAME,VAL)) Q:VAL="" D
  1. ... I NAME="DEC" S VALS=VALS_APOS_VAL_APOS_$S($G(FPARMS(PORD,NAME,VAL))]"":FPARMS(PORD,NAME,VAL),1:", ") K FPARMS(PORD,NAME,VAL) Q
  1. ... S VALS=VALS_APOS_VAL_APOS_$S($G(FPARMS(PORD,NAME,VAL))]"":FPARMS(PORD,NAME,VAL),1:" OR ") K FPARMS(PORD,NAME,VAL)
  1. .. F DLM=", "," AND "," OR " S VALS=$$TKO^BQIUL1(VALS,DLM)
  1. .. S FPARMS(PORD,NAME)=VALS
  1. ;
  1. Q