Changes in ccr/trunk/p/GPLCCR.m [16:30]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ccr/trunk/p/GPLCCR.m
r16 r30 7 7 ; Select a patient for real. 8 8 S DIC=2,DIC(0)="AEMQ" D ^DIC 9 I Y<1 Q ; EXIT 9 10 S DFN=$P(Y,U,1) ; SET THE PATIENT 10 11 N CCRGLO … … 12 13 S OARY=$NA(^TMP($J,DFN,"CCR",1)) 13 14 S ONAM="PAT_"_DFN_"_CCR_V1.xml" 14 S ODIR="/home/ wvehr1/EHR/CCR"15 S ODIR="/home/glilly/CCROUT" 15 16 D OUTPUT^GPLXPATH(OARY,ONAM,ODIR) 16 17 Q … … 20 21 S TGLOBAL=$NA(^TMP($J,"TEMPLATE")) ; GLOBAL FOR STORING TEMPLATE 21 22 S CCRGLO=$NA(^TMP($J,DFN,"CCR")) ; GLOBAL FOR BUILDING THE CCR 23 S ACTGLO=$NA(^TMP($J,DFN,"ACTORS")); GLOBAL FOR ALL ACTORS IN CCR 22 24 ; TO GET PART OF THE CCR RETURNED, PASS CCRPART="PROBLEMS" ETC 23 25 S CCRGRTN=$NA(^TMP($J,DFN,CCRPART)) ; RTN GLO NM OF PART OR ALL OF CCR … … 26 28 ; 27 29 ; DELETE THE BODY, ACTORS AND SIGNATURES SECTIONS FROM THE CCR GLOBAL 28 ; THESE WILL BE POPULATED WITHCALLS TO THE XPATH PROCESSING ROUTINES30 ; THESE WILL BE POPULATED AFTER CALLS TO THE XPATH PROCESSING ROUTINES 29 31 D REPLACE^GPLXPATH(CCRGLO,"","//ContinuityOfCareRecord/Body") 30 32 D REPLACE^GPLXPATH(CCRGLO,"","//ContinuityOfCareRecord/Actors") 31 33 D REPLACE^GPLXPATH(CCRGLO,"","//ContinuityOfCareRecord/Signatures") 32 F I=1:1:@CCRGLO@(0) W @CCRGLO@(I),!34 I DEBUG F I=1:1:@CCRGLO@(0) W @CCRGLO@(I),! 33 35 ; 36 D CCRHDR(CCRGLO,DFN) ; MAP HEADER VARIABLES 34 37 S CCRXTAB="^TMP($J,""CCRSTEP"")" ; GLOBAL TO STORE CCR PROCESSING STEPS 35 38 D INITSTPS(CCRXTAB) ; INITIALIZED CCR PROCESSING STEPS … … 48 51 . X CALL 49 52 . ; NOW INSERT THE RESULTS IN THE CCR BUFFER 50 . ;D INSERT^GPLXPATH(CCRGLO,OXML,"//ContinuityOfCareRecord/Body")53 . D INSERT^GPLXPATH(CCRGLO,OXML,"//ContinuityOfCareRecord/Body") 51 54 . I DEBUG F GPLI=1:1:@OXML@(0) W @OXML@(GPLI),! 52 . D QOPEN^GPLXPATH("CCRBLD",CCRGLO,"//ContinuityOfCareRecord/Body") 53 . D QUEUE^GPLXPATH("CCRBLD",OXML,1,@OXML@(0)) 54 . D QCLOSE^GPLXPATH("CCRBLD",CCRGLO,"//ContinuityOfCareRecord/Body") 55 . I DEBUG W "GOING TO BUILD CCR",! 56 . N CCRTMP 57 . D BUILD^GPLXPATH("CCRBLD","CCRTMP") 58 . I DEBUG F GPLI=1:1:CCRTMP(0) W CCRTMP(GPLI),! 59 . D CP^GPLXPATH("CCRTMP",CCRGLO) 55 . D ACTLST^GPLCCR(CCRGLO,ACTGLO) 60 56 Q 61 57 ; … … 67 63 Q 68 64 ; 65 CCRHDR(CXML,DFN) ; MAP HEADER VARIABLES: FROM, TO ECT 66 N VMAP S VMAP=$NA(^TMP($J,DFN,"HEADER")) 67 ; K @VMAP 68 S @VMAP@("ACTORPATIENT")="ACTORPATIENT_"_DFN 69 S @VMAP@("ACTORFROM")="ACTORPROVIDER_"_DUZ ; FROM DUZ - ??? 70 S @VMAP@("ACTORFROM2")="ACTORPROVIDER_"_DUZ ; NEED A BETTER WAY 71 S @VMAP@("ACTORTO")="ACTORPATIENT_"_DFN ; FOR TEST PURPOSES, 72 ; THIS IS THE USE CASE FOR THE PHR WHERE "TO" IS THE PATIENT 73 N CTMP 74 D MAP^GPLXPATH(CXML,VMAP,"CTMP") 75 D CP^GPLXPATH("CTMP",CXML) 76 Q 77 ; 78 ACTLST(AXML,ACTRTN) ; RETURN THE ACTOR LIST FOR THE XML IN AXML 79 ; AXML AND ACTRTN ARE PASSED BY NAME 80 N I,J,K 81 K @ACTRTN ; CLEAR RETURN ARRAY 82 F I=1:1:@AXML@(0) D ; SCAN ALL LINES 83 . I @AXML@(I)?.E1"<ActorID>".E D ; THERE IS AN ACTOR ON THIS LINE 84 . . S J=$P($P(@AXML@(I),"<ActorID>",2),"</ActorID>",1) 85 . . W "<ActorID>=>",J,! 86 . . S K(J)="" ; HASHING ACTOR TO GET RID OF MULTIPLES 87 S I="" ; GOING TO $O THROUGH THE HASH 88 F J=0:0 D Q:$O(K(I))="" 89 . S I=$O(K(I)) ; WALK THROUGH THE HASH OF ACTORS 90 . D PUSH^GPLXPATH(ACTRTN,I) ; ADD THE ACTOR TO THE RETURN ARRAY 91 Q 92 ; 69 93 TEST ; RUN ALL THE TEST CASES 70 N ZTMP 71 D ZLOAD^GPLUNIT("ZTMP","GPLCCR") 72 D ZTEST^GPLUNIT(.ZTMP,"ALL") 73 W ! 74 ; W "THE TESTS!",! 75 ; ZWR ZTMP 94 ;D TESTALL^GPLUNIT("GPLCCR") 95 D ZTEST^GPLCCR("PROBLEMS") 96 W "TESTING RETURNED FROM PROBLMES",! 97 D ZTEST^GPLCCR("CCR") 76 98 Q 77 99 ; … … 89 111 ; 90 112 ;;><TEST> 91 ;;>< INIT>113 ;;><PROBLEMS> 92 114 ;;>>>K GPL S GPL="" 115 ;;>>>D CCRRPC^GPLCCR(.GPL,"2","PROBLEMS") 116 ;;>>?@GPL@(@GPL@(0))="</Problems>" 117 ;;><CCR> 118 ;;>>>K GPL S GPL="" 119 ;;>>>D CCRRPC^GPLCCR(.GPL,"2","CCR") 120 ;;>>?@GPL@(@GPL@(0))="</ContinutiyOfCareRecord>" 121 ;;><ACTLST> 122 ;;>>>N TCCR 123 ;;>>>D CCRRPC^GPLCCR(.TCCR,"2","CCR") 124 ;;>>>D ACTLST^GPLCCR("TCCR","ACTTEST") 93 125 ;;></TEST>
Note:
See TracChangeset
for help on using the changeset viewer.