- SRHLVUO2 ;BIR/DLR - Surgery Interface (Cont.) Utilities for building Outgoing HL7 Segments ; [ 06/23/99 7:14 AM ]
- ;;3.0; Surgery ;**41,88,127**;24 Jun 93
- ; Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
- ZIS(SRI) ;sets ^TMP("HLS",$J,HLSDT,I) global for sending ZIS Appointment Information - Service Segment(s)
- N X,XX,SRJ,SRM,SRP,SRREP,SRX,ZIS
- S X=0 F S X=$O(^SRF(CASE,13,X)) Q:'X I $G(^(X,2))'="" D
- .S ZIS(1)=$P(^SRF(CASE,13,X,2),U) I ZIS(1)'="" S SRX=$$CPT^ICPTCOD(ZIS(1),$P($G(^SRF(CASE,0)),U,9)),ZIS(1)=$P(SRX,U,2)_HLCOMP_$P(SRX,U,3)_HLCOMP_"C4",ZIS(5)=$S($P(^SRF(CASE,13,X,0),U,3)="Y":"CONFIRMED",1:"PENDING")
- .K ZIS(6) S (SRJ,SRREP)=0 F S SRJ=$O(^SRF(CASE,13,X,"MOD",SRJ)) Q:'SRJ S SRP=$P(^SRF(CASE,13,X,"MOD",SRJ,0),U),SRM=$$MOD^ICPTMOD(SRP,"I",$P($G(^SRF(CASE,0)),U,9)) D
- ..S ZIS(6)=$G(ZIS(6))_$S(SRREP:HLREP,1:"")_$P(SRM,U,2)_HLCOMP_$P(SRM,U,3)_HLCOMP,SRREP=1
- .S ^TMP("HLS",$J,HLSDT,SRI)="ZIS"_HLFS F XX=1:1:5 S ^TMP("HLS",$J,HLSDT,SRI)=^TMP("HLS",$J,HLSDT,SRI)_$G(ZIS(XX))_$S(XX=5:"",1:HLFS)
- .I $L($G(ZIS(6))) S ^TMP("HLS",$J,HLSDT,SRI)=^TMP("HLS",$J,HLSDT,SRI)_HLFS_ZIS(6)
- .S SRI=SRI+1
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSRHLVUO2 1146 printed Jan 18, 2025@03:40:48 Page 2
- SRHLVUO2 ;BIR/DLR - Surgery Interface (Cont.) Utilities for building Outgoing HL7 Segments ; [ 06/23/99 7:14 AM ]
- +1 ;;3.0; Surgery ;**41,88,127**;24 Jun 93
- +2 ; Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
- ZIS(SRI) ;sets ^TMP("HLS",$J,HLSDT,I) global for sending ZIS Appointment Information - Service Segment(s)
- +1 NEW X,XX,SRJ,SRM,SRP,SRREP,SRX,ZIS
- +2 SET X=0
- FOR
- SET X=$ORDER(^SRF(CASE,13,X))
- if 'X
- QUIT
- IF $GET(^(X,2))'=""
- Begin DoDot:1
- +3 SET ZIS(1)=$PIECE(^SRF(CASE,13,X,2),U)
- IF ZIS(1)'=""
- SET SRX=$$CPT^ICPTCOD(ZIS(1),$PIECE($GET(^SRF(CASE,0)),U,9))
- SET ZIS(1)=$PIECE(SRX,U,2)_HLCOMP_$PIECE(SRX,U,3)_HLCOMP_"C4"
- SET ZIS(5)=$SELECT($PIECE(^SRF(CASE,13,X,0),U,3)="Y":"CONFIRMED",1:"PENDING")
- +4 KILL ZIS(6)
- SET (SRJ,SRREP)=0
- FOR
- SET SRJ=$ORDER(^SRF(CASE,13,X,"MOD",SRJ))
- if 'SRJ
- QUIT
- SET SRP=$PIECE(^SRF(CASE,13,X,"MOD",SRJ,0),U)
- SET SRM=$$MOD^ICPTMOD(SRP,"I",$PIECE($GET(^SRF(CASE,0)),U,9))
- Begin DoDot:2
- +5 SET ZIS(6)=$GET(ZIS(6))_$SELECT(SRREP:HLREP,1:"")_$PIECE(SRM,U,2)_HLCOMP_$PIECE(SRM,U,3)_HLCOMP
- SET SRREP=1
- End DoDot:2
- +6 SET ^TMP("HLS",$JOB,HLSDT,SRI)="ZIS"_HLFS
- FOR XX=1:1:5
- SET ^TMP("HLS",$JOB,HLSDT,SRI)=^TMP("HLS",$JOB,HLSDT,SRI)_$GET(ZIS(XX))_$SELECT(XX=5:"",1:HLFS)
- +7 IF $LENGTH($GET(ZIS(6)))
- SET ^TMP("HLS",$JOB,HLSDT,SRI)=^TMP("HLS",$JOB,HLSDT,SRI)_HLFS_ZIS(6)
- +8 SET SRI=SRI+1
- End DoDot:1
- +9 QUIT