VAFHLPV2 ;ALB/GRR - HL7 PV2 SEGMENT BUILDER ; 3/6/06 8:25am
;;5.3;Registration;**190,692**;Aug 13, 1993
;
;This routine will build an HL7 PV2 segment for an inpatient.
;
EN(DFN,VAFHMIEN,VAFSTR) ;Entry point of routine
;DFN - Patient Internal Entry Number
;VAFHMIEN - Patient Movement Internal Entry Number
;VAFSTR - Sequence numbers to include in message
;
N VAFHLREC,VAFHA,VAFHSUB S VAFHSUB="" ;Initialize variables
S $P(VAFHLREC,HL("FS"))="PV2" ;Set segment type to PV2
S VAFHMIEN=$$GETAMOV^DGRUUTL(DFN) I VAFHMIEN="" G QUITPV2 ;If movement ien not passed, get admission movement and quit if none
I VAFSTR[",3," D
.S VAFHA=$$GET1^DIQ(405,VAFHMIEN,".11","I") ;retrieve 'Admitted for SC Condition' field
.I VAFHA=1 D ;If admitted for SC condition do following
..S $P(VAFHSUB,$E(HL("ECH")),4)="SC"
..S $P(VAFHSUB,$E(HL("ECH")),5)="ADMITTED FOR SC CONDITION"
..S $P(VAFHSUB,$E(HL("ECH")),6)="VA0039"
.I VAFHA'=1 D ;If not admitted for SC condition do following
..S $P(VAFHSUB,$E(HL("ECH")),4)="NSC"
..S $P(VAFHSUB,$E(HL("ECH")),5)="NOT ADMITTED FOR SC CONDITION"
..S $P(VAFHSUB,$E(HL("ECH")),6)="VA0039"
.S $P(VAFHLREC,HL("FS"),4)=VAFHSUB
;If call center param is on add privacy indicator
I VAFSTR[",22," D
.S VAIP("D")=$G(VAFHDT) D IN5^VADPT
.S $P(VAFHLREC,HL("FS"),23)=$S(+VAIP(19,1)=1:"Y",+VAIP(19,1)=0:"N",1:"")
.D KVAR^VADPT
QUITPV2 Q VAFHLREC
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HVAFHLPV2 1406 printed Oct 16, 2024@19:03:42 Page 2
VAFHLPV2 ;ALB/GRR - HL7 PV2 SEGMENT BUILDER ; 3/6/06 8:25am
+1 ;;5.3;Registration;**190,692**;Aug 13, 1993
+2 ;
+3 ;This routine will build an HL7 PV2 segment for an inpatient.
+4 ;
EN(DFN,VAFHMIEN,VAFSTR) ;Entry point of routine
+1 ;DFN - Patient Internal Entry Number
+2 ;VAFHMIEN - Patient Movement Internal Entry Number
+3 ;VAFSTR - Sequence numbers to include in message
+4 ;
+5 ;Initialize variables
NEW VAFHLREC,VAFHA,VAFHSUB
SET VAFHSUB=""
+6 ;Set segment type to PV2
SET $PIECE(VAFHLREC,HL("FS"))="PV2"
+7 ;If movement ien not passed, get admission movement and quit if none
SET VAFHMIEN=$$GETAMOV^DGRUUTL(DFN)
IF VAFHMIEN=""
GOTO QUITPV2
+8 IF VAFSTR[",3,"
Begin DoDot:1
+9 ;retrieve 'Admitted for SC Condition' field
SET VAFHA=$$GET1^DIQ(405,VAFHMIEN,".11","I")
+10 ;If admitted for SC condition do following
IF VAFHA=1
Begin DoDot:2
+11 SET $PIECE(VAFHSUB,$EXTRACT(HL("ECH")),4)="SC"
+12 SET $PIECE(VAFHSUB,$EXTRACT(HL("ECH")),5)="ADMITTED FOR SC CONDITION"
+13 SET $PIECE(VAFHSUB,$EXTRACT(HL("ECH")),6)="VA0039"
End DoDot:2
+14 ;If not admitted for SC condition do following
IF VAFHA'=1
Begin DoDot:2
+15 SET $PIECE(VAFHSUB,$EXTRACT(HL("ECH")),4)="NSC"
+16 SET $PIECE(VAFHSUB,$EXTRACT(HL("ECH")),5)="NOT ADMITTED FOR SC CONDITION"
+17 SET $PIECE(VAFHSUB,$EXTRACT(HL("ECH")),6)="VA0039"
End DoDot:2
+18 SET $PIECE(VAFHLREC,HL("FS"),4)=VAFHSUB
End DoDot:1
+19 ;If call center param is on add privacy indicator
+20 IF VAFSTR[",22,"
Begin DoDot:1
+21 SET VAIP("D")=$GET(VAFHDT)
DO IN5^VADPT
+22 SET $PIECE(VAFHLREC,HL("FS"),23)=$SELECT(+VAIP(19,1)=1:"Y",+VAIP(19,1)=0:"N",1:"")
+23 DO KVAR^VADPT
End DoDot:1
QUITPV2 QUIT VAFHLREC