- Timestamp:
- Nov 5, 2009, 12:27:47 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ccr/trunk/p/C0CIN.m
r584 r598 19 19 ; 20 20 W "This is the CCR Import Utility Library ",! 21 Q 22 ; 23 TEST ; TESTS BOTH ROUTINES AT ONCE 24 N ZI,ZJ 25 S ZI="/home/vademo2/CCR" ;directory purposely leaving off the trailing / 26 S ZJ="PAT_358_CCR_V1_0_21.xml" ; random test patient 27 D RPCFIN(.GPL,358,"GPLTEST","CCR",ZJ,ZI) 28 Q 29 ; 30 RPCAIN(RTN,DFN,SOURCE,TYPE,ARY) ; ARRAY IN RPC - ACCEPT AN XML DOCUMENT 31 ; AND STORE IT IN THE INCOMING XML FILE 32 ; RETURNS THE IEN OF THE RECORD OR TEXT IF THERE IS AN ERROR 33 I $G(DFN)="" S RTN="DFN NOT DEFINED" Q ; 34 N C0CXF S C0CXF=175 ; FILE NUMBER FOR INCOMING XML FILE 35 N C0CFDA,ZX 36 S C0CFDA(C0CXF,"+1,",.01)=DFN ; PATIENT 37 S C0CFDA(C0CXF,"+1,",1)=$$NOW^XLFDT ;DATE 38 S C0CFDA(C0CXF,"+1,",2)=TYPE ;TYPE 39 S C0CFDA(C0CXF,"+1,",3)=$$ADDSRC(SOURCE) ;SOURCE 40 S C0CFDA(C0CXF,"+1,",7)="NEW" ; STATUS OF NEW FOR NOT PROCESSED 41 D UPDIE ; CREATE THE RECORD 42 S ZX=C0CIEN(1) ; CAPTURE THE RECORD NUMBER 43 D WP^DIE(C0CXF,ZX_",",4,,ARY,"ZERR") 44 ;W "RECORD:",ZX,! 45 S RTN=ZX ; RETURN IEN OF THE XML FILE 46 Q 47 ; 48 ADDSRC(ZSRC) ;EXTRISIC TO ADD A SOURCE TO THE CCR SOURCE FILE 49 ; RETURNS RECORD NUMBER. IF SOURCE EXISTS, JUST RETURNS IT'S RECORD NUMBER 50 ; 51 N ZX,ZF,C0CFDA 52 S ZF=171.401 ; FILE NUMBER FOR CCR SOURCE FILE 53 S C0CFDA(ZF,"?+1,",.01)=ZSRC 54 D UPDIE 55 Q $O(^C0C(171.401,"B",ZSRC,"")) 56 ; 57 RPCFIN(RTN,DFN,SOURCE,TYPE,FN,FP) ; FILE IN RPC - READ AN XML DOCUMENT 58 ; FROM A HOST FILE AND STORE IT IN THE INCOMING XML FILE 59 N ZX,ZTMP 60 I $E($RE(FP))'="/" S ZX=FP_"/" 61 E S ZX=FP 62 S ZX=ZX_FN 63 D LOAD("ZTMP",ZX) 64 I '$D(ZTMP) D Q ; NO LUCK 65 . W "FILE NOT LOADED",! 66 D RPCAIN(.RTN,DFN,SOURCE,TYPE,"ZTMP") 67 N C0CFDA 68 S C0CFDA(175,RTN_",",5)=FN ; FILE NAME 69 S C0CFDA(175,RTN_",",6)=FP ; FILE PATH 70 D UPDIE ; UPDATE WITH FILE NAME AND PATH 71 Q 72 ; 73 RPCLIST(RTN,DFN) ; CCR LIST - LIST XML DOCUMENTS FOR PATIENT DFN 74 ; THAT ARE STORED IN THE INCOMING XML FILE 75 ; RETURNS AN ARRAY OF THE FORM 76 ; RTN(x)="IEN^DATE^TYPE^SOURCE^STATUS" WHERE 77 ; IEN IS THE RECORD NUMBER OF THE XML DOCUMENT 78 ; DATE IS THE DATE THE DOCUMENT WAS STORED IN THE FILE 79 ; TYPE IS "CCD" OR "CCR" OR "OTHER" 80 ; SOURCE IS THE NAME OF THE DOCUMENT SOURCE FROM THE CCR SOURCE FILE 81 ; STATUS IS THE STATUS OF THE DOCUMENT (VALUES TO BE DEFINED) 82 N ZF S ZF=175 ; FILE NUMBER OF INCOMING XML FILE 83 N ZI S ZI="" 84 N ZN S ZN=0 85 F S ZI=$O(^C0CIN("B",DFN,ZI),-1) Q:ZI="" D ; FOR EACH RECORD FOR THIS PATIENT 86 . S ZN=ZN+1 ;INCREMENT COUNT OF RETURN ARRAY 87 . S $P(RTN(ZN),"^",1)=ZI ; IEN OF RECORD 88 . S $P(RTN(ZN),"^",2)=$$GET1^DIQ(ZF,ZI_",",1,"E") ;DATE 89 . S $P(RTN(ZN),"^",3)=$$GET1^DIQ(ZF,ZI_",",2,"E") ;TYPE 90 . S $P(RTN(ZN),"^",4)=$$GET1^DIQ(ZF,ZI_",",3,"E") ;SOURCE 91 . S $P(RTN(ZN),"^",5)=$$GET1^DIQ(ZF,ZI_",",7,"I") ; STATUS 92 Q 93 ; 94 RPCDOC(RTN,IEN) ; RETRIEVE DOCUMENT NUMBER IEN FROM THE INCOMING XML FILE 95 ; RETURNED IN ARRAY RTN 96 N ZI 97 S ZI=$$GET1^DIQ(175,IEN_",",4,,"RTN") 21 98 Q 22 99 ; … … 105 182 Q 106 183 ; 107 184 LOAD(ZRTN,filepath) ; load an xml file into the ZRTN array, passed by name 185 n i 186 D ; 187 . n zfile,zpath,ztmp,zok s (zfile,zpath,ztmp)="" 188 . s ztmp=$na(^TMP("C0CLOAD",$J)) 189 . k @ztmp 190 . s zfile=$re($p($re(filepath),"/",1)) ;file name 191 . s zpath=$p(filepath,zfile,1) ; file path 192 . s zok=$$FTG^%ZISH(zpath,zfile,$NA(@ztmp@(1)),3) ; import the file incr sub 3 193 . m @ZRTN=@ztmp 194 . k @ztmp 195 . s i=$o(@ZRTN@(""),-1) ; highest line number 196 q 197 ; 198 UPDIE ; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS 199 K ZERR,C0CIEN 200 D CLEAN^DILF 201 D UPDATE^DIE("","C0CFDA","C0CIEN","ZERR") 202 I $D(ZERR) D ; 203 . W "ERROR",! 204 . ZWR ZERR 205 . B 206 K C0CFDA 207 Q 208 ;
Note:
See TracChangeset
for help on using the changeset viewer.