Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • ccr/trunk/p/GPLCCR.m

    r16 r30  
    77        ; Select a patient for real.
    88        S DIC=2,DIC(0)="AEMQ" D ^DIC
     9        I Y<1 Q ; EXIT
    910        S DFN=$P(Y,U,1) ; SET THE PATIENT
    1011        N CCRGLO
     
    1213        S OARY=$NA(^TMP($J,DFN,"CCR",1))
    1314        S ONAM="PAT_"_DFN_"_CCR_V1.xml"
    14         S ODIR="/home/wvehr1/EHR/CCR"
     15        S ODIR="/home/glilly/CCROUT"
    1516        D OUTPUT^GPLXPATH(OARY,ONAM,ODIR)
    1617        Q
     
    2021        S TGLOBAL=$NA(^TMP($J,"TEMPLATE")) ; GLOBAL FOR STORING TEMPLATE
    2122        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
    2224        ; TO GET PART OF THE CCR RETURNED, PASS CCRPART="PROBLEMS" ETC
    2325        S CCRGRTN=$NA(^TMP($J,DFN,CCRPART)) ; RTN GLO NM OF PART OR ALL OF CCR
     
    2628        ;
    2729        ; DELETE THE BODY, ACTORS AND SIGNATURES SECTIONS FROM THE CCR GLOBAL
    28         ; THESE WILL BE POPULATED WITH CALLS TO THE XPATH PROCESSING ROUTINES
     30        ; THESE WILL BE POPULATED AFTER CALLS TO THE XPATH PROCESSING ROUTINES
    2931        D REPLACE^GPLXPATH(CCRGLO,"","//ContinuityOfCareRecord/Body")
    3032        D REPLACE^GPLXPATH(CCRGLO,"","//ContinuityOfCareRecord/Actors")
    3133        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),!
    3335        ;
     36        D CCRHDR(CCRGLO,DFN) ; MAP HEADER VARIABLES
    3437        S CCRXTAB="^TMP($J,""CCRSTEP"")" ; GLOBAL TO STORE CCR PROCESSING STEPS
    3538        D INITSTPS(CCRXTAB) ; INITIALIZED CCR PROCESSING STEPS
     
    4851        . X CALL
    4952        . ; NOW INSERT THE RESULTS IN THE CCR BUFFER
    50         . ; D INSERT^GPLXPATH(CCRGLO,OXML,"//ContinuityOfCareRecord/Body")
     53        . D INSERT^GPLXPATH(CCRGLO,OXML,"//ContinuityOfCareRecord/Body")
    5154        . 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)
    6056        Q
    6157        ;
     
    6763        Q
    6864         ;
     65CCRHDR(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        ;
     78ACTLST(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        ;
    6993TEST   ; 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")
    7698      Q
    7799      ;
     
    89111      ;
    90112;;><TEST>
    91 ;;><INIT>
     113;;><PROBLEMS>
    92114;;>>>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")
    93125;;></TEST>
Note: See TracChangeset for help on using the changeset viewer.