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

SCRPO5.m

Go to the documentation of this file.
  1. SCRPO5 ;BP-CIOFO/KEITH - Historical Patient Assignment Detail ; 01 Jul 99 9:30 PM
  1. ;;5.3;Scheduling;**177,505**;AUG 13, 1993;Build 20
  1. ;
  1. PTDET N DIC,SC,DFN,SCPT0,X,Y,SCDT,DTOUT,DUOUT
  1. D TITL^SCRPW50("Historical Patient Assignment Detail")
  1. S DIC="^DPT(",DIC(0)="AEMQZ" D ^DIC I $D(DTOUT)!$D(DUOUT) G EXIT
  1. G:Y<1 EXIT S DFN=+Y,SCPT0=Y(0),SC="SC",SCDT("B")="TODAY"
  1. G:'$$DTR^SCRPO(.SC,.SCDT,.SCDT) EXIT
  1. N ZTSAVE F X="DFN","SCPT0","SC(" S ZTSAVE(X)=""
  1. W ! D EN^XUTMDEVQ("RUN^SCRPO5","Historical Patient Assignment Detail",.ZTSAVE)
  1. EXIT D DISP0^SCRPW23,END^SCRPW50 Q
  1. ;
  1. RUN ;Print report
  1. N SCI,SCPNOW,SCLINE,SCPAGE,SCSUB,SCFF,SCFOUND,SCLN,SCAGE,SCDATA
  1. N SCDOB,SCGEND,SCIFN,SCOUT,SCPNAME,SCREC,SCSH,SCSSN,SCTITL,SCDT
  1. N SCEU,SCEUNM,SCLEBNM,SCLEDT,SCSTAT,SCSTNM,SCX,SCY
  1. K ^TMP("SCRPT",$J) M SCDT=SC("DTR") S SCDT="SCDT"
  1. S SCI=$$GETALL^SCAPMCA(DFN,.SCDT),SCSUB="",(SCFF,SCLN,SCFOUND,SCOUT)=0
  1. F S SCSUB=$O(^TMP("SC",$J,DFN,SCSUB)) Q:SCSUB=""!(SCSUB]"PCTM") D
  1. .S SCX=$P($T(@SCSUB),";;",2) F SCI=1:1:9 S SCX(SCI)=$P(SCX,U,SCI)
  1. .S ^TMP("SCRPT",$J,SCX(1))=SCX(2),SCX(3)=U_SCX(3)
  1. .S SCI=0 F S SCI=$O(^TMP("SC",$J,DFN,SCSUB,SCI)) Q:'SCI D
  1. ..S SCDATA=^TMP("SC",$J,DFN,SCSUB,SCI)
  1. ..S SCNAME=$P(SCDATA,U,SCX(8)) ;provider/position/team name
  1. ..S SCIFN=$P(SCDATA,U,SCX(4)) ;history record ifn
  1. ..S SCACT=$P(SCDATA,U,SCX(5)) ;active date
  1. ..Q:'SCACT
  1. ..S SCINAC=$P(SCDATA,U,SCX(6)) ;inactive date
  1. ..S SCREC=$G(@SCX(3)@(SCIFN,0)) ;history record
  1. ..Q:'$L(SCREC)
  1. ..S SCUSER=$P(SCREC,U,SCX(7)) ;user duz
  1. ..S SCDENT=$P(SCREC,U,SCX(9)) ;date entered
  1. ..S SCEU=$P(SCREC,U,6),SCEUNM=$$GET1^DIQ(200,SCEU_",",.01) ;editing user
  1. ..S SCSTAT=$P(SCREC,U,12),SCSTNM=$$GET1^DIQ(404.43,SCIFN_",",.12) ;status
  1. ..S SCLEDT=$P(SCREC,U,8),SCLEBNM=$$GET1^DIQ(200,SCLEDT_",",.01) ;last edited by
  1. ..D SLINE(SCX(1),SCNAME,SCACT,SCINAC,SCUSER,SCDENT,SCEUNM,SCSTNM,SCLEBNM,.SCLN)
  1. ..Q
  1. .Q
  1. S SCTITL(1)="<*> HISTORICAL PATIENT ASSIGNMENT DETAIL <*>"
  1. S SCTITL(2)="For assignments effective "_SC("DTR","PBDT")_" to "_SC("DTR","PEDT")
  1. S SCLINE="",$P(SCLINE,"-",81)="",SCPAGE=1
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S SCPNOW=$P(Y,":",1,2)
  1. S SCPNAME=$P(SCPT0,U),SCSSN=$P(SCPT0,U,9)
  1. S SCGEND=$S($P(SCPT0,U,2)="M":"MALE",1:"FEMALE")
  1. S (Y,SCAGE)=$P(SCPT0,U,3) X ^DD("DD") S SCDOB=Y
  1. S SCAGE=$E(DT,1,3)-$E(SCAGE,1,3)-($E(DT,4,7)<$E(SCAGE,4,7))
  1. D:$E(IOST)="C" DISP0^SCRPW23 D HDR^SCRPO(.SCTITL,80),SHDR
  1. W:'SCFOUND !!?21,"No assignments found for this patient."
  1. I SCFOUND S SCSUB=0 F S SCSUB=$O(^TMP("SCRPT",$J,SCSUB)) Q:'SCSUB!SCOUT D
  1. .D:$Y>(IOSL-5) HDR^SCRPO(.SCTITL,80),SHDR Q:SCOUT
  1. .S SCSH=^TMP("SCRPT",$J,SCSUB)
  1. .W:SCSUB>1 ! D SSHDR(SCSH) S SCACT=""
  1. .I '$O(^TMP("SCRPT",$J,SCSUB,"")) W " (none found)" Q
  1. .F S SCACT=$O(^TMP("SCRPT",$J,SCSUB,SCACT)) Q:SCACT=""!SCOUT D
  1. ..S SCI=0 F S SCI=$O(^TMP("SCRPT",$J,SCSUB,SCACT,SCI)) Q:'SCI!SCOUT D
  1. ...D:$Y>(IOSL-3) HDR^SCRPO(.SCTITL,80),SHDR,SSHDR(SCSH,1) Q:SCOUT
  1. ...S SCX=^TMP("SCRPT",$J,SCSUB,SCACT,SCI)
  1. ...W !,$P(SCX,U),?28,$P(SCX,U,2),?40,$P(SCX,U,3),?52,$P(SCX,U,4)
  1. ...I SCSUB=3 D
  1. ....W !,"User Entering: ",$P(SCX,U,6)
  1. ....W !,"Last Edited By: ",$P(SCX,U,7)
  1. ....W !,"Status: ",$P(SCX,U,5)
  1. ...Q
  1. ..Q
  1. .Q
  1. I 'SCOUT,$E(IOST)="C" N DIR S DIR(0)="E" W ! D ^DIR
  1. K ^TMP("SCRPT",$J) Q
  1. ;
  1. SHDR ;Subheader
  1. Q:SCOUT
  1. W !,"Patient: ",$E(SCPNAME,1,18),?29,"SSN: ",SCSSN,?46,"DOB: ",SCDOB
  1. W ?64,"AGE: ",SCAGE,?74,$J(SCGEND,6),!,SCLINE
  1. Q:'SCFOUND
  1. W !,"Assignment",?28,"Active",?40,"Inactive",?52,"Assigned by/date"
  1. W !,"-------------------------- ---------- ---------- ----------------------------"
  1. Q
  1. ;
  1. SSHDR(X,CONT) ;Subheader
  1. ;Input: X=category
  1. ;Input: CONT='1' for continuation (optional)
  1. W !,X,$S($G(CONT):" (cont.)",1:""),":"
  1. Q
  1. ;
  1. SLINE(SCORD,SCNAME,SCACT,SCINAC,SCUSER,SCDENT,SUNM,SCTNM,SCBNM,SCLN) ;Set report global
  1. ;Input: SCORD=output order
  1. ;Input: SCNAME=provider/position/team name
  1. ;Input: SCACT=active date
  1. ;Input: SCINAC=inactive date
  1. ;Input: SCUSER=user duz
  1. ;Input: SCDENT=date entered
  1. ;Input: SUNM=entered by
  1. ;Input: SCTNM=status
  1. ;Input: SCBNM=last edited by
  1. ;
  1. ;N SCX,SCY
  1. S SCFOUND=1,SCLN=SCLN+1
  1. S SCX=$E(SCNAME,1,25)_U_$$SDT(SCACT)_U_$$SDT(SCINAC),SCY=$$SDT(SCDENT)
  1. S:$L(SCY) SCY=" ("_SCY_")"
  1. S SCX=SCX_U_$E($P($G(^VA(200,+SCUSER,0)),U),1,(28-$L(SCY)))_SCY_U_SCTNM_U_SUNM_U_SCBNM
  1. S ^TMP("SCRPT",$J,SCORD,-SCACT,SCLN)=SCX
  1. Q
  1. ;
  1. CODE ;Data handling instructions
  1. ; The following $TEXT lines contain data handling instructions
  1. ; in the format: $PIECE 1 = output order
  1. ; 2 = subtitle
  1. ; 3 = global reference of history record
  1. ; 4 = $piece of history record ifn
  1. ; 5 = $piece of active date
  1. ; 6 = $piece of inactive date
  1. ; 7 = $piece of user (in history record)
  1. ; 8 = $piece of provider/position/team name
  1. ; 9 = $piece of date entered
  1. ;
  1. NPCPOS ;;7^Non-PC Position^SCPT(404.43)^4^5^6^6^2^7
  1. NPCPPOS ;;9^Non-PC Preceptor Position^SCTM(404.53)^16^14^15^7^2^8
  1. NPCPPR ;;8^Non-PC Preceptor Provider^SCTM(404.52)^11^9^10^7^2^8
  1. NPCPR ;;6^Non-PC Provider^SCTM(404.52)^11^9^10^7^2^8
  1. NPCTM ;;10^Non-PC Team^SCPT(404.42)^3^4^5^11^2^12
  1. PCAP ;;2^PC Associate Provider^SCTM(404.52)^11^9^10^7^2^8
  1. PCPOS ;;3^PC Position^SCPT(404.43)^4^5^6^6^2^7
  1. PCPPOS ;;4^PC Preceptor Position^SCTM(404.53)^16^14^15^7^2^8
  1. PCPR ;;1^PC Provider^SCTM(404.52)^11^9^10^7^2^8
  1. PCTM ;;5^PC Team^SCPT(404.42)^3^4^5^11^2^12
  1. ;
  1. SDT(X) ;Slashed date
  1. S X=$E(X,1,7) Q:X'?7N ""
  1. Q $E(X,4,5)_"/"_$E(X,6,7)_"/"_(17+$E(X))_$E(X,2,3)