1 | ONCOAIM ;Hines OIFO/GWB - CREATE ADDITIONAL PRIMARY RECORDS ;10/1/93
|
---|
2 | ;;2.11;ONCOLOGY;**1,5,6,25,27,36,37,44,45,46**;Mar 07, 1995;Build 39
|
---|
3 | ;
|
---|
4 | EN D KILL
|
---|
5 | W @IOF
|
---|
6 | W !!?5,"******** ADD PRIMARY RECORD FOR THIS PATIENT********",!!
|
---|
7 | W:$D(ONCONM) ?5,"PATIENT: ",ONCONM
|
---|
8 | ;
|
---|
9 | ;Get next ACESSION NUMBER (165.5,.05)/SEQUENCE NUMBER (165.5,.06)
|
---|
10 | ;Loop thru 165.5 "D" cross-reference
|
---|
11 | ;Set up 2 ^TMP arrays: 1 for malignants, 1 for benigns
|
---|
12 | S (KKM,KKB)=0,AC=$P(ONCOP,U,5),ACN=$E(AC,1,4)_"-"_$E(AC,5,9),ACS=ACN
|
---|
13 | F KK=1:1 S ACSL=ACS,ACS=$O(^ONCO(165.5,"D",ACS)) S SQN=$P(ACS,"/",2) D Q:$P(ACS,"/")'=ACN
|
---|
14 | .Q:$P(ACS,"/")'=ACN
|
---|
15 | .S RECNUM=0
|
---|
16 | .F LL=1:1 S RECNUM=$O(^ONCO(165.5,"D",ACS,RECNUM)) Q:RECNUM="" D
|
---|
17 | ..S PRIMIEN=$P(^ONCO(165.5,RECNUM,0),U)
|
---|
18 | ..S PRIM=$P(^ONCO(164.2,PRIMIEN,0),U,1)
|
---|
19 | ..S SEQDIV=$$GET1^DIQ(165.5,RECNUM,2000)
|
---|
20 | ..I ((+SQN>0)&(+SQN<60))!(SQN="00")!(SQN=99) S KKM=KKM+1,^TMP($J,"MAL",KKM)=SQN_U_ACS_U_PRIM_U_RECNUM_U_SEQDIV
|
---|
21 | ..E S KKB=KKB+1,^TMP($J,"BEN",KKB)=SQN_U_ACS_U_PRIM_U_RECNUM_U_SEQDIV
|
---|
22 | ;Find last malignant/benign (if any) and determine SEQUENCE NUMBER
|
---|
23 | K LASTBEN,LASTMAL,NEXTBEN,NEXTMAL
|
---|
24 | S ALPHA=0 F S BEN=ALPHA,ALPHA=$O(^TMP($J,"BEN",ALPHA)) Q:ALPHA'>0
|
---|
25 | S NUM=0 F S MAL=NUM,NUM=$O(^TMP($J,"MAL",NUM)) Q:NUM'>0
|
---|
26 | S LASTBEN=$P($G(^TMP($J,"BEN",BEN)),U,1)
|
---|
27 | S LASTMAL=$P($G(^TMP($J,"MAL",MAL)),U,1)
|
---|
28 | S NEXTBEN=$S(LASTBEN=60:62,LASTBEN'="":LASTBEN+1,1:60)
|
---|
29 | S NEXTMAL=$S(LASTMAL'="":LASTMAL+1,1:"NULL")
|
---|
30 | S NEXTMAL=$S(NEXTMAL=1!(NEXTMAL>99):2,NEXTMAL="NULL":"00^99",1:NEXTMAL)
|
---|
31 | S NEXTMAL=$S($L(NEXTMAL)<2:"0"_NEXTMAL,1:NEXTMAL)
|
---|
32 | ;
|
---|
33 | W !!?5,"ACCESSION NUMBER: ",ACN
|
---|
34 | ;
|
---|
35 | PROMPT S DEF=$S(NEXTMAL["00":"00",1:NEXTMAL)
|
---|
36 | K DIR S DIR(0)="F^2:2",DIR("A")=" SEQUENCE NUMBER.",DIR("B")=DEF
|
---|
37 | S DIR("?")="Enter the next SEQUENCE NUMBER. Enter ?? for additional HELP"
|
---|
38 | S DIR("??")="^D HLP^ONCOAIM2" D ^DIR I "^^"[Y D KILL Q
|
---|
39 | I (Y'?2N)!((Y>88)&(Y<99)) W " Allowable Values: 00-88, 99" G PROMPT
|
---|
40 | S DIEN=ACN_"/"_Y
|
---|
41 | S SN=Y,SEQ=SN,AY=$E(DT,1)+17,AY=AY_$E(DT,2,3)
|
---|
42 | I SN="02",$D(^TMP($J,"MAL",1)),$P(^TMP($J,"MAL",1),U,1)="00" D
|
---|
43 | .S ACS=$P(^TMP($J,"MAL",1),U,2)
|
---|
44 | .S REC00=$P(^TMP($J,"MAL",1),U,4)
|
---|
45 | .W !!?5,"You are adding the second malignant or in-situ primary for this patient"
|
---|
46 | .W !!?5,ACS," ","will be changed to ",ACN,"/01",!
|
---|
47 | I SN="02",$D(^TMP($J,"MAL",2)),$P(^TMP($J,"MAL",2),U,1)'="01" D
|
---|
48 | .S REC002=$P(^TMP($J,"MAL",2),U,4)
|
---|
49 | I SN>59,SN<88,SN'=NEXTBEN W ?32,"Next Non-Malignant SEQUENCE NUMBER is",NEXTBEN G PROMPT
|
---|
50 | I SN=62,$D(^TMP($J,"BEN",1)),$P(^TMP($J,"BEN",1),U)=60 D
|
---|
51 | .S ACS=$P(^TMP($J,"BEN",1),U,2)
|
---|
52 | .S REC00=$P(^TMP($J,"BEN",1),U,4)
|
---|
53 | .W !!?5,"You are adding the second Non-Malignant primary for this patient"
|
---|
54 | .W !!?5,ACS," ","will be changed to ",ACN,"/61",!
|
---|
55 | ;
|
---|
56 | LOOK2 ;Select Primary Site
|
---|
57 | K DIC
|
---|
58 | S DIC="^ONCO(164.2,",DIC(0)="AEQM"
|
---|
59 | S DIC("A")=" Select Primary 'SITE/GP': "
|
---|
60 | S DIC("S")="I '$P(^(0),U,3)"
|
---|
61 | D ^DIC K DIC G EX:Y<0
|
---|
62 | S (XX,X,ONCOSIT)=+Y,ONCOPN=$P(Y,U,2),XD0=ONCOD0
|
---|
63 | D SEX^ONCOCKI G LOOK2:'$D(X)
|
---|
64 | K DIR
|
---|
65 | S DIR("A")=" Ok to add:",DIR("B")="Y",DIR(0)="Y" D ^DIR
|
---|
66 | G CR:Y,EN:Y=0 Q
|
---|
67 | ;
|
---|
68 | CR ;Create Primary
|
---|
69 | K DIC,DO,DTOUT
|
---|
70 | W !,?5,"Creating another primary record for ",ONCONM_" "_ACN_"..."
|
---|
71 | S DIC="^ONCO(165.5,",X=ONCOSIT,DIC(0)="Z"
|
---|
72 | S DIC("DR")="2000////^S X=DUZ(2)"
|
---|
73 | D FILE^DICN K DIC,X G EX:Y<0
|
---|
74 | S ONCOD0P=+Y
|
---|
75 | S $P(^ONCO(165.5,+Y,0),U,2)=ONCOD0,$P(^(7),U,2)=0
|
---|
76 | S ^ONCO(165.5,"C",ONCOD0,ONCOD0P)=""
|
---|
77 | S ACAY=$E(DT,1)+17_$E(DT,2,3)
|
---|
78 | L +^ONCO(165.5,ONCOD0P,0)
|
---|
79 | S DIE="^ONCO(165.5,"
|
---|
80 | S DR="W !;.05////^S X=AC;.06////^S X=SEQ;.07//^S X=ACAY"
|
---|
81 | S ACN=AC_"/"_SEQ,DA=ONCOD0P
|
---|
82 | D ^DIE
|
---|
83 | L -^ONCO(165.5,ONCOD0P,0)
|
---|
84 | G PID:$D(Y)=0 D KLN G EX
|
---|
85 | ;
|
---|
86 | PID ;Continue defining Primary Record
|
---|
87 | I SN="02",$D(^TMP($J,"MAL",1)),$P(^TMP($J,"MAL",1),U,1)="00" S UPDATE="01" D UPDT
|
---|
88 | I SN=62,$D(^TMP($J,"BEN",1)),$P(^TMP($J,"BEN",1),U,1)=60 S UPDATE=61 D UPDT
|
---|
89 | S ONCOACN=AC_"/"_SEQ,Y=1 D KILL Q
|
---|
90 | ;
|
---|
91 | UPDT ;Update 00 to 01, update 60 to 61
|
---|
92 | S SN=UPDATE,DIE="^ONCO(165.5,",DA=REC00,DR=".06///^S X=SN"
|
---|
93 | D ^DIE S D0=ONCOD0P
|
---|
94 | I $D(REC002) S SN=UPDATE,DIE="^ONCO(165.5,",DA=REC002,DR=".06///^S X=SN" D ^DIE S D0=ONCOD0P
|
---|
95 | W !!?5,"The following up-dating has occurred:",!! D SDA^ONCOCOM H 2
|
---|
96 | Q
|
---|
97 | ;
|
---|
98 | KLN ;KILL entry
|
---|
99 | S DA=ONCOD0P,DIK="^ONCO(165.5," D ^DIK,KILL
|
---|
100 | R !?5,"<ENTRY DELETED> - press RETURN to continue->",DA:DTIME
|
---|
101 | Q:'$T!(DA=U)
|
---|
102 | W !
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | KILL ;KILL variables
|
---|
106 | K AC,ACAY,ACN,ACS,ACSL,AY,DA,DIC,DIE,DIK,DIR,D0,DR,DUOUT,DTOUT
|
---|
107 | K KK,KKM,KKB,REC00,SN,SEQ,X,XX,XD0
|
---|
108 | K ALPHA,BEN,LASTBEN,LASTMAL,MAL,NEXTBEN,NEXTMAL
|
---|
109 | K NUM,PRIM,PRIMIEN,RECNUM,SQN,UPDATE
|
---|
110 | K ^TMP($J,"BEN"),^TMP($J,"MAL")
|
---|
111 | Q
|
---|
112 | ;
|
---|
113 | EX ;Exit
|
---|
114 | D KILL S Y=0
|
---|
115 | Q
|
---|