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

SCENI0.m

Go to the documentation of this file.
  1. SCENI0 ;ALB/SCK - INCOMPLETE ENCOUNTER MGMT MAIN LM DISPLAY ; 07-MAY-1997
  1. ;;5.3;Scheduling;**66**;AUG 13, 1993
  1. ;
  1. EN ; Entry point for IEMM LM display
  1. ; Variables
  1. ; VAUTC,VAUTD - Clinic and Division o/m/a arrays
  1. ; SDENTYP - Search type, P:patient, C:Clinic, E:Error Code
  1. ; SDCLN - Clinic from selection lookup
  1. ; SDDT - Date range for search, Begin^End format
  1. ; SDY - Local variable used in selection criteria
  1. ; SDEVAL - Error code value
  1. ; SDFN - Patient DFN for local use
  1. ; SDIEMM - Flag for IEMM
  1. ;
  1. N SDENTYP,DFN,SDCLN,SDDT,VAUTC,VAUTD,SDY,SDEVAL,SDFN,SDIEMM
  1. K X,SDB,XQORNOD,DA,DR,DIE,%B
  1. ;
  1. AGN Q:'$$ENTRY^SCUTIE2(.SDY)
  1. I $G(SDENTYP)']"" G AGN
  1. ;
  1. I SDENTYP["P" D
  1. . S SDFN=+SDY
  1. . S VAUTC=1
  1. . S X=$P($G(^DG(43,1,"SCLR")),U,12)
  1. . S SDDT=$$FMADD^XLFDT($$DT^XLFDT,-X)_U_$$DT^XLFDT
  1. ;
  1. I SDENTYP["C" D G:'$$ASKDT^SCENI01(.SDDT) ENQ
  1. . S SDCLN=+SDY
  1. . S VAUTC=0,VAUTC(+SDY)=$P(^SC(+SDY,0),U)
  1. ;
  1. I SDENTYP["E" D G:'$$ASKDT^SCENI01(.SDDT) ENQ
  1. . S VAUTC=1
  1. . S SDEVAL=+SDY
  1. ;
  1. S VAUTD=1
  1. EN1 D WAIT^DICD
  1. I $G(FLG1) K XQORS,VALMEVL
  1. S SDIEMM=1
  1. D EN^VALM("SCENI INCOMPLETE ENC MGT")
  1. ENQ Q
  1. ;
  1. ENP(SDXPTR) ; Entry point for Data validation, Patient Predefined
  1. ; This entry point will jump to the second LM screen and display any
  1. ; errors for the encounter.
  1. ;
  1. ; Input
  1. ; SDXMT - Pointer to transmission file, 409.73
  1. ;
  1. ; Variables
  1. ; FLG1 - Flag for patient defined entry point
  1. ;
  1. N FLG1,SDIEMM
  1. S SDIEMM=1
  1. ;S VALMBCK="R"
  1. S FLG1=1
  1. D EN^SCENIA0
  1. Q
  1. ;
  1. HDR ; -- header code
  1. N SDCLN
  1. ;
  1. S VALMHDR(1)="Date Range: "_$$FDATE^VALM1($P(SDDT,U))_" thru "_$$FDATE^VALM1($P(SDDT,U,2))
  1. ;
  1. I SDENTYP["P" D
  1. . S VALMHDR(2)=" Patient: "_$P(^DPT(SDFN,0),U)
  1. I SDENTYP["C" D
  1. . S SDCLN=$O(VAUTC(0))
  1. . S VALMHDR(2)=" Clinic: "_$E(VAUTC(SDCLN),1,25)
  1. I SDENTYP["E" D
  1. . S VALMHDR(2)="Error Code: "_$E($P(^SD(409.76,SDEVAL,1),U),1,60)
  1. S VALMSG="'*' Deleted Encounter Enter ?? for more actions"
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. N SDCNT
  1. ;
  1. K XQORNOD
  1. K ^TMP("SCENI",$J) ; Sorting global
  1. K ^TMP("SCEN LM",$J) ; LM Display global
  1. K ^TMP("SCENIDX",$J) ; Index for expand encounter
  1. D CLEAN^VALM10
  1. ;
  1. S BL="",$P(BL," ",30)=""
  1. S X=VALMDDF("INDEX"),IC=$P(X,U,2),IW=$P(X,U,3)
  1. S X=VALMDDF("ENCOUNTER"),EC=$P(X,U,2),EW=$P(X,U,3)
  1. S X=VALMDDF("SSN"),SC=$P(X,U,2),SW=$P(X,U,3)
  1. S X=VALMDDF("PATIENT"),PC=$P(X,U,2),PW=$P(X,U,3)
  1. S X=VALMDDF("DELETED"),DC=$P(X,U,2),DW=$P(X,U,3)
  1. ;
  1. D BLD,BLDLM
  1. I '$D(^TMP("SCENI",$J)) D
  1. . S (SDCNT,VALMCNT)=0
  1. . D SET(" "),SET(" No Incomplete Encounters found.")
  1. Q
  1. ;
  1. BLD ; Order through the Xmited OE Error file on encounter Xref
  1. ; Variables
  1. ; SDOEDT - Encounter date
  1. ; SDOE - Pointer to #409.68
  1. ; SDE - End date of date range
  1. ; SDCNT - Count of entries
  1. ; SDXMT - Pointer to #409.73
  1. ; SDXER - Pointer to #409.75
  1. ;
  1. N SDOEDT,SDOE,SDE,SDCNT,SDXMT,SDXER
  1. ;
  1. Q:'$D(SDDT)
  1. S SDOEDT=$P(SDDT,U)-.1,SDE=$P(SDDT,U,2)+.9,(SDCNT,VALMCNT)=0
  1. I SDENTYP["P" D PLKUP(SDFN) Q
  1. I SDENTYP["C" D CLKUP($O(VAUTC(0))) Q
  1. ;the remaining is for a error code look up
  1. F S SDOEDT=$O(^SD(409.75,"AEDT",SDOEDT)) Q:'SDOEDT!(SDOEDT>SDE) D
  1. . S SDXMT=0 F S SDXMT=$O(^SD(409.75,"AEDT",SDOEDT,SDXMT)) Q:'SDXMT D
  1. .. S SDXER=0 F S SDXER=$O(^SD(409.75,"AEDT",SDOEDT,SDXMT,SDXER)) Q:'SDXER I $D(^SD(409.75,SDXER,0)) D:$P(^SD(409.75,SDXER,0),U,2)=SDEVAL BLDA(SDXMT,SDOEDT)
  1. Q
  1. ;
  1. BLDA(SDXMT,SDOEDT) ; Build list entry, and retreive encounter information
  1. ; Input
  1. ; SDXMT - Pointer to $409.73
  1. ; SDOEDT - Date of encounter
  1. ;
  1. ; Out
  1. ; ^TMP("SCEN LM",$J,Patient Name,Encounter Date,Xmt Ptr)=DFN^BID^Delete marker ('*')
  1. ;
  1. N DFN
  1. ;
  1. Q:'SDOEDT
  1. S SDCNT=SDCNT+1,SDDEL=""
  1. S SCSTAT=$$OPENC^SCUTIE1(SDXMT,"SCINF")
  1. ;
  1. S:SCSTAT=1 SDDEL="*"
  1. I SCSTAT<0 Q
  1. ;
  1. S SDNAME=$$LOWER^VALM1($P(^DPT(SCINF("DFN"),0),U))
  1. S DFN=SCINF("DFN")
  1. D PID^VADPT6
  1. S ^TMP("SCEN LM",$J,SDNAME,SDOEDT,SDXMT)=SCINF("DFN")_U_VA("BID")_U_$G(SDDEL)
  1. K SDDEL
  1. Q
  1. ;
  1. BLDLM ; Build display list array for LM
  1. ; Variables
  1. ; SDN - Patient Name
  1. ; SDD - Encounter Date
  1. ; SDXT - Pointer to #409.73, transmission pointer
  1. ;
  1. S SDCNT=0
  1. S SDN="" F S SDN=$O(^TMP("SCEN LM",$J,SDN)) Q:SDN']"" D
  1. . S SDD="" F S SDD=$O(^TMP("SCEN LM",$J,SDN,SDD)) Q:'SDD D
  1. .. S SDXT="" F S SDXT=$O(^TMP("SCEN LM",$J,SDN,SDD,SDXT)) Q:'SDXT D BLDLM1(SDXT)
  1. Q
  1. ;
  1. BLDLM1(SDXT) ; Build LM Display line
  1. ; Input
  1. ; SDXT - DFN^BID^Delete marker ('*')
  1. ;
  1. K SDX
  1. S SDCNT=SDCNT+1,SDX="",$P(SDX," ",VALMWD+1)=""
  1. S SDX=$E(SDX,1,IC-1)_$E(SDCNT_BL,1,IW)_$E(SDX,IC+IW+1,VALMWD)
  1. S SDX=$E(SDX,1,DC-1)_$E($P(^TMP("SCEN LM",$J,SDN,SDD,SDXT),U,3)_BL,1,DW)_$E(SDX,DC+DW+1,VALMWD)
  1. S SDX=$E(SDX,1,PC-1)_$E(SDN_BL,1,PW)_$E(SDX,PC+PW+1,VALMWD)
  1. S SDX=$E(SDX,1,SC-1)_$E($P(^TMP("SCEN LM",$J,SDN,SDD,SDXT),U,2)_BL,1,SW)_$E(SDX,SC+SW+1,VALMWD)
  1. S SDX=$E(SDX,1,EC-1)_$E($$FMTE^XLFDT(SDD,1)_BL,1,EW)_$E(SDX,EC+EW+1,VALMWD)
  1. D SET(SDX,SDXT)
  1. Q
  1. ;
  1. SET(X,SDXMT) ;
  1. N SCEN
  1. ;
  1. S VALMCNT=VALMCNT+1,^TMP("SCENI",$J,VALMCNT,0)=X
  1. Q:'SDCNT
  1. S ^TMP("SCENI",$J,"IDX",VALMCNT,SDCNT)=""
  1. S ^TMP("SCENI",$J,SDCNT,0)=X
  1. S ^TMP("SCENI",$J,"XMT",SDCNT,SDXMT)=""
  1. ;
  1. I $$OPENC^SCUTIE1(SDXMT,"SCEN")>-1 D
  1. . S ^TMP("SCENIDX",$J,SDCNT)=VALMCNT_U_SCEN("DFN")_U_SCEN("ENCOUNTER")_U_SCEN("CLINIC")
  1. Q
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. I $D(VALMBCK),VALMBCK="R" D REFRESH^VALM S VALMBCK=$P(VALMBCK,"R")_$P(VALMBCK,"R",2) G EX1
  1. K ^TMP("SCENI",$J),^TMP("SCEN LM",$J),^TMP("SCENIDX",$J),^TMP("SCENI TMP",$J)
  1. I '$G(FLG1) K ^TMP("SDAMIDX",$J)
  1. K VA,SDCLN,SDIV,SDENDDT1,SDNR,SDPRDIV,ANS,DFN,EC,EW,IC,IW,PC,PW,SC,SW,SDX,DC,DW,SDNAME,SDFN,VAUTINI,SDCNT,DIC,BL
  1. K SDOK,SCINF,RTN,SCSTAT,SCEN,RESULT,SCTEXT,LINE,SDDEL,SDD,SDN,SDXT,SDBDT,SDCL,SDDA,SDOEDT,SDOEL,SDVIEN,SDXMT
  1. K VALMDDF
  1. D FULL^VALM1
  1. D CLEAN^VALM10
  1. EX1 Q
  1. ;
  1. PLKUP(SDFN) ;
  1. ;This is the lookup by patient.
  1. ;SDFN is the DFN of the patient.
  1. ;
  1. N COD,SDXER
  1. S COD=""
  1. F S COD=$O(^SD(409.75,"ACOD",SDFN,COD)) Q:COD="" S SDXER=0 F S SDXER=$O(^SD(409.75,"ACOD",SDFN,COD,SDXER)) Q:SDXER="" DO
  1. .N NODE,ANS
  1. .S NODE=$G(^SD(409.75,SDXER,0)) I NODE=""!($P(NODE,U,1)'>0) Q
  1. .S ANS=$$CHKDATE($P(NODE,U,1),SDOEDT,SDE)
  1. .I ANS D BLDA($P(NODE,U,1),$P(ANS,U,2))
  1. .Q
  1. Q
  1. ;
  1. CLKUP(SDCLN) ;
  1. ;
  1. ;This is the lookup by clinic.
  1. ;SDCLN is the IEN of the clinic
  1. ;
  1. N SDXER,XMIT,ANS
  1. S SDXER=0
  1. F S SDXER=$O(^SD(409.75,"AECL",SDCLN,SDXER)) Q:SDXER="" S XMIT=$P($G(^SD(409.75,SDXER,0)),U,1) I XMIT]"" S ANS=$$CHKDATE(XMIT,SDOEDT,SDE) I ANS D BLDA(XMIT,$P(ANS,U,2))
  1. Q
  1. ;
  1. CHKDATE(XMIT,BDT,EDT) ;
  1. ;this function call ensures that the date of the encounter is within
  1. ;the parameters.
  1. ;
  1. ;XMIT - IEN of 409.73
  1. ;BDT - the beginning date
  1. ;EDT - the ending date
  1. ;
  1. N ANS
  1. S XMIT=$G(^SD(409.73,XMIT,0))
  1. I XMIT="" S ANS=0 G CHKQ
  1. I $P(XMIT,U,2)]"" S DATE=$P($G(^SCE($P(XMIT,U,2),0)),U,1)
  1. I $P(XMIT,U,3)]"" S DATE=$P($G(^SD(409.74,$P(XMIT,U,3),0)),U,1)
  1. I (DATE<BDT)!(DATE>EDT) S ANS=0
  1. E S ANS="1^"_DATE
  1. CHKQ Q ANS