source: ccr/trunk/p/GPLIMMU.m@ 356

Last change on this file since 356 was 356, checked in by George Lilly, 15 years ago

added Immunizations to RIM variable analysis code.. changed global for
parms to TMP("C0CPARMS",$J)

File size: 4.7 KB
Line 
1GPLIMMU ; CCDCCR/GPL - CCR/CCD PROCESSING FOR IMMUNIZATIONS ; 2/2/09
2 ;;0.1;CCDCCR;nopatch;noreleasedate;Build 7
3 ;Copyright 2008 WorldVistA. Licensed under the terms of the GNU
4 ;General Public License See attached copy of the License.
5 ;
6 ;This program is free software; you can redistribute it and/or modify
7 ;it under the terms of the GNU General Public License as published by
8 ;the Free Software Foundation; either version 2 of the License, or
9 ;(at your option) any later version.
10 ;
11 ;This program is distributed in the hope that it will be useful,
12 ;but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;GNU General Public License for more details.
15 ;
16 ;You should have received a copy of the GNU General Public License along
17 ;with this program; if not, write to the Free Software Foundation, Inc.,
18 ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 ;
20 ;
21 ; PROCESS THE IMMUNIZATIONS SECTION OF THE CCR
22 ;
23MAP(IPXML,DFN,OUTXML) ; MAP IMMUNIZATIONS
24 ;
25 N C0CZV,C0CZVI ; TO STORE MAPPED VARIABLES
26 N C0CZT ; TMP ARRAY OF MAPPED XML
27 S C0CZV=$NA(^TMP("GPLCCR",$J,"IMMUNE")) ; TEMP STORAGE FOR VARIABLES
28 D EXTRACT(IPXML,DFN,OUTXML) ;EXTRACT THE VARIABLES
29 N C0CZI,C0CZIC ; COUNT OF IMMUNIZATIONS
30 S C0CZIC=$G(@C0CZV@(0)) ; TOTAL FROM VARIABLE ARRAY
31 I C0CZIC>0 D ;IMMUNIZATIONS FOUND
32 . F C0CZI=1:1:C0CZIC D ;FOR EACH IMMUNIZATION
33 . . S C0CZVI=$NA(@C0CZV@(C0CZI)) ;THIS IMMUNIZATION
34 . . D MAP^GPLXPATH(IPXML,C0CZVI,"C0CZT") ;MAP THE VARIABLES TO XML
35 . . I C0CZI=1 D ; FIRST ONE
36 . . . D CP^GPLXPATH("C0CZT",OUTXML) ;JUST COPY RESULTS
37 . . E D ;NOT THE FIRST
38 . . . D INSINNER^GPLXPATH(OUTXML,"C0CZT")
39 E S @OUTXML@(0)=0 ; SIGNAL NO IMMUNIZATIONS
40 N IMMUTMP,I
41 D MISSING^GPLXPATH(OUTXML,"IMMUTMP") ; SEARCH XML FOR MISSING VARS
42 I IMMUTMP(0)>0 D ; IF THERE ARE MISSING VARS -
43 . ; STRINGS MARKED AS @@X@@
44 . W !,"IMMUNE Missing list: ",!
45 . F I=1:1:IMMUTMP(0) W IMMUTMP(I),!
46 Q
47 ;
48EXTRACT(IPXML,DFN,OUTXML) ; EXTRACT IMMUNIZATIONS INTO VARIABLES
49 ;
50 ; INXML AND OUTXML ARE PASSED BY NAME SO GLOBALS CAN BE USED
51 ; INXML WILL CONTAIN ONLY THE PROBLEM SECTION OF THE OVERALL TEMPLATE
52 ; ONLY THE XML FOR ONE PROBLEM WILL BE PASSED. THIS ROUTINE WILL MAKE
53 ; COPIES AS NECESSARY TO REPRESENT MULTIPLE PROBLEMS
54 ; INSERT^GPLXPATH IS USED TO APPEND THE PROBLEMS TO THE OUTPUT
55 ;
56 N RPCRSLT,J,K,PTMP,X,VMAP,TBU
57 S TVMAP=$NA(^TMP("GPLCCR",$J,"IMMUNE"))
58 S TARYTMP=$NA(^TMP("GPLCCR",$J,"IMMUARYTMP"))
59 S IMMA=$NA(^TMP("PXI",$J)) ;
60 K @IMMA ; CLEAR OUT PREVIOUS RESULTS
61 K @TVMAP,@TARYTMP ; KILL OLD ARRAY VALUES
62 D IMMUN^PXRHS03(DFN) ;
63 I $O(@IMMA@(""))="" D Q ; RPC RETURNS NULL
64 . W "NULL RESULT FROM IMMUN^PXRHS03 ",!
65 . S @OUTXML@(0)=0
66 ;S @TVMAP@(0)=RPCRSLT(0) ; SAVE NUMBER OF PROBLEMS
67 N C0CIM,C0CC,C0CIMD,C0CIEN,C0CT ;
68 S C0CIM=""
69 S C0CC=0 ; COUNT
70 F S C0CIM=$O(@IMMA@(C0CIM)) Q:C0CIM="" D ; FOR EACH IMMUNE TYPE IN THE LIST
71 . S C0CC=C0CC+1 ;INCREMENT COUNT
72 . S @TVMAP@(0)=C0CC ; SAVE NEW COUNT TO ARRAY
73 . S VMAP=$NA(@TVMAP@(C0CC)) ; THIS IMMUNE ELEMENT
74 . K @VMAP ; MAKE SURE IT IS CLEARED OUT
75 . W C0CIM,!
76 . S C0CIMD="" ; IMMUNE DATE
77 . F S C0CIMD=$O(@IMMA@(C0CIM,C0CIMD)) Q:C0CIMD="" D ; FOR EACH DATE
78 . . S C0CIEN=$O(@IMMA@(C0CIM,C0CIMD,"")) ;IEN OF IMMUNE RECORD
79 . . D GETN^C0CRNF("C0CI",9000010.11,C0CIEN) ; GET THE FILEMAN RECORD FOR IENS
80 . . W C0CIEN,"_",C0CIMD
81 . . S C0CT=$$FMDTOUTC^CCRUTIL(9999999-C0CIMD,"DT") ; FORMAT DATE/TIME
82 . . W C0CT,!
83 . . S @VMAP@("IMMUNEOBJECTID")="IMMUNIZATION_"_C0CC ;UNIQUE OBJECT ID
84 . . S @VMAP@("IMMUNEDATETIMETYPETEXT")="Immunization Date" ; ALL ARE THE SAME
85 . . S @VMAP@("IMMUNEDATETIME")=C0CT ;FORMATTED DATE/TIME
86 . . S C0CIP=$$ZVALUEI^C0CRNF("ENCOUNTER PROVIDER","C0CI") ;IEN OF PROVIDER
87 . . S @VMAP@("IMMUNESOURCEACTORID")="ACTORPROVIDER_"_C0CIP
88 . . S C0CIIEN=$$ZVALUEI^C0CRNF("IMMUNIZATION","C0CI") ;IEN OF IMMUNIZATION
89 . . I $G(DUZ("AG"))="I" D ; RUNNING IN RPMS
90 . . . D GETN^C0CRNF("C0CZIM",9999999.14,C0CIIEN) ;GET IMMUNE RECORD
91 . . . S C0CIN=$$ZVALUE^C0CRNF("NAME","C0CZIM") ; USE NAME IN IMMUNE RECORD
92 . . . ; FOR LOOKING UP THE CODE
93 . . . ; GET IT FROM THE CODE FILE
94 . . . S C0CICD=$$ZVALUE^C0CRNF("HL7-CVX CODE","C0CZIM") ;CVX CODE
95 . . . S @VMAP@("IMMUNEPRODUCTNAMETEXT")=C0CIN ;NAME
96 . . . S @VMAP@("IMMUNEPRODUCTCODE")=C0CICD ; CVX CODE
97 . . . I C0CICD'="" S @VMAP@("IMMUNEPRODUCTCODESYSTEM")="CDC Vaccine Code" ;
98 . . . E S @VMAP@("IMMUNEPRODUCTCODESYSTEM")="" ;NULL
99 . . E D ; NOT IN RPMS
100 . . . S C0CIN=$$ZVALUE^C0CRNF("IMMUNIZATION","C0CI") ;NAME OF IMMUNIZATION
101 . . . S @VMAP@("IMMUNEPRODUCTNAMETEXT")=C0CIN ;NAME
102 . . . S @VMAP@("IMMUNEPRODUCTCODE")="" ; CVX CODE
103 . . . S @VMAP@("IMMUNEPRODUCTCODESYSTEM")="" ;NO CODE
104 N C0CIRIM S C0CIRIM=$NA(^TMP("GPLRIM","VARS",DFN,"IMMUNE"))
105 M @C0CIRIM=@TVMAP ; PERSIST RIM VARIABLES
106 Q
107 ;
Note: See TracBrowser for help on using the repository browser.