| 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 |  ;;
 | 
|---|