| 1 | RORRP030 ;HCIOFO/SG - RPC: PATIENT DELETE ; 11/29/05 3:04pm | 
|---|
| 2 | ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006 | 
|---|
| 3 | ; | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ;***** MARKS THE PATIENT'S RECORD AS DELETED FROM THE REGISTRY | 
|---|
| 7 | ; RPC: [ROR PATIENT DELETE] | 
|---|
| 8 | ; | 
|---|
| 9 | ; .RESULTS      Reference to a local variable where the results | 
|---|
| 10 | ;               are returned to. | 
|---|
| 11 | ; | 
|---|
| 12 | ; REGIEN        Registry IEN | 
|---|
| 13 | ; | 
|---|
| 14 | ; RORDFN        IEN of the patient | 
|---|
| 15 | ; | 
|---|
| 16 | ; [FORCE]       Deprecated | 
|---|
| 17 | ; | 
|---|
| 18 | ; Return Values: | 
|---|
| 19 | ; | 
|---|
| 20 | ; A negative value of the first "^"-piece of the RESULTS(0) | 
|---|
| 21 | ; indicates an error (see the RPCSTK^RORERR procedure for more | 
|---|
| 22 | ; details). | 
|---|
| 23 | ; | 
|---|
| 24 | ; Otherwise, the following codes can be returned in the RESULTS(0): | 
|---|
| 25 | ; | 
|---|
| 26 | ;         0  The record cannot be deleted | 
|---|
| 27 | ;         9  The record has been marked as deleted | 
|---|
| 28 | ; | 
|---|
| 29 | DELETE(RESULTS,REGIEN,RORDFN,FORCE) ; | 
|---|
| 30 | N IENS,RC,REGNAME,RORFDA,RORMSG,TMP | 
|---|
| 31 | D CLEAR^RORERR("DELETE^RORRP030",1) | 
|---|
| 32 | K RESULTS  S RESULTS(0)=0 | 
|---|
| 33 | ; | 
|---|
| 34 | ;--- Get the registry description/name | 
|---|
| 35 | S TMP=$$REGNAME^RORUTL01(REGIEN) | 
|---|
| 36 | I TMP=""  D  D RPCSTK^RORERR(.RESULTS,RC)  Q | 
|---|
| 37 | . S RC=$$ERROR^RORERR(-1,,,RORDFN) | 
|---|
| 38 | S REGNAME=$S($P(TMP,U,2)'="":$P(TMP,U,2),1:$P(TMP,U)) | 
|---|
| 39 | ; | 
|---|
| 40 | ;--- Get IENS of the registry record | 
|---|
| 41 | S IENS=$$PRRIEN^RORUTL01(RORDFN,REGIEN)_"," | 
|---|
| 42 | I IENS'>0  D  D RPCSTK^RORERR(.RESULTS,RC)  Q | 
|---|
| 43 | . S RC=$$ERROR^RORERR(-97,,,RORDFN,REGNAME) | 
|---|
| 44 | ; | 
|---|
| 45 | I $$PENDING^RORUTL18(+IENS)  D | 
|---|
| 46 | . ;--- Delete the pending record immediately | 
|---|
| 47 | . N DA,DIK  S DIK=$$ROOT^DILFD(798),DA=+IENS  D ^DIK | 
|---|
| 48 | E  D | 
|---|
| 49 | . ;--- Mark the record as deleted | 
|---|
| 50 | . S RORFDA(798,IENS,3)=5 | 
|---|
| 51 | . D FILE^DIE(,"RORFDA","RORMSG") | 
|---|
| 52 | . I $G(DIERR)  D  D RPCSTK^RORERR(.RESULTS,RC) | 
|---|
| 53 | . . S RC=$$DBS^RORERR("RORMSG",-9,,RORDFN,798,IENS) | 
|---|
| 54 | ;--- | 
|---|
| 55 | S RESULTS(0)=9 | 
|---|
| 56 | Q | 
|---|