- PSODEAMA ;DAL/JCH - Manually Entered DEA Report ;08/16/2021
- ;;7.0;OUTPATIENT PHARMACY;**545,731**;DEC 1997;Build 18
- ;External reference to DEA NUMBERS file (#8991.9) is supported by DBIA 7002
- ;External reference to XUEPCS DATA file (#8991.6) is supported by DBIA 7015
- ;
- Q
- ;
- ENTRY ; Entry Point
- ;
- N PSODONE,PSOHEAD,PSORTYPE
- S PSODONE=0,PSOHEAD="Manually Entered DEA Report"
- D MESSAGE
- D ASK(.PSORTYPE,.PSODONE) Q:$G(PSODONE)
- D DEVICE(.PSODONE) Q:PSODONE ; Print to device
- D PROCESS
- Q
- ;
- PROCESS ; Process and Print Report Data
- D RUN
- D OUT
- D CLOSE
- D EXIT
- Q
- ;
- MESSAGE ; Option informatoin
- ;
- W !!,"This option lists DEA numbers that were added/edited via the Manual DEA Number"
- W !,"Entry [PSO EPCS DEA MANUAL ENTRY] option and were not subsequently updated"
- W !,"using the Add New Providers [PSO PROVIDER ADD] option or the Edit Provider"
- W !,"[PSO PROVIDER EDIT] option while the PSO DOJ/DEA WEB SERVICE was running."
- W !!,"Manually entered DEA numbers are removed from this list after they are edited"
- W !,"using the Add New Providers [PSO PROVIDER ADD] option or the Edit Provider"
- W !,"[PSO PROVIDER EDIT] option while the PSO DOJ/DEA WEB SERVICE is running."
- Q
- ;
- ASK(PSORTYPE,PSODONE) ; Ask user's report options
- ; Summary or Detailed Report
- N DIR,X,Y
- S DIR(0)="S^S:Summary;D:Detailed",DIR("A")="Report Type" D ^DIR K DIR I $D(DIRUT) S PSODONE=1 Q
- S PSORTYPE=Y,PSOHEAD=PSOHEAD_$S(Y="S":"(Summary)",1:"(Detailed)")
- Q
- ;
- RUN ; Run Report
- N DEATXT,PSOLINE,WSDWN
- S PSOLINE=1,WSDWN=0
- D GATHER
- S DEATXT="" F S DEATXT=$O(^TMP($J,"PSODEAMA","DEA",DEATXT)) Q:DEATXT="" D
- .N IEN,IENS,WSAR,MANAR
- .S IEN=+$G(^TMP($J,"PSODEAMA","DEA",DEATXT)),IENS=IEN_","
- .D GETMAN(IENS,.MANAR)
- .I DEATXT'="" D GETWS(DEATXT,.WSAR,.WSDWN)
- .D COMPILE(.MANAR,.WSAR,.PSOLINE,PSORTYPE)
- Q PSODONE
- ;
- GATHER ; Identify Manually entered DEA #'s
- N DEAIEN,DEATXT,PSODONE S PSODONE=0
- K ^TMP($J,"PSODEAMA")
- S DEAIEN=0 F S DEAIEN=$O(^XTV(8991.9,DEAIEN)) Q:'DEAIEN!$G(PSODONE) D
- .N RETURN,ERROR,FIELDS,DOJUPDT,IENS,MANAR,WSAR,DEATXT,WSDWN
- .S IENS=DEAIEN_","
- .Q:$$GET1^DIQ(8991.9,IENS,10.3,"I") ; Quit if Last Updated by PSO DOJ/DEA WEB SERVICE
- .S DEATXT=$$GET1^DIQ(8991.9,IENS,.01,"E")
- .S ^TMP($J,"PSODEAMA","DEA",DEATXT)=DEAIEN
- Q
- ;
- GETMAN(IENS,MANAR) ; Get one manually entered DEA number from DEA NUMBERS file (#8991.9)
- N TMPAR
- ;S FIELDS=".01;.02;.03;.04;.05;.06;.07;1.1;1.2;1.3;1.4;1.5;1.6;1.7;2.1;2.2;2.3;2.4;2.5;2.6;10.1;10.2;10.3" ;P731 detox/x-waiver removal
- S FIELDS=".01;.02;.04;.05;.06;.07;1.1;1.2;1.3;1.4;1.5;1.6;1.7;2.1;2.2;2.3;2.4;2.5;2.6;10.1;10.2;10.3"
- D GETS^DIQ(8991.9,IENS,FIELDS,,"MANAR","ERROR")
- M TMPAR=MANAR(8991.9,IENS) K MANAR M MANAR=TMPAR
- Q
- ;
- GETWS(DEATXT,WSAR,WSDWN) ; Get one DEA#'s information from Web Service
- N RETURN,NOMORE,FLD,TXTLN
- S NOMORE=0
- I '$G(WSDWN) S RETURN=$$WSGET^PSODEAUT(.WSAR,DEATXT)
- S RETURN=$G(RETURN)
- I $P(RETURN,U,3)=6059 S WSDWN=1 ; Web Service Down
- I (RETURN["DEA NUMBER NOT FOUND")!$G(WSDWN) D Q
- .F TXTLN=1:1:999 Q:NOMORE S FLD=$P($T(JSONFLDS+TXTLN),";",2) D
- ..I FLD="***" S NOMORE=1 Q
- ..I FLD="deaNumber" S WSAR(FLD)=$S($G(WSDWN):"Unable to Connect",1:"Not Found") Q
- ..S WSAR(FLD)="**"
- Q
- ;
- COMPILE(MANAR,WSAR,PSOLINE,PSORTYPE) ; Print results
- N DS,DSII,DSIIN,DSIII,DSIIIN,DSIV,DSV,COL1IN,COL2IN,PSEXPDTE,PSDTRSLT,BAC,PSDTXDOJ,PSTYPE
- N PRNAM,PRNO,PRNOCONTXT,XIP
- S COL1IN=20,COL2IN=21
- ;
- S ^TMP($J,"PSODEAMA","OUT",PSOLINE)="",PSOLINE=PSOLINE+1
- S PRNOCONTXT="Unable to Connect"
- ;
- S PRNO=$$ASSIGNED(MANAR(.01))
- S ^TMP($J,"PSODEAMA","OUT",PSOLINE)="DEA Number "_MANAR(.01)_$S(PRNO:" assigned to "_$P(PRNO,U,2)_" (IEN: "_+PRNO_")",1:" not assigned to any providers.")
- S PSOLINE=PSOLINE+1
- ;
- Q:$G(PSORTYPE)="S"
- ;
- S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("FIELD NAME",COL1IN)_$$LJ^XLFSTR("DOJ VALUE",COL2IN)_"LOCAL VISTA VALUE (Manual)"
- S PSOLINE=PSOLINE+1
- S $P(^TMP($J,"PSODEAMA","OUT",PSOLINE),"-",75)="-"
- S PSOLINE=PSOLINE+1
- S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("DEA NUMBER: ",COL1IN)_$$LJ^XLFSTR(WSAR("deaNumber"),COL2IN)_MANAR(.01)
- S PSOLINE=PSOLINE+1
- I WSAR("name")'=MANAR(1.1) D
- .I $G(WSDWN) S WSAR("name")=PRNOCONTXT Q
- . S:$E(WSAR("name"),$L(WSAR("name")))'="*" WSAR("name")=WSAR("name")_"**"
- S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("NAME: ",COL1IN)_$$LJ^XLFSTR(WSAR("name"),COL2IN)_MANAR(1.1)
- S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(WSAR("address1"),MANAR(1.2)) D
- . I WSAR("address1")'=MANAR(1.2) D
- .. I $G(WSDWN) S WSAR("address1")=PRNOCONTXT Q
- .. S:WSAR("address1")'="**" WSAR("address1")=WSAR("address1")_"**"
- . S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ADDRESS 1:",COL1IN)_$$LJ^XLFSTR(WSAR("address1"),COL2IN)_MANAR(1.2)
- . S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(WSAR("address2"),MANAR(1.3)) D
- .I WSAR("address2")'=MANAR(1.3) D
- .. I $G(WSDWN) S WSAR("address2")=PRNOCONTXT Q
- .. S:WSAR("address2")'="**" WSAR("address2")=WSAR("address2")_"**"
- .S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ADDRESS 2:",COL1IN)_$$LJ^XLFSTR(WSAR("address2"),COL2IN)_MANAR(1.3)
- .S PSOLINE=PSOLINE+1
- ;;
- ;I $$NULLCHK(WSAR("address3"),MANAR(1.4)) D
- ;.I WSAR("address3")'=MANAR(1.4) S:WSAR("address3")'="**" WSAR("address3")=WSAR("address3")_"**"
- ;.S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ADDRESS 3:",COL1IN)_$$LJ^XLFSTR(WSAR("address3"),COL2IN)_MANAR(1.4)
- ;.S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(WSAR("city"),MANAR(1.5)) D
- . I WSAR("city")'=MANAR(1.5) D
- .. I $G(WSDWN) S WSAR("city")=PRNOCONTXT Q
- .. S:WSAR("city")'="**" WSAR("city")=WSAR("city")_"**"
- . S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("CITY:",COL1IN)_$$LJ^XLFSTR(WSAR("city"),COL2IN)_MANAR(1.5)
- . S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(WSAR("state"),MANAR(1.6)) D
- . D POSTAL^XIPUTIL($G(WSAR("zipCode")),.XIP) S XSTATE=$G(XIP("STATE"))
- . I XSTATE'=MANAR(1.6) D
- .. I $G(WSDWN) S XSTATE=PRNOCONTXT Q
- .. S:XSTATE'="**" XSTATE=XSTATE_"**"
- . S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("STATE:",COL1IN)_$$LJ^XLFSTR(XSTATE,COL2IN)_MANAR(1.6)
- . S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(WSAR("zipCode"),MANAR(1.7)) D
- . I WSAR("zipCode")'=MANAR(1.7) D
- .. I $G(WSDWN) S WSAR("zipCode")=PRNOCONTXT Q
- .. S:WSAR("zipCode")'="**" WSAR("zipCode")=WSAR("zipCode")_"**"
- . S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ZIP:",COL1IN)_$$LJ^XLFSTR(WSAR("zipCode"),COL2IN)_MANAR(1.7)
- . S PSOLINE=PSOLINE+1
- ;
- S BAC=$S($G(WSAR("businessActivityCode"))="**":"",1:$G(WSAR("businessActivityCode")))_$S($G(WSAR("businessActivitySubcode"))="**":"",1:$G(WSAR("businessActivitySubcode")))
- S DEA=WSAR("deaNumber"),PSDTXDOJ=""
- I BAC?1U S BAC=BAC_0
- I BAC'=MANAR(.02) D
- . I $G(WSDWN) S BAC=PRNOCONTXT Q
- . S:BAC'="**" BAC=BAC_"**"
- I $$NULLCHK(BAC,MANAR(.02)) D
- . S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ACTIVITY CODE:",COL1IN)_$$LJ^XLFSTR(BAC,COL2IN)_MANAR(.02)
- . S PSOLINE=PSOLINE+1
- ;
- S PSTYPE=BAC I $TR(PSTYPE,"*")'="" S PSTYPE=$P($$PROVTYPE^PSODEAUT(PSTYPE),"^",2)
- I $$NULLCHK(WSAR("businessActivityCode"),MANAR(.07)) D
- . I $G(WSDWN) S PSTYPE=PRNOCONTXT
- . I '$G(WSDWN),(PSTYPE'=MANAR(.07)) S:$E(PSTYPE,$L(PSTYPE))'="*" PSTYPE=PSTYPE_"**"
- . S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("TYPE:",COL1IN)_$$LJ^XLFSTR(PSTYPE,COL2IN)_MANAR(.07)
- . S PSOLINE=PSOLINE+1
- ;
- ;P731 detox/x-waiver removal
- ;S BAC=$G(WSAR("businessActivityCode"))_WSAR("businessActivitySubcode")
- ;I $$NULLCHK(BAC,DEA) S PSDTXDOJ=$S($$DETOXCHK^PSODEAUT(BAC):"X"_$E(MANAR(.01),2,9),1:"")
- ;I $$NULLCHK(PSDTXDOJ,MANAR(.03)) D
- ;. I $G(WSDWN) S PSDTXDOJ=PRNOCONTXT
- ;. I '$G(WSDWN),(PSDTXDOJ'=MANAR(.03)) S:$E(PSDTXDOJ,$L(PSDTXDOJ))'="*" PSDTXDOJ=PSDTXDOJ_"**"
- ;. S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("DETOX NUMBER:",COL1IN)_$$LJ^XLFSTR(PSDTXDOJ,COL2IN)_MANAR(.03)
- ;. S PSOLINE=PSOLINE+1
- ;
- S (PSDTRSLT,PSDTRSLT(0))=""
- I $$NULLCHK(WSAR("expirationDate"),MANAR(.04)) D DT^DILF("E",$G(WSAR("expirationDate")),.PSDTRSLT)
- I $G(WSDWN) S PSDTRSLT(0)=PRNOCONTXT
- I '$G(WSDWN),(PSDTRSLT(0)'=MANAR(.04)) S:PSDTRSLT(0)'="**" PSDTRSLT(0)=PSDTRSLT(0)_"**"
- S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("EXPIRATION DATE:",COL1IN)_$$LJ^XLFSTR($G(PSDTRSLT(0)),COL2IN)_MANAR(.04)
- S PSOLINE=PSOLINE+1
- ;
- S DS=WSAR("drugSchedule")
- ;
- I $$NULLCHK(DS,MANAR(2.1)) D
- .I $G(WSDWN) S DSII=PRNOCONTXT
- .I '$G(WSDWN) D
- .. S DSII=$S(DS["22N":"YES",(DS["2"&(DS'["2N")):"YES",DS="**":"",1:"NO")
- .. S DSII=$G(DSII)_$S($G(DSII)'=$G(MANAR(2.1)):"**",1:"")
- .S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH II NARC:",COL1IN)_$$LJ^XLFSTR(DSII,COL2IN)_MANAR(2.1)
- .S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(DS,MANAR(2.2)) D
- .I $G(WSDWN) S DSIIN=PRNOCONTXT
- .I '$G(WSDWN) D
- .. S DSIIN=$S(DS["2N":"YES",DS="**":"",1:"NO")
- .. S DSIIN=DSIIN_$S(DSIIN'=$G(MANAR(2.2)):"**",1:"")
- .S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH II NON-NARC:",COL1IN)_$$LJ^XLFSTR(DSIIN,COL2IN)_MANAR(2.2)
- .S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(DS,MANAR(2.3)) D
- .I $G(WSDWN) S DSIII=PRNOCONTXT
- .I '$G(WSDWN) D
- .. S DSIII=$S(DS="**":"",DS["33N":"YES",DS["3"&(DS'["3N"):"YES",1:"NO")
- .. S DSIII=DSIII_$S(DSIII'=$G(MANAR(2.3)):"**",1:"")
- .S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH III NARC:",COL1IN)_$$LJ^XLFSTR(DSIII,COL2IN)_MANAR(2.3)
- .S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(DS,MANAR(2.4)) D
- .I $G(WSDWN) S DSIIIN=PRNOCONTXT
- .I '$G(WSDWN) D
- .. S DSIIIN=$S(DS="**":"",DS["3N":"YES",1:"NO")
- .. S DSIIIN=DSIIIN_$S(DSIIIN'=$G(MANAR(2.4)):"**",1:"")
- .S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH III NON-NARC:",COL1IN)_$$LJ^XLFSTR(DSIIIN,COL2IN)_MANAR(2.4)
- .S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(DS,MANAR(2.5)) D
- .I $G(WSDWN) S DSIV=PRNOCONTXT
- .I '$G(WSDWN) D
- .. S DSIV=$S(DS="**":"",DS["4":"YES",1:"NO")
- .. S DSIV=DSIV_$S(DSIV'=$G(MANAR(2.5)):"**",1:"")
- .S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH IV:",COL1IN)_$$LJ^XLFSTR(DSIV,COL2IN)_MANAR(2.5)
- .S PSOLINE=PSOLINE+1
- ;
- I $$NULLCHK(DS,MANAR(2.6)) D
- .I $G(WSDWN) S DSV=PRNOCONTXT
- .I '$G(WSDWN) D
- .. S DSV=$S(DS="**":"",DS["5":"YES",1:"NO") ; SCHEDULE V
- .. S DSV=DSV_$S(DSV'=$G(MANAR(2.6)):"**",1:"")
- .S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH V:",COL1IN)_$$LJ^XLFSTR(DSV,COL2IN)_MANAR(2.6)
- .S PSOLINE=PSOLINE+1
- ;
- Q
- ;
- OUT ; Write Output
- N PSOLINE,PSOPAGE,DIR,Y,PSODONE,PSOQ
- S PSOLINE=0,PSOPAGE=1
- I $D(IO("Q")) D CLEAR^VALM1
- U IO
- F S PSOLINE=$O(^TMP($J,"PSODEAMA","OUT",PSOLINE)) Q:'PSOLINE!$G(PSODONE) D
- . I PSOLINE>1 D
- .. I ($G(PSORTYPE)'="S") I ^TMP($J,"PSODEAMA","OUT",PSOLINE)="" D Q:$G(PSODONE)
- ... S PSODONE=$$CHKP(.PSOPAGE,PSOHEAD,PSORTYPE) Q:$G(PSODONE)
- .. I $G(PSORTYPE)="S" S PSODONE=$$CHKP(.PSOPAGE,PSOHEAD,PSORTYPE) Q:$G(PSODONE)
- . I PSOLINE=1 D HDR(.PSOPAGE,PSOHEAD,PSORTYPE)
- . W !,^TMP($J,"PSODEAMA","OUT",PSOLINE)
- I '$G(PSODONE) S PSODONE=$$CHKP(0)
- Q
- ;
- DEVICE(PSODONE) ; Request Device Information
- N %ZIS,IOP,ZTSK,ZTRTN,ZTIO,ZTDESC,ZTSAVE,POP,RTN,VAR
- K IO("Q")
- S %ZIS="QM"
- W ! D ^%ZIS I POP S PSODONE=1 Q
- I $D(IO("Q")) D
- . S RTN=$P($T(+1)," ",1)
- . S ZTRTN="PROCESS^PSODEAMA"
- . S ZTIO=ION
- . S ZTSAVE("PS*")=""
- . S ZTDESC="MANUAL DEA ENTRY REPORT"
- . D ^%ZTLOAD W !,$S($D(ZTSK):"Report is Queued to print (Task "_ZTSK_")",1:"REQUEST CANCELLED") K ZTSK
- . S PSODONE=1
- Q
- ;
- NULLCHK(DOJVAL,VISTAVAL) ; Check for null value, filter out askterisks
- I $TR(DOJVAL,"*")]"" Q 1
- I VISTAVAL'="" Q 1
- Q 0
- ;
- ASSIGNED(DEA) ; Is the DEA number assigned to a provider?
- N PRNO,PRNAM
- Q:'$$VALN1DEA^XUSER3(DEA) 0
- S PRNO="" S PRNO=$O(^VA(200,"PS4",DEA,PRNO))
- S PRNAM=$$GET1^DIQ(200,PRNO,.01)
- Q PRNO_U_PRNAM
- ;
- CHKP(PSOPAGE,PSOHEAD,PSORTYPE) ; Check for End Of Page
- N PSOSCPAD S PSOSCPAD=$S($G(PSORTYPE)="D":15,1:6)
- I $G(PSOPAGE) Q:'($Y>(IOSL-PSOSCPAD)) 0
- S PSOQ=0
- W !
- I $E(IOST)="C" D Q:$G(PSOQ) PSOQ
- . N X,Y,DTOUT,DUOUT,DIRUT,DIR
- . U IO(0) S DIR(0)="E" D ^DIR K DIR S:$D(DIRUT) PSOQ=1
- . U IO
- I $G(PSOPAGE) D HDR(.PSOPAGE,PSOHEAD,PSORTYPE)
- Q PSOQ
- ;
- HDR(PSOPAGE,PSOHEAD,PSORTYPE) ; Print Header
- N X
- W @IOF,PSOHEAD,?40,"Run Date: ",$$FMTE^XLFDT(DT,"5DZ"),$$RJ^XLFSTR("Page "_PSOPAGE,12)
- S X="",$P(X,"=",79)="" W !,X
- I $G(PSORTYPE)="D" D
- . W !,"Asterisks ""**"" indicate the local value does not match the DOJ value."
- S PSOPAGE=$G(PSOPAGE)+1
- Q
- ;
- EXIT ; Clean up
- K ^TMP($J)
- D CLOSE
- Q
- ;
- CLOSE D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
- Q
- ;
- JSONFLDS ; JSON fields returned by web service
- ;address1
- ;address2
- ;address3
- ;businessActivityCode
- ;businessActivitySubcode
- ;city
- ;deaNumber
- ;drugSchedule
- ;expirationDate
- ;name
- ;processedDate
- ;state
- ;type
- ;zipCode
- ;***
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSODEAMA 12719 printed Feb 18, 2025@23:53:01 Page 2
- PSODEAMA ;DAL/JCH - Manually Entered DEA Report ;08/16/2021
- +1 ;;7.0;OUTPATIENT PHARMACY;**545,731**;DEC 1997;Build 18
- +2 ;External reference to DEA NUMBERS file (#8991.9) is supported by DBIA 7002
- +3 ;External reference to XUEPCS DATA file (#8991.6) is supported by DBIA 7015
- +4 ;
- +5 QUIT
- +6 ;
- ENTRY ; Entry Point
- +1 ;
- +2 NEW PSODONE,PSOHEAD,PSORTYPE
- +3 SET PSODONE=0
- SET PSOHEAD="Manually Entered DEA Report"
- +4 DO MESSAGE
- +5 DO ASK(.PSORTYPE,.PSODONE)
- if $GET(PSODONE)
- QUIT
- +6 ; Print to device
- DO DEVICE(.PSODONE)
- if PSODONE
- QUIT
- +7 DO PROCESS
- +8 QUIT
- +9 ;
- PROCESS ; Process and Print Report Data
- +1 DO RUN
- +2 DO OUT
- +3 DO CLOSE
- +4 DO EXIT
- +5 QUIT
- +6 ;
- MESSAGE ; Option informatoin
- +1 ;
- +2 WRITE !!,"This option lists DEA numbers that were added/edited via the Manual DEA Number"
- +3 WRITE !,"Entry [PSO EPCS DEA MANUAL ENTRY] option and were not subsequently updated"
- +4 WRITE !,"using the Add New Providers [PSO PROVIDER ADD] option or the Edit Provider"
- +5 WRITE !,"[PSO PROVIDER EDIT] option while the PSO DOJ/DEA WEB SERVICE was running."
- +6 WRITE !!,"Manually entered DEA numbers are removed from this list after they are edited"
- +7 WRITE !,"using the Add New Providers [PSO PROVIDER ADD] option or the Edit Provider"
- +8 WRITE !,"[PSO PROVIDER EDIT] option while the PSO DOJ/DEA WEB SERVICE is running."
- +9 QUIT
- +10 ;
- ASK(PSORTYPE,PSODONE) ; Ask user's report options
- +1 ; Summary or Detailed Report
- +2 NEW DIR,X,Y
- +3 SET DIR(0)="S^S:Summary;D:Detailed"
- SET DIR("A")="Report Type"
- DO ^DIR
- KILL DIR
- IF $DATA(DIRUT)
- SET PSODONE=1
- QUIT
- +4 SET PSORTYPE=Y
- SET PSOHEAD=PSOHEAD_$SELECT(Y="S":"(Summary)",1:"(Detailed)")
- +5 QUIT
- +6 ;
- RUN ; Run Report
- +1 NEW DEATXT,PSOLINE,WSDWN
- +2 SET PSOLINE=1
- SET WSDWN=0
- +3 DO GATHER
- +4 SET DEATXT=""
- FOR
- SET DEATXT=$ORDER(^TMP($JOB,"PSODEAMA","DEA",DEATXT))
- if DEATXT=""
- QUIT
- Begin DoDot:1
- +5 NEW IEN,IENS,WSAR,MANAR
- +6 SET IEN=+$GET(^TMP($JOB,"PSODEAMA","DEA",DEATXT))
- SET IENS=IEN_","
- +7 DO GETMAN(IENS,.MANAR)
- +8 IF DEATXT'=""
- DO GETWS(DEATXT,.WSAR,.WSDWN)
- +9 DO COMPILE(.MANAR,.WSAR,.PSOLINE,PSORTYPE)
- End DoDot:1
- +10 QUIT PSODONE
- +11 ;
- GATHER ; Identify Manually entered DEA #'s
- +1 NEW DEAIEN,DEATXT,PSODONE
- SET PSODONE=0
- +2 KILL ^TMP($JOB,"PSODEAMA")
- +3 SET DEAIEN=0
- FOR
- SET DEAIEN=$ORDER(^XTV(8991.9,DEAIEN))
- if 'DEAIEN!$GET(PSODONE)
- QUIT
- Begin DoDot:1
- +4 NEW RETURN,ERROR,FIELDS,DOJUPDT,IENS,MANAR,WSAR,DEATXT,WSDWN
- +5 SET IENS=DEAIEN_","
- +6 ; Quit if Last Updated by PSO DOJ/DEA WEB SERVICE
- if $$GET1^DIQ(8991.9,IENS,10.3,"I")
- QUIT
- +7 SET DEATXT=$$GET1^DIQ(8991.9,IENS,.01,"E")
- +8 SET ^TMP($JOB,"PSODEAMA","DEA",DEATXT)=DEAIEN
- End DoDot:1
- +9 QUIT
- +10 ;
- GETMAN(IENS,MANAR) ; Get one manually entered DEA number from DEA NUMBERS file (#8991.9)
- +1 NEW TMPAR
- +2 ;S FIELDS=".01;.02;.03;.04;.05;.06;.07;1.1;1.2;1.3;1.4;1.5;1.6;1.7;2.1;2.2;2.3;2.4;2.5;2.6;10.1;10.2;10.3" ;P731 detox/x-waiver removal
- +3 SET FIELDS=".01;.02;.04;.05;.06;.07;1.1;1.2;1.3;1.4;1.5;1.6;1.7;2.1;2.2;2.3;2.4;2.5;2.6;10.1;10.2;10.3"
- +4 DO GETS^DIQ(8991.9,IENS,FIELDS,,"MANAR","ERROR")
- +5 MERGE TMPAR=MANAR(8991.9,IENS)
- KILL MANAR
- MERGE MANAR=TMPAR
- +6 QUIT
- +7 ;
- GETWS(DEATXT,WSAR,WSDWN) ; Get one DEA#'s information from Web Service
- +1 NEW RETURN,NOMORE,FLD,TXTLN
- +2 SET NOMORE=0
- +3 IF '$GET(WSDWN)
- SET RETURN=$$WSGET^PSODEAUT(.WSAR,DEATXT)
- +4 SET RETURN=$GET(RETURN)
- +5 ; Web Service Down
- IF $PIECE(RETURN,U,3)=6059
- SET WSDWN=1
- +6 IF (RETURN["DEA NUMBER NOT FOUND")!$GET(WSDWN)
- Begin DoDot:1
- +7 FOR TXTLN=1:1:999
- if NOMORE
- QUIT
- SET FLD=$PIECE($TEXT(JSONFLDS+TXTLN),";",2)
- Begin DoDot:2
- +8 IF FLD="***"
- SET NOMORE=1
- QUIT
- +9 IF FLD="deaNumber"
- SET WSAR(FLD)=$SELECT($GET(WSDWN):"Unable to Connect",1:"Not Found")
- QUIT
- +10 SET WSAR(FLD)="**"
- End DoDot:2
- End DoDot:1
- QUIT
- +11 QUIT
- +12 ;
- COMPILE(MANAR,WSAR,PSOLINE,PSORTYPE) ; Print results
- +1 NEW DS,DSII,DSIIN,DSIII,DSIIIN,DSIV,DSV,COL1IN,COL2IN,PSEXPDTE,PSDTRSLT,BAC,PSDTXDOJ,PSTYPE
- +2 NEW PRNAM,PRNO,PRNOCONTXT,XIP
- +3 SET COL1IN=20
- SET COL2IN=21
- +4 ;
- +5 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=""
- SET PSOLINE=PSOLINE+1
- +6 SET PRNOCONTXT="Unable to Connect"
- +7 ;
- +8 SET PRNO=$$ASSIGNED(MANAR(.01))
- +9 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)="DEA Number "_MANAR(.01)_$SELECT(PRNO:" assigned to "_$PIECE(PRNO,U,2)_" (IEN: "_+PRNO_")",1:" not assigned to any providers.")
- +10 SET PSOLINE=PSOLINE+1
- +11 ;
- +12 if $GET(PSORTYPE)="S"
- QUIT
- +13 ;
- +14 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("FIELD NAME",COL1IN)_$$LJ^XLFSTR("DOJ VALUE",COL2IN)_"LOCAL VISTA VALUE (Manual)"
- +15 SET PSOLINE=PSOLINE+1
- +16 SET $PIECE(^TMP($JOB,"PSODEAMA","OUT",PSOLINE),"-",75)="-"
- +17 SET PSOLINE=PSOLINE+1
- +18 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("DEA NUMBER: ",COL1IN)_$$LJ^XLFSTR(WSAR("deaNumber"),COL2IN)_MANAR(.01)
- +19 SET PSOLINE=PSOLINE+1
- +20 IF WSAR("name")'=MANAR(1.1)
- Begin DoDot:1
- +21 IF $GET(WSDWN)
- SET WSAR("name")=PRNOCONTXT
- QUIT
- +22 if $EXTRACT(WSAR("name"),$LENGTH(WSAR("name")))'="*"
- SET WSAR("name")=WSAR("name")_"**"
- End DoDot:1
- +23 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("NAME: ",COL1IN)_$$LJ^XLFSTR(WSAR("name"),COL2IN)_MANAR(1.1)
- +24 SET PSOLINE=PSOLINE+1
- +25 ;
- +26 IF $$NULLCHK(WSAR("address1"),MANAR(1.2))
- Begin DoDot:1
- +27 IF WSAR("address1")'=MANAR(1.2)
- Begin DoDot:2
- +28 IF $GET(WSDWN)
- SET WSAR("address1")=PRNOCONTXT
- QUIT
- +29 if WSAR("address1")'="**"
- SET WSAR("address1")=WSAR("address1")_"**"
- End DoDot:2
- +30 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ADDRESS 1:",COL1IN)_$$LJ^XLFSTR(WSAR("address1"),COL2IN)_MANAR(1.2)
- +31 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +32 ;
- +33 IF $$NULLCHK(WSAR("address2"),MANAR(1.3))
- Begin DoDot:1
- +34 IF WSAR("address2")'=MANAR(1.3)
- Begin DoDot:2
- +35 IF $GET(WSDWN)
- SET WSAR("address2")=PRNOCONTXT
- QUIT
- +36 if WSAR("address2")'="**"
- SET WSAR("address2")=WSAR("address2")_"**"
- End DoDot:2
- +37 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ADDRESS 2:",COL1IN)_$$LJ^XLFSTR(WSAR("address2"),COL2IN)_MANAR(1.3)
- +38 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +39 ;;
- +40 ;I $$NULLCHK(WSAR("address3"),MANAR(1.4)) D
- +41 ;.I WSAR("address3")'=MANAR(1.4) S:WSAR("address3")'="**" WSAR("address3")=WSAR("address3")_"**"
- +42 ;.S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ADDRESS 3:",COL1IN)_$$LJ^XLFSTR(WSAR("address3"),COL2IN)_MANAR(1.4)
- +43 ;.S PSOLINE=PSOLINE+1
- +44 ;
- +45 IF $$NULLCHK(WSAR("city"),MANAR(1.5))
- Begin DoDot:1
- +46 IF WSAR("city")'=MANAR(1.5)
- Begin DoDot:2
- +47 IF $GET(WSDWN)
- SET WSAR("city")=PRNOCONTXT
- QUIT
- +48 if WSAR("city")'="**"
- SET WSAR("city")=WSAR("city")_"**"
- End DoDot:2
- +49 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("CITY:",COL1IN)_$$LJ^XLFSTR(WSAR("city"),COL2IN)_MANAR(1.5)
- +50 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +51 ;
- +52 IF $$NULLCHK(WSAR("state"),MANAR(1.6))
- Begin DoDot:1
- +53 DO POSTAL^XIPUTIL($GET(WSAR("zipCode")),.XIP)
- SET XSTATE=$GET(XIP("STATE"))
- +54 IF XSTATE'=MANAR(1.6)
- Begin DoDot:2
- +55 IF $GET(WSDWN)
- SET XSTATE=PRNOCONTXT
- QUIT
- +56 if XSTATE'="**"
- SET XSTATE=XSTATE_"**"
- End DoDot:2
- +57 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("STATE:",COL1IN)_$$LJ^XLFSTR(XSTATE,COL2IN)_MANAR(1.6)
- +58 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +59 ;
- +60 IF $$NULLCHK(WSAR("zipCode"),MANAR(1.7))
- Begin DoDot:1
- +61 IF WSAR("zipCode")'=MANAR(1.7)
- Begin DoDot:2
- +62 IF $GET(WSDWN)
- SET WSAR("zipCode")=PRNOCONTXT
- QUIT
- +63 if WSAR("zipCode")'="**"
- SET WSAR("zipCode")=WSAR("zipCode")_"**"
- End DoDot:2
- +64 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ZIP:",COL1IN)_$$LJ^XLFSTR(WSAR("zipCode"),COL2IN)_MANAR(1.7)
- +65 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +66 ;
- +67 SET BAC=$SELECT($GET(WSAR("businessActivityCode"))="**":"",1:$GET(WSAR("businessActivityCode")))_$SELECT($GET(WSAR("businessActivitySubcode"))="**":"",1:$GET(WSAR("businessActivitySubcode")))
- +68 SET DEA=WSAR("deaNumber")
- SET PSDTXDOJ=""
- +69 IF BAC?1U
- SET BAC=BAC_0
- +70 IF BAC'=MANAR(.02)
- Begin DoDot:1
- +71 IF $GET(WSDWN)
- SET BAC=PRNOCONTXT
- QUIT
- +72 if BAC'="**"
- SET BAC=BAC_"**"
- End DoDot:1
- +73 IF $$NULLCHK(BAC,MANAR(.02))
- Begin DoDot:1
- +74 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("ACTIVITY CODE:",COL1IN)_$$LJ^XLFSTR(BAC,COL2IN)_MANAR(.02)
- +75 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +76 ;
- +77 SET PSTYPE=BAC
- IF $TRANSLATE(PSTYPE,"*")'=""
- SET PSTYPE=$PIECE($$PROVTYPE^PSODEAUT(PSTYPE),"^",2)
- +78 IF $$NULLCHK(WSAR("businessActivityCode"),MANAR(.07))
- Begin DoDot:1
- +79 IF $GET(WSDWN)
- SET PSTYPE=PRNOCONTXT
- +80 IF '$GET(WSDWN)
- IF (PSTYPE'=MANAR(.07))
- if $EXTRACT(PSTYPE,$LENGTH(PSTYPE))'="*"
- SET PSTYPE=PSTYPE_"**"
- +81 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("TYPE:",COL1IN)_$$LJ^XLFSTR(PSTYPE,COL2IN)_MANAR(.07)
- +82 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +83 ;
- +84 ;P731 detox/x-waiver removal
- +85 ;S BAC=$G(WSAR("businessActivityCode"))_WSAR("businessActivitySubcode")
- +86 ;I $$NULLCHK(BAC,DEA) S PSDTXDOJ=$S($$DETOXCHK^PSODEAUT(BAC):"X"_$E(MANAR(.01),2,9),1:"")
- +87 ;I $$NULLCHK(PSDTXDOJ,MANAR(.03)) D
- +88 ;. I $G(WSDWN) S PSDTXDOJ=PRNOCONTXT
- +89 ;. I '$G(WSDWN),(PSDTXDOJ'=MANAR(.03)) S:$E(PSDTXDOJ,$L(PSDTXDOJ))'="*" PSDTXDOJ=PSDTXDOJ_"**"
- +90 ;. S ^TMP($J,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("DETOX NUMBER:",COL1IN)_$$LJ^XLFSTR(PSDTXDOJ,COL2IN)_MANAR(.03)
- +91 ;. S PSOLINE=PSOLINE+1
- +92 ;
- +93 SET (PSDTRSLT,PSDTRSLT(0))=""
- +94 IF $$NULLCHK(WSAR("expirationDate"),MANAR(.04))
- DO DT^DILF("E",$GET(WSAR("expirationDate")),.PSDTRSLT)
- +95 IF $GET(WSDWN)
- SET PSDTRSLT(0)=PRNOCONTXT
- +96 IF '$GET(WSDWN)
- IF (PSDTRSLT(0)'=MANAR(.04))
- if PSDTRSLT(0)'="**"
- SET PSDTRSLT(0)=PSDTRSLT(0)_"**"
- +97 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("EXPIRATION DATE:",COL1IN)_$$LJ^XLFSTR($GET(PSDTRSLT(0)),COL2IN)_MANAR(.04)
- +98 SET PSOLINE=PSOLINE+1
- +99 ;
- +100 SET DS=WSAR("drugSchedule")
- +101 ;
- +102 IF $$NULLCHK(DS,MANAR(2.1))
- Begin DoDot:1
- +103 IF $GET(WSDWN)
- SET DSII=PRNOCONTXT
- +104 IF '$GET(WSDWN)
- Begin DoDot:2
- +105 SET DSII=$SELECT(DS["22N":"YES",(DS["2"&(DS'["2N")):"YES",DS="**":"",1:"NO")
- +106 SET DSII=$GET(DSII)_$SELECT($GET(DSII)'=$GET(MANAR(2.1)):"**",1:"")
- End DoDot:2
- +107 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH II NARC:",COL1IN)_$$LJ^XLFSTR(DSII,COL2IN)_MANAR(2.1)
- +108 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +109 ;
- +110 IF $$NULLCHK(DS,MANAR(2.2))
- Begin DoDot:1
- +111 IF $GET(WSDWN)
- SET DSIIN=PRNOCONTXT
- +112 IF '$GET(WSDWN)
- Begin DoDot:2
- +113 SET DSIIN=$SELECT(DS["2N":"YES",DS="**":"",1:"NO")
- +114 SET DSIIN=DSIIN_$SELECT(DSIIN'=$GET(MANAR(2.2)):"**",1:"")
- End DoDot:2
- +115 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH II NON-NARC:",COL1IN)_$$LJ^XLFSTR(DSIIN,COL2IN)_MANAR(2.2)
- +116 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +117 ;
- +118 IF $$NULLCHK(DS,MANAR(2.3))
- Begin DoDot:1
- +119 IF $GET(WSDWN)
- SET DSIII=PRNOCONTXT
- +120 IF '$GET(WSDWN)
- Begin DoDot:2
- +121 SET DSIII=$SELECT(DS="**":"",DS["33N":"YES",DS["3"&(DS'["3N"):"YES",1:"NO")
- +122 SET DSIII=DSIII_$SELECT(DSIII'=$GET(MANAR(2.3)):"**",1:"")
- End DoDot:2
- +123 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH III NARC:",COL1IN)_$$LJ^XLFSTR(DSIII,COL2IN)_MANAR(2.3)
- +124 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +125 ;
- +126 IF $$NULLCHK(DS,MANAR(2.4))
- Begin DoDot:1
- +127 IF $GET(WSDWN)
- SET DSIIIN=PRNOCONTXT
- +128 IF '$GET(WSDWN)
- Begin DoDot:2
- +129 SET DSIIIN=$SELECT(DS="**":"",DS["3N":"YES",1:"NO")
- +130 SET DSIIIN=DSIIIN_$SELECT(DSIIIN'=$GET(MANAR(2.4)):"**",1:"")
- End DoDot:2
- +131 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH III NON-NARC:",COL1IN)_$$LJ^XLFSTR(DSIIIN,COL2IN)_MANAR(2.4)
- +132 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +133 ;
- +134 IF $$NULLCHK(DS,MANAR(2.5))
- Begin DoDot:1
- +135 IF $GET(WSDWN)
- SET DSIV=PRNOCONTXT
- +136 IF '$GET(WSDWN)
- Begin DoDot:2
- +137 SET DSIV=$SELECT(DS="**":"",DS["4":"YES",1:"NO")
- +138 SET DSIV=DSIV_$SELECT(DSIV'=$GET(MANAR(2.5)):"**",1:"")
- End DoDot:2
- +139 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH IV:",COL1IN)_$$LJ^XLFSTR(DSIV,COL2IN)_MANAR(2.5)
- +140 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +141 ;
- +142 IF $$NULLCHK(DS,MANAR(2.6))
- Begin DoDot:1
- +143 IF $GET(WSDWN)
- SET DSV=PRNOCONTXT
- +144 IF '$GET(WSDWN)
- Begin DoDot:2
- +145 ; SCHEDULE V
- SET DSV=$SELECT(DS="**":"",DS["5":"YES",1:"NO")
- +146 SET DSV=DSV_$SELECT(DSV'=$GET(MANAR(2.6)):"**",1:"")
- End DoDot:2
- +147 SET ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=$$LJ^XLFSTR("SCH V:",COL1IN)_$$LJ^XLFSTR(DSV,COL2IN)_MANAR(2.6)
- +148 SET PSOLINE=PSOLINE+1
- End DoDot:1
- +149 ;
- +150 QUIT
- +151 ;
- OUT ; Write Output
- +1 NEW PSOLINE,PSOPAGE,DIR,Y,PSODONE,PSOQ
- +2 SET PSOLINE=0
- SET PSOPAGE=1
- +3 IF $DATA(IO("Q"))
- DO CLEAR^VALM1
- +4 USE IO
- +5 FOR
- SET PSOLINE=$ORDER(^TMP($JOB,"PSODEAMA","OUT",PSOLINE))
- if 'PSOLINE!$GET(PSODONE)
- QUIT
- Begin DoDot:1
- +6 IF PSOLINE>1
- Begin DoDot:2
- +7 IF ($GET(PSORTYPE)'="S")
- IF ^TMP($JOB,"PSODEAMA","OUT",PSOLINE)=""
- Begin DoDot:3
- +8 SET PSODONE=$$CHKP(.PSOPAGE,PSOHEAD,PSORTYPE)
- if $GET(PSODONE)
- QUIT
- End DoDot:3
- if $GET(PSODONE)
- QUIT
- +9 IF $GET(PSORTYPE)="S"
- SET PSODONE=$$CHKP(.PSOPAGE,PSOHEAD,PSORTYPE)
- if $GET(PSODONE)
- QUIT
- End DoDot:2
- +10 IF PSOLINE=1
- DO HDR(.PSOPAGE,PSOHEAD,PSORTYPE)
- +11 WRITE !,^TMP($JOB,"PSODEAMA","OUT",PSOLINE)
- End DoDot:1
- +12 IF '$GET(PSODONE)
- SET PSODONE=$$CHKP(0)
- +13 QUIT
- +14 ;
- DEVICE(PSODONE) ; Request Device Information
- +1 NEW %ZIS,IOP,ZTSK,ZTRTN,ZTIO,ZTDESC,ZTSAVE,POP,RTN,VAR
- +2 KILL IO("Q")
- +3 SET %ZIS="QM"
- +4 WRITE !
- DO ^%ZIS
- IF POP
- SET PSODONE=1
- QUIT
- +5 IF $DATA(IO("Q"))
- Begin DoDot:1
- +6 SET RTN=$PIECE($TEXT(+1)," ",1)
- +7 SET ZTRTN="PROCESS^PSODEAMA"
- +8 SET ZTIO=ION
- +9 SET ZTSAVE("PS*")=""
- +10 SET ZTDESC="MANUAL DEA ENTRY REPORT"
- +11 DO ^%ZTLOAD
- WRITE !,$SELECT($DATA(ZTSK):"Report is Queued to print (Task "_ZTSK_")",1:"REQUEST CANCELLED")
- KILL ZTSK
- +12 SET PSODONE=1
- End DoDot:1
- +13 QUIT
- +14 ;
- NULLCHK(DOJVAL,VISTAVAL) ; Check for null value, filter out askterisks
- +1 IF $TRANSLATE(DOJVAL,"*")]""
- QUIT 1
- +2 IF VISTAVAL'=""
- QUIT 1
- +3 QUIT 0
- +4 ;
- ASSIGNED(DEA) ; Is the DEA number assigned to a provider?
- +1 NEW PRNO,PRNAM
- +2 if '$$VALN1DEA^XUSER3(DEA)
- QUIT 0
- +3 SET PRNO=""
- SET PRNO=$ORDER(^VA(200,"PS4",DEA,PRNO))
- +4 SET PRNAM=$$GET1^DIQ(200,PRNO,.01)
- +5 QUIT PRNO_U_PRNAM
- +6 ;
- CHKP(PSOPAGE,PSOHEAD,PSORTYPE) ; Check for End Of Page
- +1 NEW PSOSCPAD
- SET PSOSCPAD=$SELECT($GET(PSORTYPE)="D":15,1:6)
- +2 IF $GET(PSOPAGE)
- if '($Y>(IOSL-PSOSCPAD))
- QUIT 0
- +3 SET PSOQ=0
- +4 WRITE !
- +5 IF $EXTRACT(IOST)="C"
- Begin DoDot:1
- +6 NEW X,Y,DTOUT,DUOUT,DIRUT,DIR
- +7 USE IO(0)
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- if $DATA(DIRUT)
- SET PSOQ=1
- +8 USE IO
- End DoDot:1
- if $GET(PSOQ)
- QUIT PSOQ
- +9 IF $GET(PSOPAGE)
- DO HDR(.PSOPAGE,PSOHEAD,PSORTYPE)
- +10 QUIT PSOQ
- +11 ;
- HDR(PSOPAGE,PSOHEAD,PSORTYPE) ; Print Header
- +1 NEW X
- +2 WRITE @IOF,PSOHEAD,?40,"Run Date: ",$$FMTE^XLFDT(DT,"5DZ"),$$RJ^XLFSTR("Page "_PSOPAGE,12)
- +3 SET X=""
- SET $PIECE(X,"=",79)=""
- WRITE !,X
- +4 IF $GET(PSORTYPE)="D"
- Begin DoDot:1
- +5 WRITE !,"Asterisks ""**"" indicate the local value does not match the DOJ value."
- End DoDot:1
- +6 SET PSOPAGE=$GET(PSOPAGE)+1
- +7 QUIT
- +8 ;
- EXIT ; Clean up
- +1 KILL ^TMP($JOB)
- +2 DO CLOSE
- +3 QUIT
- +4 ;
- CLOSE DO ^%ZISC
- if $DATA(ZTQUEUED)
- SET ZTREQ="@"
- +1 QUIT
- +2 ;
- JSONFLDS ; JSON fields returned by web service
- +1 ;address1
- +2 ;address2
- +3 ;address3
- +4 ;businessActivityCode
- +5 ;businessActivitySubcode
- +6 ;city
- +7 ;deaNumber
- +8 ;drugSchedule
- +9 ;expirationDate
- +10 ;name
- +11 ;processedDate
- +12 ;state
- +13 ;type
- +14 ;zipCode
- +15 ;***