Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ONCOAIC

ONCOAIC.m

Go to the documentation of this file.
  1. ONCOAIC ;HINES OIFO/GWB - Create first primary for a patient ;03/08/11
  1. ;;2.2;ONCOLOGY;**1,15,20**;Jul 31, 2013;Build 5
  1. ;
  1. EN ;Create first ONCOLOGY PRINMARY (165.5) record
  1. D KILL
  1. W @IOF
  1. W !!?5,"******** CREATE FIRST PRIMARY RECORD FOR THIS PATIENT*******",!!
  1. W:$D(ONCONM) ?5,"PATIENT: ",ONCONM
  1. ;
  1. LOOK1 ;Select first primary
  1. K DIC,ONCOPN,ONCOSIT
  1. S DIC="^ONCO(164.2,",DIC(0)="AEQM"
  1. S DIC("A")=" Select first Primary SITE/GP: "
  1. S DIC("S")="I '$P(^(0),U,3)"
  1. W ! D ^DIC K DIC G EX:Y<0
  1. S (XX,X,ONCOSIT)=+Y,ONCOPN=$P(Y,U,2),XD0=ONCOD0
  1. D SEX^ONCOCKI G LOOK1:'$D(X)
  1. ;
  1. A2 ;Create first ONCOLOGY PRIMARY (165.5) record for this patient
  1. L +(^ONCO(165.5,"ACAY"),^ONCO(165.5,"ACD"),^ONCO(165.5,"AF")):2
  1. I '$T G ASK
  1. W !
  1. K DIR,ONCOD0P
  1. S DIR("A")=" Ok to ADD:",DIR("B")="Yes",DIR(0)="Y" D ^DIR
  1. G A:Y,EN:Y=0 Q
  1. ;
  1. A K DO
  1. W !,?5,"Creating a new Primary record for ",ONCONM
  1. S DIC="^ONCO(165.5,",DIC(0)="Z"
  1. S X=ONCOSIT
  1. S DIC("DR")="2000////^S X=DUZ(2);236////^S X=DT;244////^S X=DUZ"
  1. D FILE^DICN
  1. K DIC,X G EX:Y<0
  1. S ONCOD0P=+Y
  1. S $P(^ONCO(165.5,+Y,0),U,2)=ONCOD0,$P(^(7),U,2)=0
  1. S ^ONCO(165.5,"C",ONCOD0,ONCOD0P)=""
  1. ;
  1. NAN ;New ACCESSION NUMBER (165.5,.05)
  1. K DIR
  1. S DIR(0)="N^:2099",DIR("A")=" ACCESSION YEAR"
  1. S DIR("B")=$E(DT,1)+17_$E(DT,2,3)
  1. S Y=$G(^ONCO(165.5,"ACAY"))
  1. W ! D ^DIR
  1. I Y[U!(Y="") S Y=ONCOD0P D KLN Q
  1. I $L(Y)'=4 W !!?5,"ACCESSION YEAR must be 4 digits!" G NAN
  1. S YR=Y,^ONCO(165.5,"ACAY")=YR,AC=$O(^ONCO(165.5,"ACD",Y,0))
  1. I AC'="" S AC=Y_AC,SEQ="00" G DIE
  1. NA S MR=YR_"00001",XR=999999999-((YR+1)_"00000")
  1. S NR=$O(^ONCO(165.5,"AF",XR))
  1. G AC:NR=""
  1. I NR<(999900002-MR) W !!?5,"SYSTEM appears out of numbers. Looking for unassigned ones" D FND G DIE:Y'="",EX
  1. I NR>(999999999-MR) S NR=""
  1. AC S AC=$S(NR="":YR_"00001",1:(1000000000-NR)),SEQ="00"
  1. S AC=$S($L(AC)=1:"00000"_AC,$L(AC)=2:"0000"_AC,$L(AC)=3:"000"_AC,$L(AC)=4:"00"_AC,$L(AC)=5:"0"_AC,1:AC)
  1. ;
  1. DIE S DIE="^ONCO(165.5,",DA=ONCOD0P
  1. S DR="W !,?5;.07///^S X=YR;.05//^S X=AC;.06//^S X=SEQ;.04;155;3;20;22.3;21"
  1. S ACN=AC_"/"_SEQ
  1. D ^DIE
  1. LOCK L -(^ONCO(165.5,"ACAY"),^ONCO(165.5,"ACD"),^ONCO(165.5,"AF")):1 G ASK:'$T,PID:$D(Y)=0 S Y=ONCOD0P D KLN G EX
  1. ;
  1. ASK W !
  1. S DIR("A")=" Another user is accessioning. Try Again",DIR(0)="Y"
  1. S DIR("B")="Y"
  1. S DIR("?")=" "
  1. S DIR("?",1)=" Another user is obtaining the next available ACCESSION NUMBER."
  1. S DIR("?",2)=" Please wait a few seconds and try again."
  1. D ^DIR G A2:Y=1
  1. Q
  1. ;
  1. FND ;Search for unused accession numbers
  1. S NR=YR_"00000",MR=(YR+1)_"00000"
  1. NR S NR=NR+1 I NR<MR G:$D(^ONCO(165.5,"AA",NR)) NR S AC=NR,SEQ="00",Y=1 Q
  1. W !!?10,"OUT of ACCESSION Numbers for "_YR S Y=""
  1. Q
  1. ;
  1. PID ;Continue defining Primary Record
  1. S ONCOACN=AC_"/"_SEQ,Y=1 D KILL Q
  1. ;
  1. KLN ;KILL entry
  1. S DA=+Y,DIK="^ONCO(165.5," D ^DIK,KILL
  1. R !?5,"<ENTRY DELETED> - press RETURN to continue->",DA:DTIME
  1. Q:'$T!(DA=U)
  1. W !
  1. Q
  1. ;
  1. KILL ;KILL variables
  1. K AC,ACN,DA,DIC,DIE,DIK,DIR,DR
  1. K MR,NR,SEQ,X,XX,XD0,XR,YR
  1. Q
  1. ;
  1. EX ;Exit
  1. D KILL S Y=0
  1. Q
  1. ;
  1. CLEANUP ;Cleanup
  1. K ONCOACN,ONCOD0,ONCONM,Y