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

DGPPDRP1.m

Go to the documentation of this file.
  1. DGPPDRP1 ;SLC/RM - PRESUMPTIVE PSYCHOSIS DETAIL REPORT CONTINUATION ; Dec 21, 2020@10:00 am
  1. ;;5.3;Registration;**1035**;Aug 13, 1993;Build 14
  1. ;
  1. ;External References Supported by ICR# Type
  1. ;------------------- ----------------- ---------
  1. ; $$GET1^DIQ 2056 Supported
  1. ; ^DIR 10026 Supported
  1. ; $$CPTIER^PSNAPIS 2531 Supported
  1. ; PSS^PSO59 4827 Supported
  1. ; NDF^PSS50 4533 Supported
  1. ; 2^VADPT 10061 Supported
  1. ; $$FMTE^XLFDT 10103 Supported
  1. Q
  1. ;
  1. PRNTENC(TMPDATA,ENCDT) ;continuation of ENCTR tag found in DGOTHFS2
  1. N RECNUM,RSLTFRMOE,TRUE,AMOUNT
  1. S TRUE=0
  1. I $Y>(IOSL-4) W ! D PAUSE(.DGQ) Q:DGQ D PTHDR,LINE(0),ENCHDR(1),ENCTRCOL,LINE(1)
  1. I FILENO=350!(FILENO=399) D
  1. . S AMOUNT=0
  1. . I OLDBILL'=NWBILL S TRUE=1 D DSPLAY
  1. . I OLDBILL=NWBILL,OLDOEDT'=DGPPDOS S TRUE=1 D DSPLAY
  1. . I 'TRUE W !
  1. . I FILENO=350 D
  1. . . W ?73,$E($P(TMPDATA,U,7),1,15) ;charge type
  1. . . W ?89,$S(NWBILL=0:"",1:NWBILL) ;bill no
  1. . . S AMOUNT=$$DOLLAR^DGPPRRPT($TR($P(TMPDATA,U,12),"$(),","")) ;format the charge amount
  1. . . W ?102,$J($TR(AMOUNT,"$()",""),14) ;charge amount
  1. . . W ?116,$E($P(TMPDATA,U,13),1,15) ;IB status
  1. . I FILENO=399 D
  1. . . W ?73,$E($P(TMPDATA,U,9),1,15) ;rate type
  1. . . W ?89,$S(NWBILL=0:"",1:NWBILL) ;bill no
  1. . . S AMOUNT=$$DOLLAR^DGPPRRPT($P(TMPDATA,U,13)) ;format the charge amount
  1. . . W ?102,$J($TR(AMOUNT,"$()",""),14) ;charge amount
  1. . . W ?116,$E($P(TMPDATA,U,14),1,15) ;IB status
  1. E D
  1. . D DSPLAY
  1. . S TRUE=0
  1. . I $O(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,""))'="" D
  1. . . S RECNUM="" F S RECNUM=$O(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,RECNUM)) Q:RECNUM="" D
  1. . . . I TRUE W !
  1. . . . S AMOUNT=0
  1. . . . S RSLTFRMOE=$P(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,RECNUM),U,5)
  1. . . . I $P(RSLTFRMOE,":")=405!($P(RSLTFRMOE,":")=409.68)!($P(RSLTFRMOE,":")=45) W ?73,$E($P(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,RECNUM),U),1,15) ;charge type from file #350
  1. . . . E W ?73,$E($P(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,RECNUM),U,2),1,15) ;rate type from file #399
  1. . . . W ?89,$P(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,RECNUM),U,4) ;bill no
  1. . . . S AMOUNT=$$DOLLAR^DGPPRRPT($TR($P(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,RECNUM),U,6),"$(),","")) ;format the charge amount
  1. . . . W ?102,$J($TR(AMOUNT,"$()",""),14) ;copay amount
  1. . . . W ?116,$E($P(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,RECNUM),U,7),1,15) ;IB status
  1. . . . I $D(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT+1)),'PRNTSEC D Q ;this means the record has secondary stop code
  1. . . . . S TMPDATA=@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT+1)
  1. . . . . W !,?20,$E($P(TMPDATA,U,4),1,18) S TRUE=0,PRNTSEC=1 ;display the secondary stop code first before displaying the other statuses
  1. . . . S TRUE=1 ;this flag determine when to write a new line
  1. Q
  1. ;
  1. DSPLAY ;display episode of care data
  1. N DGAPPTYP,DGEOIEN
  1. I FILENO=409.68,$P(TMPDATA,U,10)'=1 D Q ;this means that the record belongs to a secondary stop code, as per business owner, only display the stop code name and leave out the rest
  1. . I 'PRNTSEC D
  1. . . I $D(OUTPATARY($P(TMPDATA,U,3),ENCDT\1)) W !,?20,$E($P(TMPDATA,U,4),1,18) Q
  1. . . D DSPLAY1
  1. . S PRNTSEC=0
  1. I FILENO=405,$P(TMPDATA,U,10)>1 D Q ;this means that the record belongs to a secondary stop code (inpatient outpatient encounter)
  1. . I $O(@RECORD@(DGPPDOS,DGPPDIV,FILENO,RECNT,""))="" W !,?20,$E($P(TMPDATA,U,4),1,18)
  1. D DSPLAY1
  1. S DGTOTENC=DGTOTENC+1
  1. Q
  1. ;
  1. DSPLAY1 ;
  1. W !,$E($P(TMPDATA,U,3),1,18) ;clinic name/Location of care
  1. W ?20,$E($P(TMPDATA,U,4),1,18) ;clinic stop code/treating specialty
  1. I FILENO=350!(FILENO=399) W ?40,"N/A" ;Primary/Principal diagnosis
  1. I FILENO=409.68 W ?40,$P(TMPDATA,U,9) ;Primary/Principal diagnosis
  1. I FILENO=405 W ?40,$S($P(TMPDATA,U,9)'="":$P(TMPDATA,U,9),1:$P(TMPDATA,U,8)) ;Primary/Principal diagnosis
  1. W ?50,$$FMTE^XLFDT(ENCDT\1,"5ZF") ;Appt. Date/Time or Date of Service
  1. S DGEOIEN=$P(TMPDATA,U,7)
  1. S DGAPPTYP=$$GET1^DIQ(409.68,DGEOIEN_",",.1,"E")
  1. S DGAPPTYP=$S(DGAPPTYP'="":DGAPPTYP,1:"N/A")
  1. ;Appointment type
  1. I DGAPPTYP="COMPENSATION & PENSION" S DGAPPTYP="COMP & PEN"
  1. I DGAPPTYP="CLASS II DENTAL" S DGAPPTYP="CLASS II"
  1. I DGAPPTYP="ORGAN DONORS" S DGAPPTYP="ORGAN DONOR"
  1. I DGAPPTYP="SHARING AGREEMENT" S DGAPPTYP="SHARING AG"
  1. I DGAPPTYP="COLLATERAL OF VET." S DGAPPTYP="COLLATERAL"
  1. I DGAPPTYP="COMPUTER GENERATED" S DGAPPTYP="COMPUTER"
  1. I DGAPPTYP="SERVICE CONNECTED" S DGAPPTYP="SERVICE CON"
  1. W ?61,$E(DGAPPTYP,1,10) ;appointment type
  1. S OUTPATARY($P(TMPDATA,U,3),ENCDT\1)=""
  1. Q
  1. ;
  1. LINE(FLAG) ;prints double dash line
  1. N LINE
  1. I FLAG<1 F LINE=1:1:132 W "="
  1. E F LINE=1:1:132 W "-"
  1. Q
  1. ;
  1. PTHDR(TITLE) ;patient name and DOB header
  1. S TITLE=$G(TITLE)
  1. I $G(TRM)!('$G(TRM)&DGPAGE) W @IOF
  1. I $L(TITLE) W ?132-$L(TITLE)\2,TITLE W !
  1. S DGPAGE=$G(DGPAGE)+1
  1. I '$D(VADM) D 2^VADPT
  1. W "Patient Name: ",DGPTNM_" ("_DGPID_")",?112,"DOB: ",$P(VADM(3),U,2),!
  1. Q
  1. ;
  1. ENCTRCOL ;display encounter column name
  1. W !,"Location of",?20,"Stop Code Name/",?40,"Primary",?50,"Date of",?61,"Appt. Type",?73,"Charge Type/",?89,"Bill #",?102,"Charge Amount",?116,"IB Status"
  1. W !,"Care",?20,"Treating Specialty",?40,"DX",?50,"Service",?73,"Rate Type",!
  1. Q
  1. ;
  1. ENCHDR(FLAG) ;Encounter Header
  1. N TITLE
  1. S TITLE="PATIENT'S EPISODE OF CARE"_$S(FLAG:" - Continuation",1:"")
  1. W !,?132-$L(TITLE)\2,TITLE,!
  1. D DTRANGE
  1. D LINE(1)
  1. Q
  1. ;
  1. DTRANGE ;display date range
  1. N DTRANGE
  1. S DTRANGE="Date Range: "_$$FMTE^XLFDT(DGSORT("DGBEG"),"5ZF")_" - "_$$FMTE^XLFDT(DGSORT("DGEND"),"5ZF")
  1. W ?132-$L(DTRANGE)\2,DTRANGE,!
  1. Q
  1. ;
  1. PAUSE(DGQ) ; pause screen display
  1. N J
  1. I $Y<(IOSL-4) D
  1. . F J=1:1 Q:($Y>(24-4)) W !
  1. I $G(DGPAGE)>0,TRM,$$E("Press <Enter> to continue or '^' to exit:")<1 S DGQ=1
  1. Q
  1. ;
  1. E(MSG) ; ----- ask user to press enter to continue
  1. ; Return: -2:Time-out; -1:'^'-out 1:anything else
  1. S MSG=$G(MSG)
  1. N X,Y,Z,DIR,DIROUT,DIRUT,DTOUT,DUOUT
  1. S DIR(0)="EA"
  1. I $L(MSG) S DIR("A")=MSG
  1. D ^DIR
  1. S X=$S($D(DTOUT):-2,$D(DUOUT):-1,1:1)
  1. Q X
  1. ;
  1. PARTIAL(LIST) ;extract rx partial fill for this patient
  1. N JJJ,DGPRTLDT,DGPRTLDIV,DGPRTLSTA,DGPRTLSTN,DGPRTLUSR,DGPRTLTOT
  1. S DGPRTLTOT=$P(^TMP($J,LIST,DGDFN,DGRXIEN,"P",0),U) ;total rx partial fill entry/record
  1. I DGPRTLTOT>0 D
  1. . F JJJ=1:1:DGPRTLTOT D
  1. . . S DGPRTLDT=$P($G(^TMP($J,LIST,DGDFN,DGRXIEN,"P",JJJ,8)),U) ;Rx partial fill released date
  1. . . I +DGPRTLDT<1,+$P(^TMP($J,LIST,DGDFN,DGRXIEN,"P",JJJ,5),U)>1 S DGPRTLDT=+$P(^TMP($J,LIST,DGDFN,DGRXIEN,"P",JJJ,5),U) ;extract the Rx Partial Fill RETURN TO STOCK date
  1. . . Q:'$$CHKDATE^DGOTHFSM(+DGPRTLDT\1,DGOTHREGDT,DGELGDTV)
  1. . . S DGPRTLDIV=+$P(^TMP($J,LIST,DGDFN,DGRXIEN,"P",JJJ,.09),U) ;rx partial fill division ien
  1. . . K ^TMP($J,"PSOSITERF") D PSS^PSO59(DGPRTLDIV,,"PSOSITERF") S DGPRTLSTA=$G(^TMP($J,"PSOSITERF",DGPRTLDIV,.06)) ;station number
  1. . . S DGPRTLSTN=$P(^TMP($J,LIST,DGDFN,DGRXIEN,"P",JJJ,.09),U,2) ;rx partial fill division name
  1. . . S DGPRTLUSR=$P(^TMP($J,LIST,DGDFN,DGRXIEN,"P",JJJ,.05),U,2) ;pharmacist entered this rx partial fill
  1. . . S DGPRTLUSR=$S(DGPRTLUSR="":"UNKNOWN",1:DGPRTLUSR)
  1. . . S DGENCNT=DGENCNT+1
  1. . . S @RECORD@(+DGPRTLDT\1,DGPRTLSTA,52,DGENCNT)=DGPRTLSTN_U_DGPRTLSTA_U_$S(DGCLNC'="":DGCLNC,1:"NON-VA")_U_"N/A"_U_DGPRTLUSR_U_DGPRTLDIV_U_"RX - "_DGRXNUM_":"_DGRXIEN
  1. K ^TMP($J,"PSOSITERF")
  1. Q
  1. ;
  1. CPTIER ;extract Rx Copay Tier
  1. N DGDRUGIEN
  1. K ^TMP($J,"OTHCPTIER"),DGCPTIER
  1. S DGDRUGIEN=$P(^TMP($J,"DGPPDRX52",DFN,DGRXIEN,6),U)
  1. D NDF^PSS50(DGDRUGIEN,"","","","","OTHCPTIER")
  1. ;look up the tier of the prescription
  1. ;returns the tier level of the specified prescription
  1. ;default tier is always 2
  1. S DGCPTIER=$P(^TMP($J,"OTHCPTIER",DGDRUGIEN,20),U)
  1. S DGCPTIER=$S(DGCPTIER:$P($$CPTIER^PSNAPIS(DGCPTIER,DT,DGDRUGIEN,1),U),1:2)
  1. K ^TMP($J,"OTHCPTIER")
  1. Q
  1. ;