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

SCRPPAHS.m

Go to the documentation of this file.
  1. SCRPPAHS ;ALB/DJS - Position Assignment History Extract for PCMMR Data Validation; 04/18/14
  1. ;;5.3;Scheduling;**620**;AUG 13, 1993;Build 11
  1. ;
  1. ENTER ; Entry point
  1. ;
  1. ; Extract file will be a delimited text file (.TXT) that will provide information for PCMM data validation
  1. ; Delimiter is a pipe ("|") character
  1. ;
  1. ; FILE OUTPUT:
  1. ;
  1. ; STANUM - Station #
  1. ; POSAHIEN - IEN of Position Assignment History
  1. ; TPIEN - IEN of Team Position
  1. ; TMPOS - Team Position
  1. ; EFFDT - Effective Date
  1. ; PRACTIEN - IEN of Practitioner
  1. ; PRACTNR - Practitioner
  1. ; STATUS - Status
  1. ; STATRSN - Status Reason
  1. ; FTEEEQU - FTEE Equivalent
  1. ; DT4INACT - Date for Inactivation
  1. ; AVAILPOS - Available Positions
  1. ; MAXPT - Max # of Patients
  1. ; CURACTPT - Current Active Patients
  1. ; ADJPANEL - Adjusted Panel Size
  1. ; AUTINACT - Inactivated Automatically
  1. ; FTEEHST - FTEE History
  1. ;
  1. N SCMCPATH,SCMCHFS,SCMCERR,SCMCMODE,MSG,IOF
  1. N SITE,SCDATA,SCIENS,STANUM,POSAHIEN,TPIEN,TMPOS,EFFDT,PRACTIEN,PRACTNR,STATUS,DATE,ENTRY,POP
  1. N STATRSN,FTEEEQU,DT4INACT,AVAILPOS,MAXPT,CURACTPT,ADJPANEL,AUTINACT,FTEEHST,FTEEDAT,FTEEVAL
  1. S SITE=$$SITE^VASITE,STANUM=$P(SITE,"^",3)
  1. S SCMCPATH=$$DEFDIR^%ZISH(),SCMCHFS=STANUM_"_PCMMPOSITIONASSIGNMENTHISTORY.TXT",SCMCERR=0 U 0 W !!,SCMCPATH
  1. D HFSOPEN("SCMCRP",SCMCPATH,SCMCHFS,"W") I SCMCERR G END
  1. U IO
  1. D COLHDR,SETREC G END
  1. ;
  1. SETREC ;$O through position assignment history file
  1. S POSAHIEN=0
  1. F S POSAHIEN=$O(^SCTM(404.52,POSAHIEN)) Q:POSAHIEN=""!(POSAHIEN'?.N) D
  1. .K SCDATA
  1. .S SCIENS=+$G(POSAHIEN)_","
  1. .D GETS^DIQ(404.52,SCIENS,".01;.02;.03;.04;.05;.07;.08;.09;.091;.096;.097;.098;.099;.11","IE","SCDATA","")
  1. .S TPIEN=$G(SCDATA(404.52,SCIENS,.01,"I"))
  1. .S TMPOS=$G(SCDATA(404.52,SCIENS,.01,"E"))
  1. .S EFFDT=$G(SCDATA(404.52,SCIENS,.02,"E"))
  1. .S PRACTIEN=$G(SCDATA(404.52,SCIENS,.03,"I"))
  1. .S PRACTNR=$G(SCDATA(404.52,SCIENS,.03,"E"))
  1. .S STATUS=$G(SCDATA(404.52,SCIENS,.04,"E"))
  1. .S STATRSN=$G(SCDATA(404.52,SCIENS,.05,"E"))
  1. .S FTEEEQU=$G(SCDATA(404.52,SCIENS,.09,"E"))
  1. .S DT4INACT=$G(SCDATA(404.52,SCIENS,.091,"E"))
  1. .S AVAILPOS=$G(SCDATA(404.52,SCIENS,.096,"E"))
  1. .S MAXPT=$G(SCDATA(404.52,SCIENS,.097,"E"))
  1. .S CURACTPT=$G(SCDATA(404.52,SCIENS,.098,"E"))
  1. .S ADJPANEL=$G(SCDATA(404.52,SCIENS,.099,"E"))
  1. .S AUTINACT=$G(SCDATA(404.52,SCIENS,.11,"I"))
  1. .S FTEEHST=$S($D(^SCTM(404.52,POSAHIEN,1,0)):1,1:"") I FTEEHST S ENTRY=0 D
  1. ..F S ENTRY=$O(^SCTM(404.52,POSAHIEN,1,ENTRY)) Q:ENTRY=""!(ENTRY'?.N) D
  1. ...S FTEEDAT=$P(^SCTM(404.52,POSAHIEN,1,ENTRY,0),"^"),DATE=$$FMTE^XLFDT(FTEEDAT,1)
  1. ...S FTEEVAL=$P(^SCTM(404.52,POSAHIEN,1,ENTRY,0),"^",2)
  1. ...S WRTLN(ENTRY)="|"_DATE_"|"_FTEEVAL
  1. ...Q
  1. .W STANUM_"|"_POSAHIEN_"|"_TPIEN_"|"_TMPOS_"|"_EFFDT_"|"_PRACTIEN_"|"_PRACTNR_"|"_STATUS_"|"_STATRSN_"|"_FTEEEQU_"|"_DT4INACT_"|"_AVAILPOS_"|"_MAXPT_"|"_CURACTPT_"|"_ADJPANEL_"|"_AUTINACT I 'FTEEHST W !
  1. .I FTEEHST F I=1:1 Q:'$D(WRTLN(I)) D
  1. ..W:I>1 STANUM_"|||||||||||||||" W WRTLN(I),!
  1. .K FTEEHST,WRTLN,I
  1. .Q
  1. Q
  1. ;
  1. COLHDR ;Create column header for Position Assignment History extract file
  1. W "Station #|Pos. Assign. History IEN|Team Position IEN|Team Position|Effective Date|Practitioner IEN|Practitioner|Status|Status Reason|FTEE Equivalent|Date Flagged for Inactivation|"
  1. W "Available Positions|Max # of Patients|Current Active Patients|Adjusted Panel Size|Inactivated Automatically|FTEE Date|FTEE Value",!
  1. Q
  1. ;
  1. END D HFSCLOSE("SCMCRP",SCMCHFS)
  1. I '+SCMCERR D Q ;Create pipe delimited output if no errors
  1. .S MSG=$NA(^TMP("SCMC",$J))
  1. ;Replace "##FFFF##" with Form Feeds - code needed for LINUX environments
  1. S I=0 F S I=$O(^TMP("SCMC",$J,1,I)) Q:'I D
  1. .S:^TMP("SCMC",$J,1,I)["##FFFF##" ^TMP("SCMC",$J,1,I)=$P(^TMP("SCMC",$J,1,I),"##FFFF##")_$C(13,12)_$P(^TMP("SCMC",$J,1,I),"##FFFF##",2)
  1. .S ^TMP("SCMC",$J,1,I)=^TMP("SCMC",$J,1,I)_$C(13)
  1. .S:^TMP("SCMC",$J,1,I)["$END" ^TMP("SCMC",$J,1,I)=""
  1. S MSG=$NA(^TMP("SCMC",$J))
  1. Q
  1. ;
  1. HFSOPEN(HANDLE,SCMCPATH,SCMCHFS,SCMCMODE) ; Open File
  1. D OPEN^%ZISH(HANDLE,SCMCPATH,SCMCHFS,$G(SCMCMODE,"W")) D:POP Q:POP
  1. .S SCMCERR=1,^TMP("SCMC",$J,1)="0^Unable to open file "
  1. S IOF="$$IOF^SCRPPAHS" ;resets screen position and adds page break flag - added to deal with Linux environments.
  1. Q
  1. ;
  1. HFSCLOSE(HANDLE,SCMHFS) ;Close HFS and unload data
  1. D CLOSE^%ZISH(HANDLE)
  1. Q
  1. ;
  1. IOF() ;used to reset position and insert page break flag when @IOF is executed.
  1. S $X=0,$Y=0
  1. Q "##FFFF##"_$C(13,10)
  1. ;