Changeset 623 for WorldVistAEHR/trunk/r/SCHEDULING-SD-SC/SCMCHLS.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/SCHEDULING-SD-SC/SCMCHLS.m
r613 r623 1 SCMCHLS ;BPOI/DJB - PCMM HL7 Segment Utils;12/13/992 ;;5.3;Scheduling;**177,210,212,293,515,524**;08/13/93;Build 29 3 4 5 6 7 BLDEVN 8 9 10 BLDPID 11 12 13 14 15 BLDZPC 16 17 18 19 20 21 22 23 24 25 26 27 28 CPYEVN 29 30 31 32 CPYPID 33 34 35 36 CPYZPC 37 38 39 M @XMITARRY@(SUB,"ZPC",ID)=VAFZPC ; og/sd/524 40 41 42 43 DELEVN 44 45 46 DELPID 47 48 49 DELZPC 50 51 52 53 SEGMENTS(EVNTTYPE,SEGARRY) 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 UNWIND(XMITARRY,INSRTPNT) 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 COUNT(VALER) 99 100 101 102 103 104 105 106 107 1 SCMCHLS ;BP/DJB - PCMM HL7 Segment Utils ; 12/13/99 12:40pm 2 ;;5.3;Scheduling;**177,210,212,293,515**;AUG 13, 1993;Build 14 3 ; 4 ;Ref rtn: SCDXMSG1 5 ; 6 ;--> Build HL7 segments 7 BLDEVN ;Build EVN segment 8 S VAFEVN=$$EN^VAFHLEVN(EVNTHL7,EVNTDATE,VAFSTR,HL("Q"),HL("FS")) 9 Q 10 BLDPID ;Build PID segment 11 ;S VAFPID=$$EN^VAFHLPID(DFN,VAFSTR) 12 S VAFPID=$$EN^VAFCPID(DFN,VAFSTR) ;Use CIRN version 13 D SETMAR^SCMSVUT0(.VAFPID,HL("Q"),HL("FS")) 14 Q 15 BLDZPC ;Build ZPC segment 16 ;djb/bp Patch 210. Sequentially number multiple ZPC segments. 17 ;new code begin 18 S SCSEQ=$G(SCSEQ)+1 ;Increment ZPC sequence number. 19 ; S VAFZPC=$$ZPC^SCMCHLZ("",ID,DATA,SCSEQ) 20 S VAFZPC=$$ZPC^SCMCHLZ("",.ID,.DATA,SCSEQ) 21 ;new code end 22 ;old code begin 23 ;S VAFZPC=$$ZPC^SCMCHLZ("",ID,DATA) 24 ;old code end 25 Q 26 ; 27 ;--> Copy HL7 segments into HL7 message 28 CPYEVN ;Copy EVN segment 29 ;Add 1 as 3rd subscript so number of subscripts matches ZPC segment 30 M @XMITARRY@(SUB,SEGNAME,1)=VAFEVN 31 Q 32 CPYPID ;Copy PID segment 33 ;Add 1 as 3rd subscript so number of subscripts matches ZPC segment 34 M @XMITARRY@(SUB,SEGNAME,1)=VAFPID 35 Q 36 CPYZPC ;Copy ZPC segment 37 ; PATCH 515 DLL USE ORIG TRIG 38 ; old code = M @XMITARRY@($P(ID,"-",1),"ZPC",ID)=VAFZPC 39 M @XMITARRY@(NUM,"ZPC",ID)=VAFZPC 40 Q 41 ; 42 ;--> Delete HL7 segment variables 43 DELEVN ;Delete EVN variable 44 KILL VAFEVN 45 Q 46 DELPID ;Delete PID variable 47 KILL VAFPID 48 Q 49 DELZPC ;Delete ZPC variable 50 KILL VAFZPC 51 Q 52 ; 53 SEGMENTS(EVNTTYPE,SEGARRY) ;Build list of HL7 segments for a given event type 54 ; 55 ; Input: EVNTTYPE - Event type to build list for A08 & A23 are the 56 ; only types currently supported. 57 ; Default=A08 58 ; SEGARRY - Array to place output in (full global reference) 59 ; Defaul=^TMP("SCMC SEGMENTS",$J) 60 ;Output: SEGARRY(Seq,Name)=Fields 61 ; Seq - Sequence number to order segments as they should 62 ; be placed in the HL7 message. 63 ; Name - Name of HL7 segment. 64 ; Fields - List of fields used by PCMM. VAFSTR would be set 65 ; to this value. 66 ; Note: MSH segment is not included 67 ; 68 ;Check input 69 S EVNTTYPE=$G(EVNTTYPE) 70 S:(EVNTTYPE'="A23") EVNTTYPE="A08" 71 S SEGARRY=$G(SEGARRY) 72 S:(SEGARRY="") SEGARRY="^TMP(""SCMC SEGMENTS"","_$J_")" 73 ; 74 ;Segments used by A08 75 S @SEGARRY@(1,"EVN")="1,2" 76 S @SEGARRY@(2,"PID")="1,2,3,4,5,6,7,8,10N,11,12,13,14,16,17,19,22" 77 S @SEGARRY@(3,"ZPC")="1,2,3,4,5,6,8" ;bp/ar and alb/rpm Patch 212 78 Q 79 ; 80 UNWIND(XMITARRY,INSRTPNT) ;Remove all data that was put into transmit array. 81 ; 82 ; Input: XMITARRY - Array containing HL7 message (full global ref). 83 ; Default=^TMP("HLS",$J). 84 ; INSRTPNT - Where to begin deletion from. 85 ; Default=1 86 ;Output: None 87 ; 88 ;Check input 89 S:$G(XMITARRY)="" XMITARRY="^TMP(""HLS"","_$J_")" 90 S:$G(INSRTPNT)="" INSRTPNT=1 91 ; 92 ;Remove insertion point from array 93 KILL @XMITARRY@(INSRTPNT) 94 ;Remove everything from insertion point to end of array 95 F S INSRTPNT=$O(@XMITARRY@(INSRTPNT)) Q:INSRTPNT="" KILL @XMITARRY@(INSRTPNT) 96 ;Done 97 Q 98 COUNT(VALER) ;counts the number of errored encounters found. 99 ; 100 ; Input: VALER - Array containing error messages. 101 ;Output: Number of errors 102 ; 103 NEW VAR,CNT 104 S CNT=0 105 S VAR="" 106 F S VAR=$O(@VALER@(VAR)) Q:VAR']"" S CNT=CNT+1 107 Q CNT
Note:
See TracChangeset
for help on using the changeset viewer.