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

REGCONVT.m

Go to the documentation of this file.
  1. REGCONVT ;CONVERT REG DATA TO TAPE [ 08/26/87 8:14 AM ]
  1. ;MODIFIED TO PROCESS MULTIPLE HEADERS ON DELETE RECORDS RFD&WLC 4-28-87
  1. ;TJF/DPSC
  1. R !!,"ENTER PRINTER PORT, NULL = 70 ",PR S:PR="" PR=70
  1. K DISP,OSET,FLIP,GDREC,FACNUM,FACCODE,FACNAME,^REGRG3
  1. S BLKS="",HR="",CNTIN=0,RG3=0,CNTOUT=0,CNTERR=0,X="",Z=""
  1. S RG12=0,FACSAVE="",FACSEQ="0001",ZR="000000"
  1. F I=1:1:254 S BLKS=BLKS_" "
  1. S %DT="",X="T" D ^%DT S DATE=Y
  1. W !!,"MOUNT 1600 BPI TAPE ON DEVICE 48"
  1. R !!,"REPLY ANY CHARACTER TO CONTINUE ",ANS#1
  1. RGBL S GBL="AGTXDATA"
  1. S GBLPTT="^"_GBL I '$D(@GBLPTT) W !,"GLOBAL 'AGTXDATA' DOES NOT EXIST, JOB TERMINATED" Q
  1. S GBLPT="^"_GBL_"(Z)"
  1. SETTIME S STRTTIME=$H
  1. S Z=$O(@GBLPT) S INPUT=@GBLPT I INPUT["RG1" W !!,"HEADER RECORD MISSING, RUN TERMINATED" Q
  1. S FACCODE=$P(INPUT,"^",1),FACNAME=$P(INPUT,"^",2)
  1. S FACSAVE=FACCODE
  1. S Z=$O(@GBLPT) S INPUT=@GBLPT_"^",AGN=""
  1. I Z="" W !!,"NO DATA IN GLOBAL, RUN TERMINATED" Q
  1. I $E(INPUT,1,3)="RG3" G KFLIP
  1. I $E(INPUT,1,3)'="RG1" W !!,"FIRST RECORD INVALID, RUN TERMINATED" Q
  1. KFLIP ;
  1. K FLIP
  1. OPNTAPE O 48:("EFU":176:310):3 E U 0 W !,"TAPE UNIT 48 NOT ON-LINE, READY DEVICE" Q
  1. U 48 W *5
  1. S %ZA=$ZA,%ZA=%ZA\4#2 I %ZA=1 U 0 W !!,"TAPE UNIT 48 NEEDS WRITE RING, JOB ABORTED" Q
  1. D INT^%D
  1. O PR U PR W #,?10,"R E G I S T R A T I O N C O N V E R S I O N E R R O R L I S T"," ",FACCODE," ",FACNAME," ",%DAT1
  1. LPRC3 ;
  1. S FACNUM=$P(INPUT,"^",3) D FIXNUM
  1. I $E(INPUT,1,3)="RG3" S ^REGRG3(RG3)=INPUT S CNTIN=CNTIN+1,RG3=RG3+1 S Z=$O(@GBLPT) G:Z="" EOJ S INPUT=@GBLPT_"^" G LPRC3
  1. G FLIPREC
  1. FIXNUM S FL=6-$L(FACNUM)
  1. S FACNUM=$E(ZR,1,FL)_FACNUM
  1. Q
  1. READ S Z=$O(@GBLPT) G:Z="" EOJ S HOLD=@GBLPT S INPUT="",AGN=""
  1. S INPUT=HOLD
  1. F J=1:1:$L(INPUT) I $E(INPUT,J)?1L S INPUT=$E(INPUT,1,J-1)_$C($A($E(INPUT,J))-32)_$E(INPUT,J+1,$L(INPUT))
  1. I $E(INPUT,1,3)="RG3" S ^REGRG3(RG3)=INPUT S CNTIN=CNTIN+1,RG3=RG3+1 G READ
  1. I $D(FLIP) I $E(INPUT,1,3)="RG1" S FACNUM=$P(INPUT,"^",3) D FIXNUM K FLIP,GDREC G FLIPREC
  1. I $E(INPUT,1,3)="RG2" S FLIP="" G FLIPREC
  1. WERR W !!,"RECORD SECUENCE ERROR, RECORD COUNT IS ",CNTIN," DATA RECORD IS ",!!,INPUT G READ
  1. FLIPREC I $E(INPUT,1,3)="RG1" S DISP=0,OSET=0,OUTPUT=FACSEQ
  1. E I $E(INPUT,1,3)="RG2" S DISP=20,OSET=176,OUTPUT=""
  1. E W !!,"RECORD CODE INVALID, VALUE FOUND IS ",INPUT W !!,"RUN TERMINATED" Q
  1. S CNTIN=CNTIN+1
  1. S I=0
  1. LOOKUP S I=I+1 S X=$P(INPUT,"^",I+1) G:$P($T(TABLE+DISP+I),";",5)["SUB" HOLD G:$P($T(TABLE+DISP+I),";",5)["END" EOD
  1. I $P($T(TABLE+DISP+I),";",7)="S1" S HD="" S FL=6-$L(X) S HD=$E(ZR,1,FL)_X S X=HD,$P(INPUT,"^",I+1)=HD
  1. I $P($T(TABLE+DISP+I),";",7)="S2" I $P(INPUT,"^",I+1)'="" I $P(INPUT,"^",I+2)="" W !!,FACNUM," MAILING ADDRESS STREET EXISTS, MAILING ADDRESS TOWN MUST EXIST",!,"DATA RECORD IS ",INPUT
  1. I $P($T(TABLE+DISP+I),";",7)="S3" I $P(INPUT,"^",I+1)'="" I $P(INPUT,"^",I+2)="" W !!,FACNUM," MAILING ADDRESS TOWN EXISTS, MAILING ADDRESS STATE MUST EXIST",!,"DATA RECORD IS ",INPUT
  1. I $L(X)>$P($T(TABLE+DISP+I),";",4) W !!,"WARNING - ",$P($T(TABLE+DISP+I),";",5)," IS TRUNCATED TO ",$P($T(TABLE+DISP+I),";",4)," POSITIONS, VALUE BEFORE TRUNCATION IS '",X,"'",!,INPUT D SKPIT G:AGN="X" READ G BYPSS
  1. E S OUTPUT=OUTPUT_$P(INPUT,"^",I+1)
  1. BYPSS ;
  1. S OUTPUT=OUTPUT_$E(BLKS,1,($P($T(TABLE+DISP+I+1),";",3)-OSET)-$L(OUTPUT)-1)
  1. G LOOKUP
  1. HOLD S SOUTPUT=OUTPUT S GDREC="" U PR G READ
  1. EOD I $D(GDREC) D
  1. .I FACSAVE'=$E(SOUTPUT,5,10) S FACSAVE=$E(SOUTPUT,5,10),FACSEQ=FACSEQ+1
  1. . S:FACSEQ>9999 FACSEQ="0001"
  1. .S RG12=RG12+1,CNTOUT=CNTOUT+1 U 48 W SOUTPUT,OUTPUT U 0 W !,CNTOUT U PR
  1. .S FL=4-$L(FACSEQ),FACSEQ=$E(ZR,1,FL)_FACSEQ
  1. K GDREC G READ
  1. EOJ ;END OF JOB PROCESSING
  1. U 48 C 48
  1. I I '$D(^REGRG3) U PR W !!,"NO RG3 RECORDS PRESENT" G FINISH
  1. ROPN ;
  1. O 48:("EFU":80:80):3 E U 0 W !!,"TAPE UNIT 48 NOT READY, ANY KEY TO CONTINUE ",ANS#1 G ROPN
  1. BLDHDR S OUTPUT="",X="" U 48 W *1 ; BACKSPACE OVER LAST TAPE MARK
  1. ;DSM WRITES 2 TAPE MARKS AT CLOSE THEN BACKS UP 1 TAPE
  1. ;MARK. THE NEXT COMMAND W *1 BACKS UP OVER THE 1ST TAPE
  1. ;MARK
  1. READRG3 S X=$O(^REGRG3(X)) G:X="" FINISH S DATA=^REGRG3(X)
  1. U 48
  1. RFD1 I X>1 G:$P(DATA,"^",2)=$P(^REGRG3(X-1),"^",2) SETPTID
  1. S HR=""
  1. I HR="" S HR="X",OUTPUT="|"_"|"_"|"_$E($P(DATA,"^",2),1,2)_$E($P(DATA,"^",2),1,6)_$E($P(DATA,"^",2),1,6)_"RRD01 "_$E(DATE,4,7)_$E(DATE,2,3)_" DELETE RECORDS REGISTRATION"_$E(BLKS,1,19) S CNTOUT=CNTOUT+1 W OUTPUT
  1. SETPTID S HD="",FL=6-$L($P(DATA,"^",3)),HD=$E(ZR,1,FL)_$P(DATA,"^",3),$P(DATA,"^",3)=HD
  1. SETMGID S HD1="",FL=6-$L($P(DATA,"^",4)),HD1=$E(ZR,1,FL)_$P(DATA,"^",4)
  1. U PR
  1. I $L($P(DATA,"^",5))>2 W !!,$P(DATA,"^",2)," ",$P($T(RG3DESC+1),";",3),!,DATA S CMTERR=CNTERR+1 G READRG3
  1. I $L($P(DATA,"^",6))>1 W !!,$P(DATA,"^",2)," ",$P($T(RG3DESC+2),";",3),!,DATA S CNTERR=CNTERR+1 G READRG3
  1. I $L($P(DATA,"^",3))>6 W !!,$P(DATA,"^",2)," ",$P($T(RG3DESC+3),";",3),!,DATA S CNTERR=CNTERR+1 G READRG3
  1. U 48
  1. BLDDTL S OUTPUT="?"_$P(DATA,"^",5)_$P(DATA,"^",6)_"RRR"_$P(DATA,"^",3)_"99R"_$E(DATE,2,7)_"*** 2"_$E($P(DATA,"^",2),5,6)_$E(BLKS,1,43) D:HD1'=ZR BLDMRGID S CNTOUT=CNTOUT+1 W OUTPUT
  1. G READRG3
  1. BLDMRGID ;SET MERGE ID IN OUTPUT RECORD
  1. S OUTPUT=$E(OUTPUT,1,25)_"RRR"_HD1_$E(OUTPUT,35,80)
  1. Q
  1. FINISH ;
  1. S T=$P($H,",",2)-$P(STRTTIME,",",2)
  1. S S=T#60
  1. S X=T\60
  1. S H=X\60
  1. S M=X#60
  1. U 0 W !!,"RUN TIME ",H," ",M," ",S
  1. LASTOUT ;
  1. U PR
  1. W !,"RECORDS INPUT ",CNTIN
  1. W !,"RECORDS OUTPUT ",CNTOUT
  1. W !,"RECORDS REJECTED ",CNTERR
  1. W !!,"TOTAL (RG1/RG2) RECORDS ",RG12
  1. W !!,"TOTAL (RG3) RECORDS ",RG3
  1. S RG12=RG12+RG3
  1. W !!,"TOTAL RECORDS TO BE ENTERED"
  1. W !,"INTO PCIS LOGBOOK ",RG12
  1. W #,#
  1. I $D(^REGRG3) U 48 W *3 W *5 C 48
  1. U 0
  1. W !!,"RECORDS INPUT ",CNTIN
  1. W !,"RECORDS OUTPUT ",CNTOUT
  1. W !,"RECORDS REJECTED ",CNTERR
  1. W !,"DELETE/MERGE RECORDS ",RG3
  1. W !!,"TOTHE DELETE/MERGE PROCESS WILL CREATE MULTIPLE HEADERS AS FACILITIES CHANGE"
  1. W !!,"TOTAL RECORDS (RG1/RG2) AND RG3 ",RG12,", SHOULD EQUAL AREA COUNT"
  1. W !!,"END OF PROCESSING" C PR Q
  1. SKPIT I $P($T(TABLE+DISP+1),";",6) S CNTERR=CNTERR+1,AGN="X"
  1. E S OUTPUT=OUTPUT_$E($P(INPUT,"^",I+1),1,$P($T(TABLE+DISP+I),";",4))
  1. Q
  1. TABLE ;1ST FIELD IS POSITION IN OUTPUT RECORD 2ND IS INPUT FIELD LENGTH
  1. RG1DESC ;;005;06;FACILITY CODE
  1. ;;011;06;UNIT RECORD NUMBER;;S1
  1. ;;017;20;LAST NAME;X
  1. ;;037;11;FIRST NAME;X
  1. ;;048;11;MIDDLE NAME;X
  1. ;;059;02;CLASSIFICATION CODE
  1. ;;061;07;DATE OF BIRTH
  1. ;;068;01;SEX
  1. ;;069;09;SOCIAL SECURITY NUMBER
  1. ;;078;03;TRIBE CODE
  1. ;;081;01;BLOOD QUANTUM
  1. ;;082;20;FATHER LAST NAME;X
  1. ;;102;11;FATHER FIRST NAME;X
  1. ;;113;01;FATHER MIDDLE INITIAL
  1. ;;114;07;COMMUNITY OF RESIDENCE
  1. ;;121;30;MAILING ADDRESS STREET;X;S2
  1. ;;151;15;MAILING ADDRESS TOWN;X;S3
  1. ;;166;02;MAILING ADDRESS STATE
  1. ;;168;09;MAILING ADDRESS ZIP
  1. ;;177;;END OF RG1 TABLESUB
  1. RG2DESC ;;177;20;MOTHER NAME LAST;X
  1. ;;197;11;MOTHER NAME FIRST;X
  1. ;;208;01;MOTHER NAME MIDDLE INITIAL
  1. ;;209;06;DATE OF DEATH
  1. ;;215;01;MEDICARE A ELIGIBLE
  1. ;;216;14;MEDICARE A ENROLL NUMBER
  1. ;;225;01;MEDICARE A SUFFIX
  1. ;;230;06;MEDICARE A ELIGIBILTY
  1. ;;236;01;MEDCIARE B ELIGIBLE
  1. ;;237;14;MEDCIARE B ENROLL NUMBER
  1. ;;246;01;MEDCIARE B SUFFIX
  1. ;;251;06;MEDICARE B ELIGIBILITY
  1. ;;257;01;MEDICARE AB ELIGIBLE
  1. ;;258;14;MEDICARE AB ENROLL NUMBER
  1. ;;267;01;MEDICARE AB SUFFIX
  1. ;;272;06;MEDICARE AB ELIGIBILITY
  1. ;;278;01;MEDICAID ELIGIBLE
  1. ;;279;14;MEDICAID NUMBER
  1. ;;288;01;MEDICAID SUFFIX
  1. ;;293;06;MEDICAID ELIGIBILITY
  1. ;;299;01;VETERAN
  1. ;;300;01;BLUE CROSS ELIGIBALE
  1. ;;301;01;OTHER ELIGIBLE
  1. ;;302;01;CHS ELIGIBILITY
  1. ;;303;01;PATIENT SIGNED
  1. ;;304;01;ADD/MODIFY CODE
  1. ;;305;06;OPT/MM RELEASE DATE
  1. ;;311;;END OF RG2 TABLE
  1. END ;END OF PROGRAM
  1. RG3DESC ;;DELETE RECORD FORMAT
  1. ;;PIECE 5 IS INVALID - PATIENT INITIALS
  1. ;;PIECE 6 IS INVALID - PATIENT SEX
  1. ;;PIECE 3 IS INVALID - PATIENT ID