PSSHLSCH ;BIR/RLW/MV-BUILD HL7 MESSAGE TO POPULATE ADMIN. SCHEDULE FILE ; 09/02/97 8:38
;;1.0;PHARMACY DATA MANAGEMENT;;9/30/97
; PSJEC=event code from HL7 table 8.4.2.1
; PSJIEN=ien to Administration Schedule file (#51.1)
; SPDNAME=.01 field (name) of super-primary drug
; DDIEN=ien to drug file (#50)
; LIMIT=number of fields in HL7 segment being built
;
EN1 ; start here for pre-install auto load
Q
;We no longer send schedules to OERR
N APPL,CODE,FIELD,LIMIT,MFE,PSJI,SEGMENT,SPDNAME,SYN,SYNONYM,USAGE,X
S PSJEC="MAD",CODE="REP"
D INIT
D LOOP
D SCH^PSSHLU(PSJI)
K PSJEC,PSJIEN,PSJCLEAR
Q
;
EN2 ; start here for "manual" update
Q
;We no longer send schedules to OERR
K ^TMP("HLS",$J)
N APPL,CODE,FIELD,PSJI,LIMIT,MFE,SEGMENT,SPDNAME,SYN,SYNONYM,USAGE,X,Y,DA,DS
S CODE="UPD"
D INIT
S PSJIEN=0 F S PSJIEN=$O(PSJHLDA(PSJIEN)) Q:'PSJIEN D
. S PSJEC=PSJHLDA(PSJIEN)
. D MFE,CALL^PSSHLU(PSJI)
K PSJEC,PSJIEN,PSJHLDA
Q
;
;
INIT ; initialize HL7 variables, set master file identification segment fields
S PSJI=0,LIMIT=6,HLMTN="MFN"
D INIT^PSSHLU X PSJCLEAR
S FIELD(0)="MFI"
S FIELD(1)="^^^51.1^ADMINSTRATION SCHEDULE FILE"
S FIELD(3)=CODE
S FIELD(6)="NE"
D SEGMENT^PSSHLU(LIMIT)
Q
;
LOOP ; loop through SCHEDULE file
S PSJIEN=0 F S PSJIEN=$O(^PS(51.1,PSJIEN)) Q:'PSJIEN D MFE
Q
;
MFE ; set master file entry segment fields
S LIMIT=4 X PSJCLEAR
S X=$G(^PS(51.1,PSJIEN,0))
S FIELD(0)="MFE"
S FIELD(1)=PSJEC
S FIELD(4)="^^^"_PSJIEN_"^"_$P(X,"^")_"~"_$P(X,"^",4)_"^99PSS"
D SEGMENT^PSSHLU(LIMIT)
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSSHLSCH 1606 printed Oct 16, 2024@18:32:28 Page 2
PSSHLSCH ;BIR/RLW/MV-BUILD HL7 MESSAGE TO POPULATE ADMIN. SCHEDULE FILE ; 09/02/97 8:38
+1 ;;1.0;PHARMACY DATA MANAGEMENT;;9/30/97
+2 ; PSJEC=event code from HL7 table 8.4.2.1
+3 ; PSJIEN=ien to Administration Schedule file (#51.1)
+4 ; SPDNAME=.01 field (name) of super-primary drug
+5 ; DDIEN=ien to drug file (#50)
+6 ; LIMIT=number of fields in HL7 segment being built
+7 ;
EN1 ; start here for pre-install auto load
+1 QUIT
+2 ;We no longer send schedules to OERR
+3 NEW APPL,CODE,FIELD,LIMIT,MFE,PSJI,SEGMENT,SPDNAME,SYN,SYNONYM,USAGE,X
+4 SET PSJEC="MAD"
SET CODE="REP"
+5 DO INIT
+6 DO LOOP
+7 DO SCH^PSSHLU(PSJI)
+8 KILL PSJEC,PSJIEN,PSJCLEAR
+9 QUIT
+10 ;
EN2 ; start here for "manual" update
+1 QUIT
+2 ;We no longer send schedules to OERR
+3 KILL ^TMP("HLS",$JOB)
+4 NEW APPL,CODE,FIELD,PSJI,LIMIT,MFE,SEGMENT,SPDNAME,SYN,SYNONYM,USAGE,X,Y,DA,DS
+5 SET CODE="UPD"
+6 DO INIT
+7 SET PSJIEN=0
FOR
SET PSJIEN=$ORDER(PSJHLDA(PSJIEN))
if 'PSJIEN
QUIT
Begin DoDot:1
+8 SET PSJEC=PSJHLDA(PSJIEN)
+9 DO MFE
DO CALL^PSSHLU(PSJI)
End DoDot:1
+10 KILL PSJEC,PSJIEN,PSJHLDA
+11 QUIT
+12 ;
+13 ;
INIT ; initialize HL7 variables, set master file identification segment fields
+1 SET PSJI=0
SET LIMIT=6
SET HLMTN="MFN"
+2 DO INIT^PSSHLU
XECUTE PSJCLEAR
+3 SET FIELD(0)="MFI"
+4 SET FIELD(1)="^^^51.1^ADMINSTRATION SCHEDULE FILE"
+5 SET FIELD(3)=CODE
+6 SET FIELD(6)="NE"
+7 DO SEGMENT^PSSHLU(LIMIT)
+8 QUIT
+9 ;
LOOP ; loop through SCHEDULE file
+1 SET PSJIEN=0
FOR
SET PSJIEN=$ORDER(^PS(51.1,PSJIEN))
if 'PSJIEN
QUIT
DO MFE
+2 QUIT
+3 ;
MFE ; set master file entry segment fields
+1 SET LIMIT=4
XECUTE PSJCLEAR
+2 SET X=$GET(^PS(51.1,PSJIEN,0))
+3 SET FIELD(0)="MFE"
+4 SET FIELD(1)=PSJEC
+5 SET FIELD(4)="^^^"_PSJIEN_"^"_$PIECE(X,"^")_"~"_$PIECE(X,"^",4)_"^99PSS"
+6 DO SEGMENT^PSSHLU(LIMIT)
+7 QUIT
+8 ;