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

BQIPLDSC.m

Go to the documentation of this file.
  1. BQIPLDSC ;PRXM/HC/ALA-Panel Description Utility ; 19 Jan 2006 1:28 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
  1. ;
  1. Q
  1. ;
  1. AGE ; Format FPARMS("AGE") or FMPARMS("AGE")
  1. ; Added the following line to replace the subsequent code for PR_0124
  1. I $D(FPARMS("AGE")) D Q
  1. . N AGE,EXT,OP
  1. . S AGE=FPARMS("AGE")
  1. . S EXT=$S($E(AGE)="'":2,1:1),OP=$E(AGE,1,EXT),AGE=$E(AGE,EXT+1,99)
  1. . S AGE=$S(OP="=":AGE,OP=">":"older than "_AGE,OP="<":"younger than "_AGE,OP="'<":AGE_" or older",1:AGE_" or younger")
  1. . I AGE["YRS" S AGE=$P(AGE,"YRS")_" years"_$P(AGE,"YRS",2,99)
  1. . I AGE["MOS" S AGE=$P(AGE,"MOS")_" months"_$P(AGE,"MOS",2,99)
  1. . I AGE["DYS" S AGE=$P(AGE,"DYS")_" days"_$P(AGE,"DYS",2,99)
  1. . S FPARMS("AGE")=AGE
  1. N AGE,AGE1,AGE2,I
  1. S AGE1=$O(FMPARMS("AGE","")) Q:AGE1=""
  1. S AGE2=$O(FMPARMS("AGE",AGE1)) Q:AGE2=""
  1. I $E(AGE1)="'" S AGE="between (inclusive) "_$E(AGE1,3,99)_" and "_$E(AGE2,3,99)
  1. I $E(AGE1)'="'" S AGE="younger than "_$E(AGE1,2,99)_" or older than "_$E(AGE2,2,99)
  1. F I=1,2 I AGE["YRS" S AGE=$P(AGE,"YRS")_" years"_$P(AGE,"YRS",2,99)
  1. F I=1,2 I AGE["MOS" S AGE=$P(AGE,"MOS")_" months"_$P(AGE,"MOS",2,99)
  1. F I=1,2 I AGE["DYS" S AGE=$P(AGE,"DYS")_" days"_$P(AGE,"DYS",2,99)
  1. S FPARMS("AGE")=AGE K FMPARMS("AGE")
  1. Q
  1. ;
  1. PLIDEN ; Format FPARMS("PLIDEN") or FMPARMS("PLIDEN")
  1. N PLOWNR
  1. I $D(FPARMS("PLIDEN")) D
  1. . S PLOWNR=$P(FPARMS("PLIDEN"),$C(26),1),PLOWNR=$$GET1^DIQ(200,PLOWNR_",",.01,"E")
  1. . S FPARMS("PLIDEN")=$P(FPARMS("PLIDEN"),$C(26),2)_" "_PLOWNR
  1. I $D(FMPARMS("PLIDEN")) D
  1. . N PLIEN,PLARR
  1. . S PLIEN=""
  1. . F S PLIEN=$O(FMPARMS("PLIDEN",PLIEN)) Q:PLIEN="" D
  1. .. S PLOWNR=$P(PLIEN,$C(26),1),PLOWNR=$$GET1^DIQ(200,PLOWNR_",",.01,"E")
  1. .. S PLARR($P(PLIEN,$C(26),2)_" "_PLOWNR)=""
  1. . K FMPARMS("PLIDEN")
  1. . M FMPARMS("PLIDEN")=PLARR
  1. Q
  1. ;
  1. BEN ; Format FPARMS("BEN") or FMPARMS("BEN")
  1. Q ;Disabled
  1. I $D(FPARMS("BEN")) D
  1. . S FPARMS("BEN")=$$GET1^DIQ(9999999.25,FPARMS("BEN")_",",.01,"E")
  1. I $D(FMPARMS("BEN")) D
  1. . N PLIEN,PLBEN
  1. . S PLIEN=""
  1. . F S PLIEN=$O(FMPARMS("BEN",PLIEN)) Q:PLIEN="" D
  1. .. S PLBEN=$$GET1^DIQ(9999999.25,PLIEN_",",.01,"E")
  1. .. S PLARR(PLBEN)=""
  1. . K FMPARMS("BEN")
  1. . M FMPARMS("BEN")=PLARR
  1. Q
  1. ;
  1. REG ; Format FPARMS("REG")
  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. ;S PARMS("REG")=REGNMSP_PARMS("REG")
  1. Q
  1. ;
  1. STAT(STAT) ;EP - Register Status
  1. I $G(STAT)="" Q
  1. I '$D(PARMS("STATUS")) S PARMS("STATUS")=" Status: "
  1. I PARMS("STATUS")'=" Status: " S PARMS("STATUS")=PARMS("STATUS")_", "
  1. S PARMS("STATUS")=PARMS("STATUS")_STAT
  1. Q
  1. ;
  1. SCH ;EP - Scheduled Appointments
  1. NEW FDT,EDT,OSTAT,STAT,II
  1. S RFROM=$G(PARMS("RFROM")),RTHRU=$G(PARMS("RTHRU"))
  1. S FROM=$G(PARMS("FROM")),THRU=$G(PARMS("THRU"))
  1. S FDT=$S($G(RFROM)'="":RFROM,1:$G(FROM))
  1. S EDT=$S($G(RTHRU)'="":RTHRU,1:$G(THRU))
  1. S PARMS("FROM")=FDT,PARMS("THRU")=EDT
  1. I NAME="APTYPE" D
  1. . Q:VALUE=""
  1. . I '$D(PARMS("APTYPE")),'$D(MPARMS("APTYPE")) S VALUE=" Status "_VALUE
  1. I NAME="APSTAT" D
  1. . Q:VALUE=""
  1. . ; Remove comments if status description should be displayed
  1. . ; D TAB^BQIUTB(.OSTAT,"APSTAT")
  1. . ; F II=1:1 S STAT=@OSTAT@(II) Q:STAT=$C(31) S STAT($P(STAT,U))=$P(STAT,U,2)
  1. . ; I $D(STAT(VALUE)) S VALUE=$P(STAT(VALUE),$C(30))
  1. . S VALUE=$$SCHTP(VALUE)
  1. . I '$D(PARMS("APSTAT")),'$D(MPARMS("APSTAT")) S VALUE=" Status "_VALUE
  1. . I $D(MPARMS("APSTAT"," Status "_VALUE)) S VALUE=" Status "_VALUE
  1. Q
  1. ;
  1. SCHTP(STATUS) ;EP - Convert appointment status code to appointment type
  1. NEW ST,APTYPE,I,PC,VAL,TPIEN
  1. S VAL=STATUS
  1. S APTYPE=$O(^BQI(90506,PPIEN,3,"B","APTYPE","")) I APTYPE="" Q VAL
  1. S ST="" F S ST=$O(^BQI(90506,PPIEN,3,APTYPE,3,"AC",ST)) Q:ST="" D
  1. . F I=1:1:$L(ST,"~") S PC=$P(ST,"~",I) I PC=("APSTAT="_VAL) D Q
  1. .. S TPIEN=$O(^BQI(90506,PPIEN,3,APTYPE,3,"AC",ST,""))
  1. .. I TPIEN'="" S VAL=$P($G(^BQI(90506,PPIEN,3,APTYPE,3,TPIEN,0)),U) S:VAL="" VAL=STATUS
  1. Q VAL
  1. ;
  1. DXCAT ;EP - Diagnosis Category
  1. ; Only reformat description with designated operand
  1. I $G(FPARMS("DXOP"))="" Q
  1. ; If only a single Dx Category was identified operand is meaningless
  1. I '$D(FMPARMS("DXCAT")) Q
  1. S FPARMS("DXOP")=$S(FPARMS("DXOP")="&":", AND ",1:", OR ")
  1. N DX,APM
  1. S (DX,APM)="",FPARMS("DXCAT")=""
  1. F S DX=$O(FMPARMS("DXCAT",DX)) Q:DX="" D
  1. . I $D(AFMPARMS("DXCAT",DX)) D
  1. .. S APM=$$ADDAP^BQIPLDS1("DXCAT",DX)
  1. .. ;S APM=$P(APM,"(")_"(Status "_$P(APM,"(",2,99)
  1. . I $O(FMPARMS("DXCAT",DX))="" S FPARMS("DXCAT")=FPARMS("DXCAT")_DX_APM Q
  1. . S FPARMS("DXCAT")=FPARMS("DXCAT")_DX_APM_FPARMS("DXOP")
  1. K FMPARMS("DXCAT"),AFMPARMS("DXCAT")
  1. Q
  1. ;
  1. NVIS ; Format FPARMS("NUMVIS") or FMPARMS("NUMVIS")
  1. ;
  1. I $D(FPARMS("NUMVIS")) D Q
  1. . N NUMVIS,EXT,OP
  1. . I FPARMS("NUMVIS")?1N.N S FPARMS("NUMVIS")="="_FPARMS("NUMVIS") ;***Replace***
  1. . S NUMVIS=FPARMS("NUMVIS")
  1. . S EXT=$S($E(NUMVIS)="'":2,1:1),OP=$E(NUMVIS,1,EXT),NUMVIS=$E(NUMVIS,EXT+1,99)
  1. . S NUMVIS=$S(OP="=":NUMVIS,OP=">":"more than "_NUMVIS,OP="<":"less than "_NUMVIS,OP="'<":NUMVIS_" or more",1:NUMVIS_" or less")
  1. . S FPARMS("NUMVIS")=NUMVIS
  1. N NUMVIS,NUMVIS1,NUMVIS2,I
  1. S NUMVIS1=$O(FMPARMS("NUMVIS","")) Q:NUMVIS1=""
  1. S NUMVIS2=$O(FMPARMS("NUMVIS",NUMVIS1)) Q:NUMVIS2=""
  1. I $E(NUMVIS1)="'" S NUMVIS="between (inclusive) "_$E(NUMVIS1,3,99)_" and "_$E(NUMVIS2,3,99)
  1. I $E(NUMVIS1)'="'",$E(NUMVIS1)'="=" S NUMVIS="less than "_$E(NUMVIS1,2,99)_" or more than "_$E(NUMVIS2,2,99)
  1. I $G(NUMVIS)'="" S FPARMS("NUMVIS")=NUMVIS K FMPARMS("NUMVIS")
  1. Q
  1. ;
  1. EHPL ;EP - Format EHR Personal List
  1. ; This is defined as a numeric field so PARMS and MPARMS are not created - data all contained in VALUE
  1. N EHCT,EHPLIEN,EHPL,PLVAL
  1. F EHCT=1:1:$L(VALUE,$C(29)) S EHPLIEN=$P(VALUE,$C(29),EHCT) Q:EHPLIEN="" D
  1. . S EHPL=$$GETNAME^BEHOPTP2(EHPLIEN)
  1. . S PLVAL=$G(PLVAL)_EHPL_","
  1. S PLVAL=$$TKO^BQIUL1(PLVAL,",")
  1. S VALUE=PLVAL
  1. Q
  1. ;
  1. PEN(OWNR,PLIEN,DESC) ;EP - Format Panel Generated Description
  1. ;
  1. ;Description
  1. ; The panel description is based on the values of the parameters
  1. ;
  1. NEW DA,IENS,TYPE,SOURCE,PPIEN,ODESC,NDESC,PARMS,MPARMS,N,NAME,OPARMS,PTYP,VALUE
  1. NEW BQFIL,VAL,VALS,PDESC,FILTER
  1. ;
  1. S NDESC="",FILTER=""
  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. ;
  1. ;My Patients
  1. ;
  1. I TYPE="Y" D Q
  1. . NEW FILTER,ICDEF,ICEXE,ICIEN,MPARMS,MPIEN,NAME,NDESC,PARMS,PDESC,SOURCE,VAL,VALS
  1. . S FILTER=""
  1. . ;
  1. . S MPIEN=0 F S MPIEN=$O(^BQICARE(OWNR,7,MPIEN)) Q:'MPIEN I $G(^BQICARE(OWNR,7,MPIEN,2))'="" D
  1. .. ;
  1. .. ;Pull iCare Definition Executable
  1. .. S ICDEF=$G(^BQICARE(OWNR,7,MPIEN,0)) Q:ICDEF=""
  1. .. S ICIEN=$O(^BQI(90506,"B",ICDEF,"")) Q:ICIEN=""
  1. .. S ICEXE=$G(^BQI(90506,ICIEN,5))
  1. .. ;
  1. .. ;Run Executable Statement
  1. .. I ICEXE]"" X ICEXE
  1. . ;
  1. . ;Convert Multiple Values into one Value
  1. . I $D(MPARMS) D
  1. .. S NAME=""
  1. .. F S NAME=$O(MPARMS(NAME)) Q:NAME="" D
  1. ... S VAL="",VALS=""
  1. ... F S VAL=$O(MPARMS(NAME,VAL)) Q:VAL="" S VALS=VALS_VAL_", "
  1. ... S VALS=$$TKO^BQIUL1(VALS,", ")
  1. ... S PARMS(NAME)=VALS
  1. . ;
  1. . ;Define Description Format
  1. . S NDESC="My Patients where provider |PROV| specialties are |TYPE|."
  1. . ;
  1. . ;Assemble Filter
  1. . I $O(^BQICARE(OWNR,1,PLIEN,15,0)) D I $G(BMXSEC)'="" Q
  1. .. S FILTER=$$FILTER^BQIPLDS1(OWNR,PLIEN)
  1. .. I $G(BMXSEC)'="" Q
  1. .. I $G(NDESC)="" D FILDES(FILTER,1) Q
  1. .. I '$F(NDESC,"|") S DESC(1,0)=NDESC D FILDES(FILTER,2) Q
  1. . ;
  1. . ;Assemble Generated Description
  1. . F Q:'$F(NDESC,"|") D PRS
  1. . S DESC(1,0)=$G(PDESC) D FILDES(FILTER,2)
  1. . Q
  1. ;
  1. ;Manual Patients
  1. ;
  1. I TYPE="M" S DESC(1,0)="The patients who were selected manually" Q
  1. ;
  1. ;QMAN Template
  1. ;
  1. I TYPE="Q" D Q
  1. . ;S DESC(1,0)="The patients who were selected by QMAN Template "_$P(^DIBT(SOURCE,0),U,1)
  1. . S DESC(1,0)="Search Template "_$P($G(^DIBT(SOURCE,0)),U,1)
  1. . I $O(^BQICARE(OWNR,1,PLIEN,15,0)) D I $G(BMXSEC)'="" Q
  1. .. ;S FILTER=$$FILTER(OWNR,PLIEN,2,4)
  1. .. S FILTER=$$FILTER^BQIPLDS1(OWNR,PLIEN)
  1. .. I $G(BMXSEC)'="" Q
  1. .. D FILDES(FILTER,2)
  1. ;
  1. I SOURCE="" Q
  1. ;
  1. S PPIEN=$$PP^BQIDCDF(SOURCE) I PPIEN=-1 Q
  1. S NDESC=$$GET1^DIQ(90506,PPIEN,4,"E")
  1. ;
  1. K PARMS,MPARMS
  1. ;
  1. ; Get parameters from panel definition
  1. S N=0 F S N=$O(^BQICARE(OWNR,1,PLIEN,10,N)) Q:'N D
  1. . NEW DA,IENS,NAME,DESCEX,VALUE,PPIEN,PTYP
  1. . S DA(2)=OWNR,DA(1)=PLIEN,DA=N,IENS=$$IENS^DILF(.DA)
  1. . S NAME=$$GET1^DIQ(90505.02,IENS,.01,"E")
  1. . S PPIEN=$$PP^BQIDCDF(SOURCE)
  1. . I PPIEN S DESCEX=$$GET1^DIQ(90506,PPIEN,5,"I")
  1. . S PTYP=$$PTYP^BQIDCDF(SOURCE,NAME)
  1. . I PTYP="T" D
  1. .. S VALUE=$$GET1^DIQ(90505.02,IENS,.03,"E")
  1. .. S BQFIL=$$FILN^BQIDCDF(SOURCE,NAME) Q:BQFIL=""
  1. .. S VALUE=$$GET1^DIQ(BQFIL,VALUE,.01,"E")
  1. . I PTYP'="T" S VALUE=$$GET1^DIQ(90505.02,IENS,.02,"E")
  1. . ;
  1. . ;Save unformatted parameter values
  1. . S OPARMS(NAME)=VALUE
  1. . ;
  1. . I PTYP="D" S VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1))
  1. . I PTYP="R" D
  1. .. S VALUE=$$DATE^BQIUL1(VALUE)
  1. .. S VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1))
  1. . I VALUE'="" D Q
  1. .. I $G(DESCEX)'="" X DESCEX
  1. .. S PARMS(NAME)=VALUE
  1. . I VALUE="" D
  1. .. Q:'$D(^BQICARE(OWNR,1,PLIEN,10,N,1))
  1. .. NEW MN
  1. .. S MN=0 F S MN=$O(^BQICARE(OWNR,1,PLIEN,10,N,1,MN)) Q:'MN D
  1. ... NEW DA,IENS,VALUE
  1. ... S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=N,DA=MN,IENS=$$IENS^DILF(.DA)
  1. ... I PTYP="T" D
  1. .... S VALUE=$$GET1^DIQ(90505.21,IENS,.02,"E")
  1. .... S BQFIL=$$FILN^BQIDCDF(SOURCE,NAME) Q:BQFIL=""
  1. .... S VALUE=$$GET1^DIQ(BQFIL,VALUE,.01,"E")
  1. ... I PTYP'="T" S VALUE=$$GET1^DIQ(90505.21,IENS,.01,"E")
  1. ... I VALUE'="",$G(DESCEX)'="" X DESCEX
  1. ... I VALUE]"" S MPARMS(NAME,VALUE)=""
  1. ;
  1. ;Special Code to Assemble Primary/Secondary Provider Information into "TYPE" node
  1. I $D(MPARMS("TYPE","PRIM")) D PSVST^BQIPLDS1("PRIM",$G(OPARMS("PVISITS")),$G(OPARMS("PTMFRAME")),.MPARMS)
  1. I $D(MPARMS("TYPE","PRSC")) D PSVST^BQIPLDS1("PRSC",$G(OPARMS("PSVISITS")),$G(OPARMS("PSTMFRAM")),.MPARMS)
  1. ;
  1. I $O(^BQICARE(OWNR,1,PLIEN,15,0)) D I $G(BMXSEC)'="" Q
  1. . S FILTER=$$FILTER^BQIPLDS1(OWNR,PLIEN)
  1. . I $G(BMXSEC)'="" Q
  1. I $G(NDESC)="" D FILDES(FILTER,1) Q
  1. I '$F(NDESC,"|") S DESC(1,0)=NDESC D FILDES(FILTER,2) Q
  1. ;
  1. I $D(MPARMS) D
  1. . S NAME=""
  1. . F S NAME=$O(MPARMS(NAME)) Q:NAME="" D
  1. .. S VAL="",VALS=""
  1. .. F S VAL=$O(MPARMS(NAME,VAL)) Q:VAL="" S VALS=VALS_VAL_", "
  1. .. S VALS=$$TKO^BQIUL1(VALS,", ")
  1. .. S PARMS(NAME)=VALS
  1. ;
  1. S ODESC=NDESC
  1. F Q:'$F(NDESC,"|") D PRS
  1. S DESC(1,0)=PDESC D FILDES(FILTER,2)
  1. Q
  1. ;
  1. PRS ; Parse description
  1. S NDESC=$P(NDESC,"|",1)_$G(PARMS($P(NDESC,"|",2)))_$P(NDESC,"|",3,99)
  1. S PDESC=NDESC
  1. Q
  1. ;
  1. FILDES(FILTER,ENT) ;EP - Load filter description in DESC()
  1. N PC
  1. I FILTER'="" D
  1. . ;S FILTER="Panel filtered by: "_FILTER
  1. . I '$D(ENT) S ENT=$O(DESC(""),-1)+1
  1. . F I=1:1:$L(FILTER,"; ") S PC=$P(FILTER,"; ",I) I PC'="" S DESC(ENT,0)=PC_"; ",ENT=ENT+1
  1. . S ENT=ENT-1
  1. . I $D(DESC(ENT,0)) S DESC(ENT,0)=$$TKO^BQIUL1(DESC(ENT,0),"; ")
  1. Q
  1. ;
  1. MEN(OWNR,PREF) ;EP -- Format my patients preferences generated description
  1. ;
  1. ;Description
  1. ; The my patients preferences description is based on the values of the parameters
  1. ;
  1. NEW DA,IENS,SOURCE,PPIEN,DESC,ODESC,NDESC,PARMS,MPARMS,N,NAME,PTYP,VALUE
  1. NEW BQFIL,VAL,VALS
  1. S DESC="",NDESC=""
  1. S DA(1)=OWNR,DA=PREF,IENS=$$IENS^DILF(.DA)
  1. S SOURCE=$$GET1^DIQ(90505.07,IENS,.01,"E")
  1. ;
  1. S PPIEN=$$PP^BQIDCDF(SOURCE) I PPIEN=-1 Q ""
  1. S DESC=$$GET1^DIQ(90506,PPIEN,4,"E")
  1. I DESC="" Q ""
  1. ;
  1. ; Get parameters from my patient definition
  1. S N=0 F S N=$O(^BQICARE(OWNR,7,PREF,10,N)) Q:'N D
  1. . NEW DA,IENS,NAME,VALUE
  1. . S DA(2)=OWNR,DA(1)=PREF,DA=N,IENS=$$IENS^DILF(.DA)
  1. . S NAME=$$GET1^DIQ(90505.08,IENS,.01,"E")
  1. . S PTYP=$$PTYP^BQIDCDF(SOURCE,NAME)
  1. . I PTYP="T" D
  1. .. S VALUE=$$GET1^DIQ(90505.08,IENS,.03,"E")
  1. .. S BQFIL=$$FILN^BQIDCDF(SOURCE,NAME) Q:BQFIL=""
  1. .. S VALUE=$$GET1^DIQ(BQFIL,VALUE,.01,"E")
  1. . I PTYP'="T" S VALUE=$$GET1^DIQ(90505.08,IENS,.02,"E")
  1. . I PTYP="D" S VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1))
  1. . I PTYP="R" D
  1. .. S VALUE=$$DATE^BQIUL1(VALUE)
  1. .. S VALUE=$$UP^XLFSTR($$FMTE^XLFDT(VALUE,1))
  1. . I NAME="SPEC",VALUE'="" D Q:VALUE=""
  1. .. N SPECNM
  1. .. S SPECNM=$$GET1^DIQ(90360.3,VALUE,.01,"I") ;Mnemonic
  1. .. S VALUE=SPECNM
  1. . I VALUE'="" S PARMS(NAME)=VALUE Q
  1. . I VALUE="" D
  1. .. Q:'$D(^BQICARE(OWNR,7,PREF,10,N,1))
  1. .. NEW MN
  1. .. S MN=0 F S MN=$O(^BQICARE(OWNR,7,PREF,10,N,1,MN)) Q:'MN D
  1. ... NEW DA,IENS,VALUE
  1. ... S DA(3)=OWNR,DA(2)=PREF,DA(1)=N,DA=MN,IENS=$$IENS^DILF(.DA)
  1. ... I PTYP="T" D
  1. .... S VALUE=$$GET1^DIQ(90505.81,IENS,.02,"E")
  1. .... S BQFIL=$$FILN^BQIDCDF(SOURCE,NAME) Q:BQFIL=""
  1. .... S VALUE=$$GET1^DIQ(BQFIL,VALUE,.01,"E")
  1. ... I PTYP'="T" S VALUE=$$GET1^DIQ(90505.81,IENS,.01,"E")
  1. ... I NAME="SPEC",VALUE'="" D Q:VALUE=""
  1. .... N SPECNM
  1. .... S SPECNM=$$GET1^DIQ(90360.3,VALUE,.01,"I") ;Mnemonic
  1. .... S VALUE=SPECNM
  1. ... S MPARMS(NAME,VALUE)=""
  1. ;
  1. I '$F(DESC,"|") Q ""
  1. I $D(PARMS)<10 Q ""
  1. ;
  1. I $D(MPARMS) D
  1. . S NAME=""
  1. . F S NAME=$O(MPARMS(NAME)) Q:NAME="" D
  1. .. S VAL="",VALS=""
  1. .. F S VAL=$O(MPARMS(NAME,VAL)) Q:VAL="" S VALS=VALS_VAL_", "
  1. .. S VALS=$$TKO^BQIUL1(VALS,", ")
  1. .. S PARMS(NAME)=VALS
  1. ;
  1. S ODESC=DESC,NDESC=DESC
  1. F Q:'$F(NDESC,"|") D PRS
  1. Q PDESC