| 1 | QAPADD1 ;557/THM-CREATE A NEW SURVEY, PART 2 [ 05/19/95  7:22 AM ]
 | 
|---|
| 2 |  ;;2.0;Survey Generator;;Jun 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;called by QAPADD
 | 
|---|
| 5 | LINES W @IOF,! S QAPHDR="Survey Name: "_SUBJ X QAPBAR S QAPHDR="(Adding Questions)" X QAPBAR
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | Q1 S INCMSG="W !,*7,""The increment must be numeric, non-decimal, between 1 and 10."",! H 2"
 | 
|---|
| 8 |  K DTOUT,DUOUT,SKIP X CLEOP W !,"Do you want help on question entry" S %=2 D YN^DICN G:$D(DTOUT) EXIT I %=1 K STOP D HELP^QAPUTIL1 I $D(STOP) G EXIT
 | 
|---|
| 9 |  I $D(%),%<0 S SKIP=1 G INCR
 | 
|---|
| 10 |  I $D(%Y),%Y["?" W !!,"Enter Y to see the help text or N to skip.   " H 2 G Q1
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | INCR I '$D(SKIP) S NUM=1 X CLEOP W !,"What increment value do you wish your questions use?   1 // " R X:DTIME S:X="" X=1 I '$T S STOP=1 G EXIT
 | 
|---|
| 13 |  I X["?" W !!,"Enter the number to skip between questions.",! X INCMSG
 | 
|---|
| 14 |  I X[U!(X["?")!($D(SKIP)) W !!,"If you exit without entering any questions, you will have to use the",!,"'Add/edit Individual Questions' option to add them without benefit",!
 | 
|---|
| 15 |  I X[U!(X["?")!($D(SKIP)) W "of automatic question numbering.",!! I X["?" W "Press RETURN  " R ANS:DTIME I '$T S (STOP,QAPOUT)=1 G EXIT
 | 
|---|
| 16 |  G:X["?" INCR
 | 
|---|
| 17 |  I X[U!($D(SKIP)) W "Is this OK" S %=2 D YN^DICN S:$D(DTOUT) STOP=1 G:%=1!($D(DTOUT))!($D(STOP)) EXIT G:%'=1&($D(SKIP)) LINES G:%'=1 INCR
 | 
|---|
| 18 |  I X<1!(X>10) W !! X INCMSG G INCR
 | 
|---|
| 19 |  K SKIP I NUM'=X S NUM=X
 | 
|---|
| 20 |  I X'?1.2N,X'>0 X INCMSG G INCR ;force non-decimal numbers
 | 
|---|
| 21 |  S INCREM=X,DA(1)=SURVEY K STOP,OUT,X
 | 
|---|
| 22 |  I '$D(^QA(748.25,DA(1),1,0)) S ^QA(748.25,DA(1),1,0)="^748.26I^0^0"
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | INCR1 K DTOUT,DUOUT,STOP,OUT
 | 
|---|
| 25 |  F  DO  G:$D(DTOUT)!($D(STOP)) EXIT G:$D(DUOUT)!($D(OUT)) FIN G:$D(STOP) EXIT
 | 
|---|
| 26 |  .;
 | 
|---|
| 27 | DIS .W @IOF,! S QAPHDR="Survey Name: "_SUBJ X QAPBAR S QAPHDR="Adding Questions" X QAPBAR
 | 
|---|
| 28 |  .D REORD
 | 
|---|
| 29 |  .X CLEOP W BLDON,"Type ^ to exit",BLDOFF W:$D(LSTNUM) ?45,"Last question number: ",LSTNUM W !!,">> Question number: ",NUM,"//"  R QAPQN:DTIME I '$T S STOP=1 Q
 | 
|---|
| 30 |  .I QAPQN="?" D HELPLKE^QAPUTIL1 Q:$D(STOP)  I QAPQN="" G DIS
 | 
|---|
| 31 |  .I QAPQN[U S OUT=1 Q
 | 
|---|
| 32 |  .I QAPQN="" S QAPQN=NUM
 | 
|---|
| 33 |  .S QAPQN=$TR(QAPQN,"cr","CR")
 | 
|---|
| 34 |  .I QAPQN'?1.3N,QAPQN'?1.3N1"."1.2N,QAPQN'?1"C",QAPQN'?1"R",+QAPQN'=QAPQN W !!,"Question number entry must be numeric,'R' to resequence",!,"the question numbers, or 'C' to copy a question.",*7 H 2 G DIS
 | 
|---|
| 35 |  .I QAPQN?1"R" W "    Resequence question numbers   " H 1 D R1^QAPRSEQ S NUM=LSTNUM+INCREM G DIS
 | 
|---|
| 36 |  .I QAPQN?1"C" D EN^QAPQCOPY DO  Q:$D(STOP)  G DIS
 | 
|---|
| 37 |  ..I NUM>QAPQN Q
 | 
|---|
| 38 |  ..I NUM<QAPQN S NUM=(QAPQN\1)+INCREM Q
 | 
|---|
| 39 |  ..I NUM=QAPQN S NUM=NUM+INCREM Q
 | 
|---|
| 40 |  .I +QAPQN<1!(+QAPQN>999) W !!,*7,"This number must be between 1 and 999.  " H 2 G DIS
 | 
|---|
| 41 |  .S DA=$O(^QA(748.25,"E",DA(1),QAPQN,0)) I DA="" S CHOICE="A"
 | 
|---|
| 42 |  .I DA]"" K DIR S DIR("A")="Select option",DIR(0)="S^C:Change;D:Delete",DIR("B")="Change" D ^DIR S CHOICE=Y S:$D(DTOUT) STOP=1 S:$D(DUOUT) OUT=1 I $D(STOP)!($D(OUT)) Q
 | 
|---|
| 43 |  .I CHOICE=""!(CHOICE[U) S OUT=1 Q
 | 
|---|
| 44 |  .S (DIC,DIE)="^QA(748.25,"_DA(1)_",1," X CLEOP
 | 
|---|
| 45 |  .I CHOICE="A" S DIC(0)="QM",DIC("DR")=".015////"_QAPQN_";.055;.05;.02;",X=+$P(^QA(748.25,DA(1),1,0),U,3)+1 K DO,DD D FILE^DICN S DA=+Y G:DA<0 DIS DO
 | 
|---|
| 46 |  ..I NUM>QAPQN Q
 | 
|---|
| 47 |  ..I NUM<QAPQN S NUM=(QAPQN\1)+INCREM Q
 | 
|---|
| 48 |  ..I NUM=QAPQN S NUM=NUM+INCREM Q
 | 
|---|
| 49 |  .I CHOICE="C" S DR=".015;.055;.05;.02;" D ^DIE I $D(DTOUT) S STOP=1 Q
 | 
|---|
| 50 |  .I CHOICE="C",$P(^QA(748.25,DA(1),1,DA,1),U)'="m" D KANS^QAPUTIL2 S DR=".025///@;.027///@;3///@;1///@;2///@" D ^DIE
 | 
|---|
| 51 |  .I CHOICE="A"!(CHOICE="C"),$P(^QA(748.25,DA(1),1,DA,1),U)="m" S DR=".025;I X'=""l"" S Y=""@1"";D KANS^QAPUTIL2;.027;3;1;2;S Y=""@99"";@1;.027///@;3///@;1///@;2///@;.03;@99" D ^DIE
 | 
|---|
| 52 |  .I CHOICE="D" DO  Q
 | 
|---|
| 53 | Q2 ..W !!,*7,"Are you sure you want to remove this question" S %=2 D YN^DICN
 | 
|---|
| 54 |  ..I $D(DTOUT) S STOP=1 Q
 | 
|---|
| 55 |  ..I $D(DUOUT) S QUIT=1 Q
 | 
|---|
| 56 |  ..I $D(%Y),%Y["?" W !!,"Entering Y will delete this question completely.",! G Q2
 | 
|---|
| 57 |  ..I %=1 S DIK="^QA(748.25,"_DA(1)_",1," D ^DIK W !!,">> Question removed <<  " H 2 Q
 | 
|---|
| 58 |  ..I %'=1 W !!,">> Nothing deleted <<" H 1
 | 
|---|
| 59 |  X CLEOP K DIR
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | FIN K DIR S DIR(0)="Y",DIR("A")="Are you finished entering questions for this survey"
 | 
|---|
| 62 |  S DIR("?",1)="Enter Y if you are finished or N if you have more questions"
 | 
|---|
| 63 |  S DIR("?",2)="to add.  If you answer Yes, any further questions will have"
 | 
|---|
| 64 |  S DIR("?",3)="to be put in via the 'Add/Edit Individual Questions' option"
 | 
|---|
| 65 |  S DIR("?")="because this option only for new surveys."
 | 
|---|
| 66 |  W !!,*7 D ^DIR S:$D(DTOUT) STOP=1 G:$D(DIRUT)!($D(STOP)) EXIT
 | 
|---|
| 67 |  I Y=0 G INCR1
 | 
|---|
| 68 |  G EN^QAPADD
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | EXIT Q  ;kill variables in calling program
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | REORD K DANS S LSTNUM="" F I=0:0 S I=$O(^QA(748.25,"E",SURVEY,I)) Q:I=""  F J=0:0 S J=$O(^QA(748.25,"E",SURVEY,I,J)) Q:J=""  S DANS(I,J)=I,DANS(I)=I,LSTNUM=I
 | 
|---|
| 73 |  Q
 | 
|---|