[613] | 1 | DGENCDA2 ;ALB/CJM,ISA/KWP,Zoltan,JAN,CKN - Catastrophic Disabilty API - File Data;May 24, 1999,Nov 14, 2001 ; 9/22/05 5:40pm
|
---|
| 2 | ;;5.3;Registration;**232,387,653**;Aug 13,1993;Build 2
|
---|
| 3 | ;
|
---|
| 4 | STORE(DFN,DGCDIS,ERROR) ;
|
---|
| 5 | ;Description: Creates a catastrophic disability record for a patient.
|
---|
| 6 | ; Attempts to add catastrophically disabled eligibility code.
|
---|
| 7 | ;Input:
|
---|
| 8 | ; DFN - Patient IEN
|
---|
| 9 | ; DGCDIS - the catastrophic disability array, passed by reference
|
---|
| 10 | ;Output:
|
---|
| 11 | ; Function Value - returns 1 if successful, otherwise 0
|
---|
| 12 | ; ERROR - if not successful, an error message is returned,pass
|
---|
| 13 | ; by reference
|
---|
| 14 | N SUCCESS,FDA,SUB,HIEN,HSUB,FDB,NIEN,EIEN
|
---|
| 15 | S SUCCESS=1
|
---|
| 16 | S ERROR=""
|
---|
| 17 | D ;drops out if invalid condition found
|
---|
| 18 | . I $G(DFN),$D(^DPT(DFN,0))
|
---|
| 19 | . E S SUCCESS=0,ERROR="PATIENT NOT FOUND" Q
|
---|
| 20 | . I '$$LOCK^DGENCDA1(DFN) S SUCCESS=0,ERROR="RECORD IN USE, CAN NOT BE EDITED" Q
|
---|
| 21 | . I '$$CHECK^DGENCDA1(.DGCDIS,.ERROR) S SUCCESS=0 Q
|
---|
| 22 | . S HIEN=$P($G(^DPT(DFN,.399,0)),"^",3)+1
|
---|
| 23 | . S HIEN=HIEN_","_DFN_","
|
---|
| 24 | . S FDA(2,DFN_",",.39)=DGCDIS("VCD")
|
---|
| 25 | . S FDB(2.399,HIEN,.39)=DGCDIS("VCD")
|
---|
| 26 | . S FDA(2,DFN_",",.391)=DGCDIS("BY")
|
---|
| 27 | . S FDB(2.399,HIEN,.391)=DGCDIS("BY")
|
---|
| 28 | . S FDA(2,DFN_",",.392)=DGCDIS("DATE")
|
---|
| 29 | . S FDB(2.399,HIEN,.392)=DGCDIS("DATE")
|
---|
| 30 | . S FDA(2,DFN_",",.393)=DGCDIS("FACDET")
|
---|
| 31 | . S FDB(2.399,HIEN,.393)=DGCDIS("FACDET")
|
---|
| 32 | . S FDA(2,DFN_",",.394)=DGCDIS("REVDTE")
|
---|
| 33 | . S FDB(2.399,HIEN,.394)=DGCDIS("REVDTE")
|
---|
| 34 | . S FDA(2,DFN_",",.395)=DGCDIS("METDET")
|
---|
| 35 | . S FDB(2.399,HIEN,.395)=DGCDIS("METDET")
|
---|
| 36 | . S FDA(2,DFN_",",.3951)=DGCDIS("VETREQDT")
|
---|
| 37 | . S FDB(2.399,HIEN,.3951)=DGCDIS("VETREQDT")
|
---|
| 38 | . S FDA(2,DFN_",",.3952)=DGCDIS("DTFACIRV")
|
---|
| 39 | . S FDB(2.399,HIEN,.3952)=DGCDIS("DTFACIRV")
|
---|
| 40 | . S FDA(2,DFN_",",.3953)=DGCDIS("DTVETNOT")
|
---|
| 41 | . S FDB(2.399,HIEN,.3953)=DGCDIS("DTVETNOT")
|
---|
| 42 | . S SUB="",HSUB=0
|
---|
| 43 | . S NIEN=0 F S SUB=$O(DGCDIS("DIAG",SUB)) Q:'SUB D
|
---|
| 44 | . . I DGCDIS("DIAG",SUB)="" Q
|
---|
| 45 | . . S NIEN=NIEN+1
|
---|
| 46 | . . S FDB(2.396,NIEN_","_DFN_",",.01)=DGCDIS("DIAG",SUB)
|
---|
| 47 | . . S HSUB=HSUB+1
|
---|
| 48 | . . S FDB(2.409,HSUB_","_HIEN,.01)=DGCDIS("DIAG",SUB)
|
---|
| 49 | . S NIEN=0 F S SUB=$O(DGCDIS("PROC",SUB)) Q:'SUB D
|
---|
| 50 | . . I DGCDIS("PROC",SUB)="" Q
|
---|
| 51 | . . S EIEN=0 F S EIEN=$O(DGCDIS("EXT",SUB,EIEN)) Q:'EIEN D
|
---|
| 52 | . . . S NIEN=NIEN+1
|
---|
| 53 | . . . S FDB(2.397,NIEN_","_DFN_",",.01)=DGCDIS("PROC",SUB)
|
---|
| 54 | . . . S HSUB=HSUB+1
|
---|
| 55 | . . . S FDB(2.409,HSUB_","_HIEN,.01)=DGCDIS("PROC",SUB)
|
---|
| 56 | . . . S FDB(2.397,NIEN_","_DFN_",",1)=DGCDIS("EXT",SUB,EIEN)
|
---|
| 57 | . . . S FDB(2.409,HSUB_","_HIEN,1)=DGCDIS("EXT",SUB,EIEN)
|
---|
| 58 | . S NIEN=0 F S SUB=$O(DGCDIS("COND",SUB)) Q:'SUB D
|
---|
| 59 | . . I DGCDIS("COND",SUB)="" Q
|
---|
| 60 | . . S NIEN=NIEN+1
|
---|
| 61 | . . S FDB(2.398,NIEN_","_DFN_",",.01)=DGCDIS("COND",SUB)
|
---|
| 62 | . . S HSUB=HSUB+1
|
---|
| 63 | . . S FDB(2.409,HSUB_","_HIEN,.01)=DGCDIS("COND",SUB)
|
---|
| 64 | . . S FDB(2.398,NIEN_","_DFN_",",1)=DGCDIS("SCORE",SUB)
|
---|
| 65 | . . S FDB(2.409,HSUB_","_HIEN,2)=DGCDIS("SCORE",SUB)
|
---|
| 66 | . . S FDB(2.398,NIEN_","_DFN_",",2)=DGCDIS("PERM",SUB)
|
---|
| 67 | . . S FDB(2.409,HSUB_","_HIEN,3)=DGCDIS("PERM",SUB)
|
---|
| 68 | . S FDB(2.399,HIEN,.01)=$$NOW^XLFDT
|
---|
| 69 | I SUCCESS D
|
---|
| 70 | . N SUBFDA,SUBFILE
|
---|
| 71 | . S SUCCESS=$$DELETE^DGENCDA1(DFN)
|
---|
| 72 | . Q:'SUCCESS
|
---|
| 73 | . D FILE^DIE("K","FDA","DGCDERR")
|
---|
| 74 | . I $G(DIERR) D Q
|
---|
| 75 | . . S ERROR="FILEMAN UNABLE TO PERFORM UPDATE"
|
---|
| 76 | . . S SUCCESS=0
|
---|
| 77 | . . D ERRDISP^DGENCDA1(2)
|
---|
| 78 | . S SUBFILE=""
|
---|
| 79 | . S ERROR="FILEMAN UPDATE FAILED FOR "
|
---|
| 80 | . F S SUBFILE=$O(FDB(SUBFILE)) Q:SUBFILE="" D Q:'SUCCESS
|
---|
| 81 | . . N IEN,NODE,ITEM
|
---|
| 82 | . . S IEN=""
|
---|
| 83 | . . F ITEM=0:1 S IEN=$O(FDB(SUBFILE,IEN)) Q:'IEN D Q:'SUCCESS
|
---|
| 84 | . . . N DIC,Y,DO,DD,DINUM,DA,NODE
|
---|
| 85 | . . . I SUBFILE'=2.409 D
|
---|
| 86 | . . . . S NODE=SUBFILE-2
|
---|
| 87 | . . . . S DIC("P")=$P($G(^DD(2,SUBFILE-2,0)),"^",2)
|
---|
| 88 | . . . . S DA(1)=DFN
|
---|
| 89 | . . . E D
|
---|
| 90 | . . . . S NODE=".399,"_$P(IEN,",",2)_",1"
|
---|
| 91 | . . . . S DIC("P")=$P($G(^DD(2.399,.396,0)),"^",2)
|
---|
| 92 | . . . . S DA(1)=$P(IEN,",",2),DA(2)=DFN
|
---|
| 93 | . . . S DIC="^DPT("_DFN_","_NODE_","
|
---|
| 94 | . . . S DIC(0)="L"
|
---|
| 95 | . . . S X=FDB(SUBFILE,IEN,.01)
|
---|
| 96 | . . . S DINUM=+IEN
|
---|
| 97 | . . . D FILE^DICN
|
---|
| 98 | . . . I Y=-1 S ERROR="FAILED TO ADD ENTRY TO #"_SUBFILE,SUCCESS=0
|
---|
| 99 | . . Q:'SUCCESS
|
---|
| 100 | . . K SUBFDA
|
---|
| 101 | . . M SUBFDA(SUBFILE)=FDB(SUBFILE)
|
---|
| 102 | . . D FILE^DIE("K","SUBFDA","DGCDERR")
|
---|
| 103 | . . I $G(DIERR) D
|
---|
| 104 | . . . S ERROR=ERROR_" #"_SUBFILE
|
---|
| 105 | . . . S SUCCESS=0
|
---|
| 106 | . . . D ERRDISP^DGENCDA1(SUBFILE)
|
---|
| 107 | . I SUCCESS S ERROR=""
|
---|
| 108 | D CLEAN^DILF
|
---|
| 109 | D UNLOCK^DGENCDA1(DFN)
|
---|
| 110 | Q SUCCESS
|
---|