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

BSTSDSP.m

Go to the documentation of this file.
  1. BSTSDSP ;GDIT/HSCD/BEE-Display BSTS information ; 27 Mar 2015 11:35 AM
  1. ;;2.0;IHS STANDARD TERMINOLOGY;**1**;Dec 01, 2016;Build 36
  1. ;
  1. DSP(SERV) ; EP
  1. ;
  1. I $G(SERV)="" Q
  1. ;
  1. NEW DIR,X,Y,DTOUT,DUOUT,POP,PRCDT,ERRDT,DIRUT,DIROUT,ANS
  1. ;
  1. ;Clear screen
  1. DSP1 W:$G(IOF)]"" @IOF
  1. ;
  1. W "BSTS REPORTING"
  1. W !!,"Select the information to display",!
  1. S DIR(0)="LO^1:6"
  1. S DIR("A")="Select number or return to quit"
  1. S DIR("A",1)="1. Current BSTS status display"
  1. S DIR("A",2)="2. BSTS codeset versions"
  1. S DIR("A",3)="3. Current BSTS processing queue"
  1. S DIR("A",4)="4. BSTS process history"
  1. S DIR("A",5)="5. BSTS error listing"
  1. S DIR("A",6)="6. All of the above information"
  1. S DIR("A",7)=" "
  1. D ^DIR
  1. I Y="" Q
  1. I $G(DTOUT)!$G(DUOUT)!$G(DIRUT)!$G(DIROUT) Q
  1. S ANS=+Y
  1. ;
  1. ;Prompt for process history days
  1. I (ANS=4)!(ANS=6) S PRCDT=$$DATE("completed processes from date") Q:'PRCDT
  1. ;
  1. ;Prompt for error listing days
  1. I (ANS=5)!(ANS=6) S ERRDT=$$DATE("error listing from date") Q:'ERRDT
  1. ;
  1. ;Get maximum errors to display
  1. I (ANS=5)!(ANS=6) S ERMAX=$$EMAX() Q:'ERMAX
  1. ;
  1. ;Get device
  1. S POP="" D ^%ZIS I POP Q
  1. U IO
  1. ;
  1. NEW BSTSRPT
  1. ;
  1. ;Current BSTS status display
  1. I (ANS=1)!(ANS=6) D SET(SERV,.BSTSRPT)
  1. ;
  1. ;Current codeset versions
  1. I (ANS=2)!(ANS=6) D VRSN(.BSTSRPT)
  1. ;
  1. ;Current processing queue
  1. I (ANS=3)!(ANS=6) D QUEUE(.BSTSRPT)
  1. ;
  1. ;Process history
  1. I (ANS=4)!(ANS=6) D HIST(.BSTSRPT,PRCDT)
  1. ;
  1. ;Error listing
  1. I (ANS=5)!(ANS=6) D ELIST(.BSTSRPT,ERRDT,SERV,ERMAX)
  1. ;
  1. S CT=+$O(BSTSRPT(""),-1)
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)="<END OF REPORT>"
  1. ;
  1. ;Display the report
  1. D EN^DDIOL(.BSTSRPT)
  1. ;
  1. ;Close the device
  1. D ^%ZISC
  1. ;
  1. I $D(IOST),IOST["C-",'$D(DIRUT),'$D(DTOUT) D
  1. . NEW DIR,X,Y
  1. . W ! S DIR(0)="E",DIR("A")="Press 'Return to continue'" D ^DIR
  1. ;
  1. G DSP1
  1. ;
  1. VRSN(BSTSRPT) ;Display current codeset version information
  1. ;
  1. NEW CT,CODE,IEN,SPACE
  1. ;
  1. S $P(SPACE," ",80)=" "
  1. ;
  1. ;Get latest entry
  1. S CT=+$O(BSTSRPT(""),-1)
  1. ;
  1. S:CT=0 CT=1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)="Current BSTS Codeset Version Information:"
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT,"F")="!?0",BSTSRPT(CT)=$E(SPACE,1,6)_$E(SPACE,1,20)_$E("CURRENT"_SPACE,1,12)_$E("COMPLETED"_SPACE,1,14)_$E("SUBSET"_SPACE,1,12)
  1. S CT=CT+1,BSTSRPT(CT,"F")="!?0",BSTSRPT(CT)=$E("CODE"_SPACE,1,6)_$E("CODESET"_SPACE,1,20)_$E("VERSION"_SPACE,1,12)_$E("CHECKS"_SPACE,1,14)_$E("RUN"_SPACE,1,12)
  1. ;
  1. S CODE="" F S CODE=$O(^BSTS(9002318.1,"B",CODE)) Q:CODE="" D
  1. . S IEN="" F S IEN=$O(^BSTS(9002318.1,"B",CODE,IEN)) Q:IEN="" D
  1. .. NEW NAME,CVRSN,LVCHK,LSCHK
  1. .. ;
  1. .. S NAME=$$GET1^DIQ(9002318.1,IEN_",",.02) Q:NAME=""
  1. .. S CVRSN=$$GET1^DIQ(9002318.1,IEN_",",.04)
  1. .. S LVCHK=$$GET1^DIQ(9002318.1,IEN_",",.05,"I") S:LVCHK]"" LVCHK=$$FMTE^XLFDT(LVCHK,"2ZD")
  1. .. S LSCHK=$$GET1^DIQ(9002318.1,IEN_",",.1,"I") S:LSCHK]"" LSCHK=$$FMTE^XLFDT(LSCHK,"2ZD")
  1. .. ;
  1. .. S CT=CT+1,BSTSRPT(CT,"F")="!?0",BSTSRPT(CT)=$E(CODE_SPACE,1,6)_$E(NAME_SPACE,1,20)_$E(CVRSN_SPACE,1,12)_$E(LVCHK_SPACE,1,14)_$E(LSCHK_SPACE,1,12)
  1. ;
  1. Q
  1. ;
  1. QUEUE(BSTSRPT) ;Display processing queue
  1. ;
  1. NEW IEN,CT,SPACE,QIEN,ZT1,ZTS,TFND
  1. ;
  1. S $P(SPACE," ",80)=" "
  1. ;
  1. ;Get latest entry
  1. S CT=+$O(BSTSRPT(""),-1)
  1. ;
  1. S:CT=0 CT=1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)="Current BSTS Processing Queue:"
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. ;
  1. ;Check if entry present
  1. I '$O(^XTMP("BSTSPROCQ",0)) D
  1. . S CT=CT+1,BSTSRPT(CT)="No entries currently scheduled to run"
  1. . S CT=CT+1,BSTSRPT(CT)=" "
  1. ;
  1. ;Output Header
  1. I $O(^XTMP("BSTSPROCQ",0)) D
  1. . S CT=CT+1,BSTSRPT(CT)=$E("UPDATE TASK"_SPACE,1,25)_$E("SCHEDULED"_SPACE,1,16)_$E("STARTED"_SPACE,1,16)
  1. . ;
  1. . ;Loop through entries
  1. . S QIEN=0 F S QIEN=$O(^XTMP("BSTSPROCQ",QIEN)) Q:'QIEN D
  1. .. ;
  1. .. ;Process each entry
  1. .. D PRCENTRY(.BSTSRPT,QIEN,"")
  1. ;
  1. S:CT=0 CT=1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)="Scheduled TaskMan BSTS processes:"
  1. S CT=CT+1,BSTSRPT(CT)="(It is normal for a process to be scheduled to run more than once)"
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. ;
  1. ;Get Taskman Processes
  1. S TFND="",ZT1=$$H3^%ZTM($H) F S ZT1=$O(^%ZTSCH(ZT1)) Q:'ZT1 D
  1. . S ZTS=0 F S ZTS=$O(^%ZTSCH(ZT1,ZTS)) Q:'ZTS D
  1. .. ;
  1. .. NEW TASKND,SCHDT,RUNDT
  1. .. ;
  1. .. ;Get the task
  1. .. S TASKND=$G(^%ZTSK(ZTS,0)) Q:TASKND=""
  1. .. I $P(TASKND,U,2)'="BSTSVOFL",$P(TASKND,U,2)'="BSTSVOF1",$P(TASKND,U,2)'="BSTSVRSN" Q
  1. .. ;
  1. .. ;Output Header
  1. .. I 'TFND S CT=CT+1,BSTSRPT(CT)=$E("TASKMAN TASK"_SPACE,1,25)_$E("SCHEDULED"_SPACE,1,16)_$E("RUN AT"_SPACE,1,16)
  1. .. ;
  1. .. S SCHDT=$$HTFM^XLFDT($P(TASKND,U,5))
  1. .. S RUNDT=$$HTFM^XLFDT($P(TASKND,U,6))
  1. .. S TFND=1
  1. .. ;
  1. .. S CT=CT+1,BSTSRPT(CT)=$E($P(TASKND,U)_"^"_$P(TASKND,U,2)_SPACE,1,25)_$E($$FMTE^XLFDT(SCHDT,"2ZM")_SPACE,1,16)_$E($$FMTE^XLFDT(RUNDT,"2ZM")_SPACE,1,16)
  1. ;
  1. I 'TFND D
  1. . S CT=CT+1,BSTSRPT(CT)="No scheduled TaskMan tasks"
  1. ;
  1. Q
  1. ;
  1. HIST(BSTSRPT,BDT) ;Display process history
  1. ;
  1. NEW IEN,CT,SPACE,PDATE,QIEN,FND
  1. ;
  1. S $P(SPACE," ",80)=" "
  1. ;
  1. ;Get latest entry
  1. S CT=+$O(BSTSRPT(""),-1)
  1. ;
  1. S:CT=0 CT=1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)="BSTS Processing History: "_$$FMTE^XLFDT(BDT,"2ZD")_" to present"
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. ;
  1. ;Check if entry present
  1. I '$D(^XTMP("BSTSPROCQ","PD")) D Q
  1. . S CT=CT+1,BSTSRPT(CT)="No automatic BSTS tasks have been run"
  1. ;
  1. ;Output Header
  1. S CT=CT+1,BSTSRPT(CT)=$E("UPDATE"_SPACE,1,25)_$E("SCHEDULED"_SPACE,1,16)_$E("STARTED"_SPACE,1,16)_$E("COMPLETED"_SPACE,1,16)
  1. ;
  1. ;Loop through entries
  1. S PDATE="" F S PDATE=$O(^XTMP("BSTSPROCQ","PD",PDATE),-1) Q:PDATE=""!(PDATE<BDT) D
  1. . S QIEN="" F S QIEN=$O(^XTMP("BSTSPROCQ","PD",PDATE,QIEN),-1) Q:'QIEN D
  1. .. ;
  1. .. ;Process each entry
  1. .. D PRCENTRY(.BSTSRPT,QIEN,"P")
  1. ;
  1. ;Check if manual history entry present
  1. ;
  1. ;Output Header
  1. ;
  1. ;Loop through entries
  1. S (FND,PDATE)="" F S PDATE=$O(^XTMP("BSTSPROCQ","M","D",PDATE),-1) Q:PDATE=""!(PDATE<BDT) D
  1. . S QIEN="" F S QIEN=$O(^XTMP("BSTSPROCQ","M","D",PDATE,QIEN),-1) Q:'QIEN D
  1. .. ;
  1. .. NEW XDATE,MNODE,MUSER,MACT
  1. .. ;
  1. .. ;Process each entry
  1. .. S MNODE=$G(^XTMP("BSTSPROCQ","M",QIEN))
  1. .. S MUSER=$E($P(MNODE,U,2),1,25)
  1. .. S MACT=$E($P(MNODE,U,3),1,35)
  1. .. S XDATE=PDATE S:XDATE]"" XDATE=$$FMTE^XLFDT(XDATE,"2ZM")
  1. .. ;
  1. .. ;Display header
  1. .. I 'FND D
  1. ... S CT=CT+1,BSTSRPT(CT)=" "
  1. ... S CT=CT+1,BSTSRPT(CT)="Manual Processes"
  1. ... S CT=CT+1,BSTSRPT(CT)=" "
  1. ... S CT=CT+1,BSTSRPT(CT)=$E("STARTED"_SPACE,1,16)_$E("USER"_SPACE,1,25)_$E("ACTION"_SPACE,1,35)
  1. .. S CT=CT+1,BSTSRPT(CT)=$E(XDATE_SPACE,1,16)_$E(MUSER_SPACE,1,25)_$E(MACT_SPACE,1,35),FND=1
  1. ;
  1. Q
  1. ;
  1. ELIST(BSTSRPT,BDT,SERV,ERMAX) ;Display error listing
  1. ;
  1. NEW IEN,CT,SPACE,PDATE,EIEN,MAX
  1. ;
  1. S $P(SPACE," ",80)=" ",MAX=1
  1. ;
  1. ;Get latest entry
  1. S CT=+$O(BSTSRPT(""),-1)
  1. ;
  1. S:CT=0 CT=1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)="BSTS error listing: "_$$FMTE^XLFDT(BDT,"2ZD")_" to present. Last "_ERMAX_" errors"
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. ;
  1. ;Check if entry present
  1. I '$D(^BSTS(9002318.2,SERV,5,"B")) D Q
  1. . S CT=CT+1,BSTSRPT(CT)="No errors recorded during that specified time period"
  1. ;
  1. ;Output Header
  1. S CT=CT+1,BSTSRPT(CT)=$E("ERROR DATE"_SPACE,1,16)_$E("ERROR MESSAGE"_SPACE,1,25)
  1. ;
  1. ;Loop through entries
  1. S PDATE="" F S PDATE=$O(^BSTS(9002318.2,SERV,5,"B",PDATE),-1) Q:PDATE=""!(PDATE<BDT) D Q:MAX'<ERMAX
  1. . S EIEN="" F S EIEN=$O(^BSTS(9002318.2,SERV,5,"B",PDATE,EIEN),-1) Q:'EIEN D Q:MAX'<ERMAX
  1. .. ;
  1. .. NEW XDATE,DA,IENS,TMSG,TIME
  1. .. ;
  1. .. ;Process each entry
  1. .. S XDATE=PDATE S:XDATE]"" XDATE=$$FMTE^XLFDT(XDATE,"2ZM")
  1. .. S DA(1)=SERV,DA=EIEN,IENS=$$IENS^DILF(.DA)
  1. .. S TMSG=$$GET1^DIQ(9002318.25,IENS,".02","I")
  1. .. ;
  1. .. S CT=CT+1,BSTSRPT(CT)=$E(XDATE_SPACE,1,16)_$E(TMSG_SPACE,1,60)
  1. .. F S TMSG=$E(TMSG,61,$L(TMSG)) Q:TMSG="" D
  1. ... S CT=CT+1,BSTSRPT(CT,"F")="!?16"
  1. ... S BSTSRPT(CT)=$E(TMSG,1,60)
  1. ... S MAX=MAX+1
  1. ;
  1. Q
  1. ;
  1. PRCENTRY(BSTSRPT,QIEN,TYPE) ;Format one BSTS task entry
  1. ;
  1. S TYPE=$G(TYPE)
  1. ;
  1. NEW SPACE,ENTRY,UPDATE,START,SCHED,END
  1. ;
  1. S $P(SPACE," ",80)=" "
  1. ;
  1. ;Pull entry information
  1. I $G(TYPE)'="P" M ENTRY=^XTMP("BSTSPROCQ",QIEN) ;Queued entry
  1. E M ENTRY=^XTMP("BSTSPROCQ","P",QIEN) ;Completed entry
  1. ;
  1. S UPDATE=$G(ENTRY("RTN")) I $TR(UPDATE," ")="" Q
  1. S SCHED=$G(ENTRY("SCHED")) S:SCHED]"" SCHED=$$FMTE^XLFDT(SCHED,"2ZM")
  1. S START=$G(ENTRY("START")) S:START]"" START=$$FMTE^XLFDT(START,"2ZM")
  1. S END=$G(ENTRY("END")) S:END]"" END=$$FMTE^XLFDT(END,"2ZM")
  1. ;
  1. S CT=CT+1,BSTSRPT(CT)=$E(UPDATE_SPACE,1,25)_$E(SCHED_SPACE,1,16)_$E(START_SPACE,1,16)_$S(END]"":$E(END_SPACE,1,16),1:"")
  1. Q
  1. ;
  1. DATE(PROMPT,DEF,FDT) ;Prompt for from date
  1. ;
  1. I $G(PROMPT)="" Q ""
  1. S DEF=$G(DEF)
  1. S FDT=$G(FDT)
  1. ;
  1. NEW DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y
  1. ;
  1. DT1 W !
  1. S DIR(0)="D^:"_DT_"^"
  1. S DIR("A")="Display "_PROMPT_": "
  1. I DEF]"" S DIR("B")=DEF
  1. E S DIR("B")="T-7"
  1. D ^DIR
  1. I Y="" Q ""
  1. I $G(DTOUT)!$G(DUOUT)!$G(DIRUT)!$G(DIROUT) Q ""
  1. ;
  1. ;Check for future dates
  1. I FDT]"",Y<FDT W !!,"<TO Date Must Be After From Date>" H 3 G DT1
  1. ;
  1. Q Y
  1. ;
  1. EMAX() ;Prompt for maximum errors to display
  1. ;
  1. NEW DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y
  1. ;
  1. W !
  1. S DIR(0)="N^1:9999:4"
  1. S DIR("A")="Maximum number of errors to return: "
  1. S DIR("B")="25"
  1. D ^DIR
  1. I Y="" Q ""
  1. I $G(DTOUT)!$G(DUOUT)!$G(DIRUT)!$G(DIROUT) Q ""
  1. ;
  1. Q Y
  1. ;
  1. SET(SERV,BSTSRPT) ;Return site/server settings
  1. ;
  1. I '+$G(SERV) Q
  1. ;
  1. NEW SDATA,DTSON,CT,FLD,SIEN
  1. ;
  1. S SDATA=^BSTS(9002318.2,SERV,0)
  1. S DTSON=$P(SDATA,"^",13)
  1. I DTSON="" D
  1. . D CHK^BSTSSTA
  1. . S SDATA=^BSTS(9002318.2,SERV,0)
  1. . S DTSON=$P(SDATA,"^",13)
  1. ;
  1. ;Get latest entry
  1. S CT=+$O(BSTSRPT(""),-1)
  1. ;
  1. S:CT=0 CT=1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. S CT=CT+1,BSTSRPT(1)="Current Server Status:"
  1. S CT=CT+1,BSTSRPT(CT,"F")="!?5",BSTSRPT(CT)="Web Service: "
  1. S CT=CT+1,BSTSRPT(CT,"F")="?25",BSTSRPT(CT)=$P(SDATA,"^",1)
  1. S CT=CT+1,BSTSRPT(CT,"F")="!?5",BSTSRPT(CT)="Current Status: "
  1. S CT=CT+1,BSTSRPT(CT,"F")="?25",BSTSRPT(CT)=$S(DTSON="":"ONLINE",1:"OFFLINE")
  1. S CT=CT+1,BSTSRPT(CT,"F")="!?5",BSTSRPT(CT)="Offline Until: "
  1. S CT=CT+1,BSTSRPT(CT,"F")="?25",BSTSRPT(CT)=$S(DTSON="":"N/A",1:$$FMTE^XLFDT(DTSON))
  1. S CT=CT+1,BSTSRPT(CT,"F")="!?5",BSTSRPT(CT)="Last Error Message: "
  1. S CT=CT+1,BSTSRPT(CT,"F")="?25",BSTSRPT(CT)=$S(DTSON="":"N/A",1:$$GET1^DIQ(9002318.2,SERV_",",3,"E"))
  1. ;
  1. ;Check if any processes are running
  1. L +^BSTS(9002318.1,0):0 E D
  1. . S CT=CT+1,BSTSRPT(CT,"F")="!?5",BSTSRPT(CT)="Background process: "
  1. . S CT=CT+1,BSTSRPT(CT,"F")="?25",BSTSRPT(CT)=$P($G(^XTMP("BSTSLCMP",0)),U,3)
  1. . I $G(^XTMP("BSTSLCMP","STS"))]"" S CT=CT+1,BSTSRPT(CT,"F")="!?25",BSTSRPT(CT)=$G(^XTMP("BSTSLCMP","STS"))
  1. L -^BSTS(9002318.1,0)
  1. ;
  1. ;Check if Description Id Population Utility is running
  1. L +^XTMP("BSTSCFIX"):0 E D
  1. . NEW RUN
  1. . S CT=CT+1,BSTSRPT(CT,"F")="!?5",BSTSRPT(CT)="Background process: "
  1. . S CT=CT+1,BSTSRPT(CT,"F")="?25",BSTSRPT(CT)="Description Id Population Utility is running"
  1. . S RUN=$G(^XTMP("BSTSCFIX","RUN")) Q:RUN=""
  1. . I $G(^XTMP("BSTSCFIX",RUN,"STS"))]"" S CT=CT+1,BSTSRPT(CT,"F")="!?25",BSTSRPT(CT)=$G(^XTMP("BSTSCFIX",RUN,"STS"))
  1. L -^XTMP("BSTSCFIX")
  1. ;
  1. ;Check if ICD9 to SNOMED process is running
  1. L +^TMP("BSTSICD2SMD"):0 E D
  1. . S CT=CT+1,BSTSRPT(CT,"F")="!?5",BSTSRPT(CT)="Background process: "
  1. . S CT=CT+1,BSTSRPT(CT,"F")="?25",BSTSRPT(CT)="ICD9 to SNOMED process is running"
  1. L -^TMP("BSTSICD2SMD")
  1. ;
  1. ;Check if install conversion process is running
  1. L +^TMP("BSTSPBFH"):0 E D
  1. . S CT=CT+1,BSTSRPT(CT,"F")="!?5",BSTSRPT(CT)="Background process: "
  1. . S CT=CT+1,BSTSRPT(CT,"F")="?25",BSTSRPT(CT)="Installation conversion process is running"
  1. L -^TMP("BSTSPBFH")
  1. ;
  1. S CT=CT+1,BSTSRPT(CT,"F")="!!",BSTSRPT(CT)="Current Server Settings: "
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. ;
  1. ;Site Parameters
  1. S CT=CT+1,BSTSRPT(CT,"F")="!!",BSTSRPT(CT)="Site Parameters"
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. F FLD=.01,.02,.03 D
  1. . S CT=CT+1,BSTSRPT(CT,"F")="!?2",BSTSRPT(CT)=$P($G(^DD(9002318,FLD,0)),U)_": "
  1. . S CT=CT+1,BSTSRPT(CT,"F")="?32",BSTSRPT(CT)=$$GET1^DIQ(9002318,"1,",FLD,"E")
  1. S SIEN=0 F S SIEN=$O(^BSTS(9002318,1,1,SIEN)) Q:'SIEN D
  1. . F FLD=.01,.02,.03 D
  1. .. NEW IENS,DA
  1. .. S DA(1)=1,DA=SIEN,IENS=$$IENS^DILF(.DA)
  1. .. I FLD=.01 S CT=CT+1,BSTSRPT(CT)=" "
  1. .. S CT=CT+1,BSTSRPT(CT,"F")="!?2",BSTSRPT(CT)=$P($G(^DD(9002318.01,FLD,0)),U)_": "
  1. .. S CT=CT+1,BSTSRPT(CT,"F")="?32",BSTSRPT(CT)=$$GET1^DIQ(9002318.01,IENS,FLD,"E")
  1. ;
  1. ;Web Service
  1. S CT=CT+1,BSTSRPT(CT,"F")="!!",BSTSRPT(CT)="Selected Web Service"
  1. S CT=CT+1,BSTSRPT(CT)=" "
  1. F FLD=.01,.02,.03,.04,.05,.06,.07,.08,.09,.1,.11,.12,.13,.14,.15,2.01,4.01,4.02,4.03 D
  1. . S CT=CT+1,BSTSRPT(CT,"F")="!?2",BSTSRPT(CT)=$P($G(^DD(9002318.2,FLD,0)),U)_": "
  1. . S CT=CT+1,BSTSRPT(CT,"F")="?32",BSTSRPT(CT)=$$GET1^DIQ(9002318.2,SERV_",",FLD,"E")
  1. ;
  1. Q