| 1 | RORUPD62 ;HCIOFO/SG - HIV-SPECIFIC REGISTRY UPDATE CODE ; 5/11/05 2:17pm | 
|---|
| 2 | ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006 | 
|---|
| 3 | ; | 
|---|
| 4 | ; This routine uses the following IAs: | 
|---|
| 5 | ; | 
|---|
| 6 | ; #2762         Check for the patient merge (controlled) | 
|---|
| 7 | ; | 
|---|
| 8 | ;-------------------------------------------------------------------- | 
|---|
| 9 | ; Registry: [VA HIV] | 
|---|
| 10 | ;-------------------------------------------------------------------- | 
|---|
| 11 | Q | 
|---|
| 12 | ; | 
|---|
| 13 | ;***** CONVERTS ICR 2.1 RECORDS TO CCR:HIV FORMAT | 
|---|
| 14 | ; | 
|---|
| 15 | ; RORREG        Registry IEN | 
|---|
| 16 | ; | 
|---|
| 17 | ; Return Values: | 
|---|
| 18 | ;       <0  Error Code | 
|---|
| 19 | ;        0  Ok | 
|---|
| 20 | ; | 
|---|
| 21 | CONVERT(RORREG) ; | 
|---|
| 22 | N CODE,IMRIEN,PATIEN,RC,REGIEN,RULENAME,RULES,TMP | 
|---|
| 23 | D LOG^RORLOG(2,"ICR 2.1 Conversion") | 
|---|
| 24 | S REGIEN=+RORREG | 
|---|
| 25 | ;--- Prepare the selection rules | 
|---|
| 26 | S RULENAME="VA HIV 2.1 CONVERSION" | 
|---|
| 27 | S TMP=$$SRLIEN^RORUTL02(RULENAME) | 
|---|
| 28 | Q:TMP'>0 $$ERROR^RORERR(-3,,RULENAME) | 
|---|
| 29 | S RULES(1)=TMP_U_DT | 
|---|
| 30 | ;--- Convert the remaining records of ICR v2.1 | 
|---|
| 31 | S (IMRIEN,RC)=0 | 
|---|
| 32 | F  S IMRIEN=$O(^IMR(158,IMRIEN))  Q:IMRIEN'>0  D  Q:RC<0 | 
|---|
| 33 | . S CODE=$P($G(^IMR(158,IMRIEN,0)),U)  Q:CODE'>0 | 
|---|
| 34 | . S PATIEN=+$$XOR^RORUTL03(CODE)  Q:PATIEN'>0 | 
|---|
| 35 | . ;--- Check if the patient has been merged | 
|---|
| 36 | . S TMP=+$G(^DPT(PATIEN,-9))  S:TMP>0 PATIEN=TMP | 
|---|
| 37 | . ;--- Check if the patient record in the file #2 is valid | 
|---|
| 38 | . Q:$$CHKPTR^RORUTL05(PATIEN)<0 | 
|---|
| 39 | . ;--- Quit if the patient has already been added to the new registry | 
|---|
| 40 | . Q:$$PRRIEN^RORUTL01(PATIEN,REGIEN)>0 | 
|---|
| 41 | . ;--- Check if the patient is an employee | 
|---|
| 42 | . Q:$$SKIPEMPL^RORUTL02(PATIEN,.REGIEN) | 
|---|
| 43 | . ;--- Add the patient to the new registry | 
|---|
| 44 | . S TMP=$$ADDPAT^RORUPD06(PATIEN,"VA HIV",.RULES) | 
|---|
| 45 | ;--- | 
|---|
| 46 | Q $S(RC<0:RC,1:0) | 
|---|
| 47 | ; | 
|---|
| 48 | ;***** AFTER UPDATE CALL-BACK ENTRY POINT | 
|---|
| 49 | ; | 
|---|
| 50 | ; RORIEN        An IEN of the newly added registry record | 
|---|
| 51 | ; PATIEN        Patient IEN | 
|---|
| 52 | ; REGIEN        Registry IEN | 
|---|
| 53 | ; | 
|---|
| 54 | ; Return Values: | 
|---|
| 55 | ;       <0  Error Code | 
|---|
| 56 | ;        0  Ok | 
|---|
| 57 | ; | 
|---|
| 58 | POSTUPD(RORIEN,PATIEN,REGIEN) ; | 
|---|
| 59 | N DA,DIK,IENS,RC,RORFDA,RORHIV,RORMSG | 
|---|
| 60 | S RORIEN=+$G(RORIEN)  Q:RORIEN'>0 0 | 
|---|
| 61 | ;--- Delete the record if it exists by some reason | 
|---|
| 62 | D:$D(^RORDATA(799.4,RORIEN)) | 
|---|
| 63 | . S DIK="^RORDATA(799.4,",DA=RORIEN  D ^DIK | 
|---|
| 64 | ;--- Prepare the data | 
|---|
| 65 | S IENS="+1," | 
|---|
| 66 | S RORFDA(799.4,IENS,.01)=RORIEN | 
|---|
| 67 | S RORHIV(1)=RORIEN | 
|---|
| 68 | ;--- Add the record to the ROR HIV STUDY file | 
|---|
| 69 | D UPDATE^DIE(,"RORFDA","RORHIV","RORMSG") | 
|---|
| 70 | Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,799.4,IENS) | 
|---|
| 71 | Q 0 | 
|---|