[613] | 1 | RMIMU ;WPB/JLTP ; FUNCTIONAL INDEPENDENCE UTILITIES ; 14-AUG-2002
|
---|
| 2 | ;;1.0;FUNCTIONAL INDEPENDENCE;;Apr 15, 2003
|
---|
| 3 | A(X) ; Add New Record to FIM Database
|
---|
| 4 | N AD,CASE,DA,DFN,DIE,DOB,DR,FAC,FACI,I,IFN,IG,OD,OK,OP,TYP
|
---|
| 5 | S CASE=+X,X=$P(X,U,2,9),OK=1 F I=1:1:7 I $P(X,U,I)="" S OK=0 Q
|
---|
| 6 | I 'OK Q $$ERR(-1)
|
---|
| 7 | S DFN=+X,SSN=$P(X,U,2),DOB=$P(X,U,3),FAC=$P(X,U,4),TYP=$P(X,U,5)
|
---|
| 8 | S IG=$P(X,U,6),OD=$P(X,U,7),AD=$P(X,U,8),OP="A"
|
---|
| 9 | S X=$$NFE(CASE),IFN=+X,CASE=$P(X,U,2) I X'>0 Q $$ERR(-2)
|
---|
| 10 | S X=IFN_U_CASE_U_DFN_U_SSN_U_DOB_U_FAC_U_TYP_U_IG_U_OD_U_AD
|
---|
| 11 | I '$$CF(X) Q $$ERR(-7)
|
---|
| 12 | Q IFN_U_CASE
|
---|
| 13 | NFE(C) ; Create Record and Return IFN
|
---|
| 14 | N CASE,DA,DIC,DIE,DINUM,DR,IFN,X,Y
|
---|
| 15 | S CASE=+$G(C)
|
---|
| 16 | L +^RMIM(783,0) S X=$P(^RMIM(783,0),U,4)+1
|
---|
| 17 | F Q:'$D(^RMIM(783,X,0)) S X=X+1
|
---|
| 18 | L +^RMIM(783.9,1,0)
|
---|
| 19 | I 'CASE D
|
---|
| 20 | .S CASE=$P(^RMIM(783.9,1,0),U,2)+1
|
---|
| 21 | .F Q:'$D(^RMIM(783,"CASE",CASE)) S CASE=CASE+1
|
---|
| 22 | S DIC="^RMIM(783,",DIC(0)="L",DIC("DR")=".02////^S X=CASE",DINUM=X
|
---|
| 23 | D FILE^DICN S IFN=+Y
|
---|
| 24 | S $P(^RMIM(783.9,1,0),U,2)=CASE
|
---|
| 25 | L -^RMIM(783,0) L -^RMIM(783.9,1,0)
|
---|
| 26 | Q IFN_U_CASE
|
---|
| 27 | E(X) ; Edit Existing Record
|
---|
| 28 | N CASE,CE,IFN,P,SENT,STATUS,X1
|
---|
| 29 | S CASE=+X,IFN=$O(^RMIM(783,"CASE",CASE,0)) Q:'IFN $$ERR(-6)
|
---|
| 30 | S X1=^RMIM(783,IFN,0),SENT=$P(X1,U,13)
|
---|
| 31 | F P=5,9:1:12 S:$P(X1,U,P) $P(X1,U,P)=$$FMTE^XLFDT($P(X1,U,P),5)
|
---|
| 32 | S CE=0 F P=2:1:9 I $P(X,U,P)'=$P(X1,U,P+1) S CE=1 Q
|
---|
| 33 | I 0,CE,SENT D Q STATUS
|
---|
| 34 | .S STATUS=$$D(X) Q:STATUS<1
|
---|
| 35 | .S STATUS=$$A(X)
|
---|
| 36 | S X=IFN_U_X
|
---|
| 37 | S STATUS=$$CF(X) I 'STATUS Q $$ERR(-7)
|
---|
| 38 | Q IFN_U_CASE
|
---|
| 39 | D(X) ; Mark Record for Deletion
|
---|
| 40 | Q 1 ;Not Currently Used... Maybe Later
|
---|
| 41 | N CASE,DA,DIE,DR,IFN
|
---|
| 42 | S CASE=+X,IFN=$O(^RMIM(783,"CASE",CASE,0)) Q:'IFN $$ERR(-6)
|
---|
| 43 | S DA=IFN,DIE="^RMIM(783,",DR=".12////^S X=DT;.14////D" D ^DIE
|
---|
| 44 | Q IFN_U_CASE
|
---|
| 45 | CF(VAL) ; File Critical Fields
|
---|
| 46 | N DA,DIE,DR,EDIT,FLD,LINE,PCE,VAAR,X,Y
|
---|
| 47 | S DR="" F LINE=1:1 S TEXT=$P($T(CRIT+LINE),";;",2) Q:TEXT="" D
|
---|
| 48 | .S FLD=$P(TEXT,U),PCE=$P(TEXT,U,2),VAR=$P(TEXT,U,3)
|
---|
| 49 | .I PCE S EDIT=FLD_"///"_$P(VAL,U,PCE)
|
---|
| 50 | .E I VAR]"" S EDIT=FLD_"///^S X="_VAR
|
---|
| 51 | .I ($L(DR)+$L(EDIT))>200 D
|
---|
| 52 | ..S DA=+VAL,DIE="^RMIM(783," D ^DIE S DR=""
|
---|
| 53 | .S:DR]"" DR=DR_";" S DR=DR_EDIT
|
---|
| 54 | I DR]"" S DA=+VAL,DIE="^RMIM(783," D ^DIE
|
---|
| 55 | Q 1
|
---|
| 56 | GC(RMIMR) ; Retrieve Critical Fields for a Case
|
---|
| 57 | N FLD,GN,GP,LINE,N,P,X
|
---|
| 58 | S IFN=+RMIMR(1)
|
---|
| 59 | F LINE=1:1 S TEXT=$P($T(CRIT+LINE),";;",2) Q:TEXT="" D
|
---|
| 60 | .S FLD=$P(TEXT,U),P=$P(TEXT,U,2) Q:'P
|
---|
| 61 | .S X=$P(^DD(783,+FLD,0),U,4),GN=$P(X,";"),GP=$P(X,";",2)
|
---|
| 62 | .I FLD'=+FLD S $P(RMIMR(1),U,P)=$$GET1^DIQ(783,IFN,+FLD) Q
|
---|
| 63 | .S X=$P($G(^RMIM(783,IFN,GN)),U,GP)
|
---|
| 64 | .I X S $P(RMIMR(1),U,P)=$$FMTE^XLFDT(X,5)
|
---|
| 65 | Q
|
---|
| 66 | ERR(E) ; Return Error Message
|
---|
| 67 | Q E_U_$P($T(ERMSG+$$ABS^XLFMTH(E)),";;",2)
|
---|
| 68 | ERMSG ; Error Messages
|
---|
| 69 | ;;Missing Required Data
|
---|
| 70 | ;;New Record Could Not Be Created
|
---|
| 71 | ;;Invalid Facility Number
|
---|
| 72 | ;;No Data Received
|
---|
| 73 | ;;Invalid Operation Code
|
---|
| 74 | ;;Case # Not Found
|
---|
| 75 | ;;Error Filing Critical Fields
|
---|
| 76 | ;;Error Retrieving Patient Data
|
---|
| 77 | ;;
|
---|
| 78 | CRIT ; Required Identifier Fields
|
---|
| 79 | ;;.03/^3
|
---|
| 80 | ;;.04/^4
|
---|
| 81 | ;;.05^5
|
---|
| 82 | ;;.06/^6
|
---|
| 83 | ;;.07/^7
|
---|
| 84 | ;;.08/^8
|
---|
| 85 | ;;.09^9
|
---|
| 86 | ;;.1^10
|
---|
| 87 | ;;.12/^^DT
|
---|
| 88 | ;;.14/^^OP
|
---|
| 89 | ;;.15/^^1
|
---|
| 90 | ;;
|
---|