@ -1,24 +1,32 @@
package com.emr.service.ipml ;
import com.emr.entity.ArchiveFlowRole ;
import org.springframework.stereotype.Service ;
import org.springframework.transaction.annotation.Transactional ;
import java.util.ArrayList ;
import java.util.List ;
@Service
@Transactional
public class EnumVerify {
/ * *
* 审 核 角 色 枚 举
* * /
public enum Checker
{
Dortor( 1 , "医生 ") ,
Nurse( 2 , "护士" ) ,
Generate ( 4 , "一般审核者" ) ;
* /
public enum Checker {
Dortor ( 1 , "医生" ) ,
Nurse( 2 , "护士 ") ,
Generate( 4 , "一般审核者" ) ;
private int code ;
private String name ;
private Checker ( int code , String name )
{
private Checker ( int code , String name ) {
this . code = code ;
this . name = name ;
}
@ -41,9 +49,9 @@ public class EnumVerify {
/ * *
* 流 转 节 点 角 色 枚 举
* * /
public enum DocState
{
* /
public enum DocState {
None ( 1 , "初始状态" ) ,
DortorSubmit ( 2 , "医生提交" ) ,
DortorCheck ( 4 , "医生质控员质控" ) ,
@ -56,6 +64,8 @@ public class EnumVerify {
NurseBack ( 512 , "护士退回" ) ,
CallBacked ( 1024 , "召回" ) ;
private int code ;
private String name ;
@ -91,81 +101,68 @@ public class EnumVerify {
//判断是否包含
public static boolean HasCurrentState ( int curState , DocState ds )
{
public static boolean HasCurrentState ( int curState , DocState ds ) {
return ( curState & ds . code ) ! = 0 ;
}
//获取当前步骤的显示名称, 可以考虑用JS实现
//根据当前状态获取获取状态中文逗号隔开的字符串
public static String GetStepName ( Integer curState , int role )
{
public static String GetStepName ( Integer curState , int role ) {
String doctorV = "" ;
String nurseV = "" ;
if ( ( Checker . Nurse . code ! = role ) ) {
if ( ! HasCurrentState ( curState , DortorSubmit ) & & ! HasCurrentState ( curState , DortorCheck ) & & ! HasCurrentState ( curState , DirectorCheck ) ) {
if ( ( Checker . Nurse . code ! = role ) ) {
if ( ! HasCurrentState ( curState , DortorSubmit ) & & ! HasCurrentState ( curState , DortorCheck ) & & ! HasCurrentState ( curState , DirectorCheck ) ) {
doctorV = None . name ;
}
}
if ( ( Checker . Dortor . code ! = role ) ) {
if ( ! HasCurrentState ( curState , NurseSubmit ) & & ! HasCurrentState ( curState , NurseCheck ) ) {
nurseV = None . name ;
if ( ( Checker . Dortor . code ! = role ) ) {
if ( ! HasCurrentState ( curState , NurseSubmit ) & & ! HasCurrentState ( curState , NurseCheck ) ) {
nurseV = None . name ;
}
}
if ( HasCurrentState ( curState , DortorSubmit ) & & ( Checker . Nurse . code ! = role ) )
{
if ( HasCurrentState ( curState , DortorSubmit ) & & ( Checker . Nurse . code ! = role ) ) {
doctorV = "医生已提交" ;
}
if ( HasCurrentState ( curState , DortorCheck ) & & ( Checker . Nurse . code ! = role ) )
{
if ( HasCurrentState ( curState , DortorCheck ) & & ( Checker . Nurse . code ! = role ) ) {
doctorV = "医生质控员已质控" ;
}
if ( HasCurrentState ( curState , DirectorCheck ) & & ( Checker . Nurse . code ! = role ) )
{
if ( HasCurrentState ( curState , DirectorCheck ) & & ( Checker . Nurse . code ! = role ) ) {
doctorV = "科主任已质控" ;
}
if ( HasCurrentState ( curState , NurseSubmit ) & & ( Checker . Dortor . code ! = role ) )
{
if ( HasCurrentState ( curState , NurseSubmit ) & & ( Checker . Dortor . code ! = role ) ) {
nurseV = "护士已提交" ;
}
if ( HasCurrentState ( curState , NurseCheck ) & & ( Checker . Dortor . code ! = role ) )
{
if ( HasCurrentState ( curState , NurseCheck ) & & ( Checker . Dortor . code ! = role ) ) {
nurseV = "护士质控员已质控" ;
}
String tmpV = "" ;
if ( HasCurrentState ( curState , DortorBack ) )
{
if ( Checker . Nurse . code ! = role ) {
if ( HasCurrentState ( curState , DortorBack ) ) {
if ( Checker . Nurse . code ! = role ) {
doctorV = "医生退回" ;
}
}
if ( HasCurrentState ( curState , NurseBack ) )
{
if ( Checker . Dortor . code ! = role ) {
if ( HasCurrentState ( curState , NurseBack ) ) {
if ( Checker . Dortor . code ! = role ) {
nurseV = "护士退回" ;
}
}
if ( Checker . Dortor . code = = role ) {
if ( Checker . Dortor . code = = role ) {
tmpV = doctorV ;
} else if ( Checker . Nurse . code = = role ) {
} else if ( Checker . Nurse . code = = role ) {
tmpV = nurseV ;
} else if ( Checker . Generate . code = = role ) {
} else if ( Checker . Generate . code = = role ) {
tmpV = doctorV + "," + nurseV ;
}
if ( HasCurrentState ( curState , HeadNurseCheck ) )
{
if ( HasCurrentState ( curState , HeadNurseCheck ) ) {
tmpV = "护士长已质控" ;
}
if ( HasCurrentState ( curState , MedicalRoomCheck ) )
{
if ( HasCurrentState ( curState , MedicalRoomCheck ) ) {
tmpV = "已归档" ;
}
if ( HasCurrentState ( curState , CallBacked ) )
{
if ( HasCurrentState ( curState , CallBacked ) ) {
tmpV = "病案室审核" ;
}
if ( tmpV . startsWith ( "," ) )
{
if ( tmpV . startsWith ( "," ) ) {
tmpV = tmpV . substring ( 1 ) ;
}
@ -174,52 +171,51 @@ public class EnumVerify {
/ * *
* 获 取 待 质 控 字 符
*
* @param curState
* @param role
* @return
* /
public static String GetCurrentStepName ( Integer curState , int role )
{
public static String GetCurrentStepName ( Integer curState , int role , String qualitySwitch ) {
String doctorV = "" ;
String nurseV = "" ;
if ( HasCurrentState ( curState , None ) | | HasCurrentState ( curState , DortorBack ) | | ! HasCurrentState ( curState , DortorSubmit ) )
{
if ( HasCurrentState ( curState , None ) | | HasCurrentState ( curState , DortorBack ) | | ! HasCurrentState ( curState , DortorSubmit ) ) {
doctorV = ",医生未质控" ;
}
if ( HasCurrentState( curState , DortorSubmit ) & & ! HasCurrentState ( curState , DortorCheck ) )
{
doctorV = ",医生质控员未质控" ;
}
if ( HasCurrentState ( curState , DortorCheck ) & & ! HasCurrentState ( curState , DirectorCheck ) )
{
doctorV = ",科主任未质控" ;
if ( qualitySwitch. equals ( "1" ) ) {
if ( HasCurrentState ( curState , DortorSubmit ) & & ! HasCurrentState ( curState , DortorCheck ) ) {
doctorV = ",医生质控员未质控" ;
}
if ( HasCurrentState ( curState , DortorCheck ) & & ! HasCurrentState ( curState , DirectorCheck ) ) {
doctorV = ",科主任未质控" ;
}
}
if ( HasCurrentState ( curState , None ) | | HasCurrentState ( curState , NurseBack ) | | ! HasCurrentState ( curState , NurseSubmit ) )
{
if ( HasCurrentState ( curState , None ) | | HasCurrentState ( curState , NurseBack ) | | ! HasCurrentState ( curState , NurseSubmit ) ) {
nurseV = ",护士未质控" ;
}
if ( HasCurrentState ( curState , NurseSubmit ) & & ! HasCurrentState ( curState , NurseCheck ) )
{
nurseV = ",护士质控员未质控" ;
if ( qualitySwitch . equals ( "1" ) ) {
if ( HasCurrentState ( curState , NurseSubmit ) & & ! HasCurrentState ( curState , NurseCheck ) ) {
nurseV = ",护士质控员未质控" ;
}
}
String tmpV = "" ;
if ( Checker . Dortor . code = = role ) {
if ( Checker . Dortor . code = = role ) {
tmpV = doctorV ;
} else if ( Checker . Nurse . code = = role ) {
} else if ( Checker . Nurse . code = = role ) {
tmpV = nurseV ;
} else if ( Checker . Generate . code = = role ) {
} else if ( Checker . Generate . code = = role ) {
tmpV = doctorV + nurseV ;
}
if ( HasCurrentState ( curState , DirectorCheck ) & & HasCurrentState ( curState , NurseCheck ) )
{
tmpV = ",护士长未质控" ;
if ( qualitySwitch . equals ( "1" ) ) {
if ( HasCurrentState ( curState , DirectorCheck ) & & HasCurrentState ( curState , NurseCheck ) ) {
tmpV = ",护士长未质控" ;
}
}
if ( HasCurrentState ( curState , HeadNurseCheck ) )
{
if ( HasCurrentState ( curState , HeadNurseCheck ) ) {
tmpV = ",病案室未质控" ;
}
if ( tmpV . startsWith ( "," ) )
{
if ( tmpV . startsWith ( "," ) ) {
tmpV = tmpV . substring ( 1 ) ;
}
@ -227,96 +223,82 @@ public class EnumVerify {
}
//获取当前步骤所包含的枚举值,可以返回多个值
public static ArrayList < Integer > GetCurrentStepContainStates ( int curState ) throws Exception
{
public static ArrayList < Integer > GetCurrentStepContainStates ( int curState ) throws Exception {
ArrayList < Integer > rets = new ArrayList < > ( ) ;
if ( HasCurrentState ( curState , DortorSubmit ) )
{
if ( HasCurrentState ( curState , DortorSubmit ) ) {
rets . add ( DortorSubmit . code ) ;
}
if ( HasCurrentState ( curState , DortorCheck ) )
{
if ( HasCurrentState ( curState , DortorCheck ) ) {
rets . add ( DortorCheck . code ) ;
}
if ( HasCurrentState ( curState , DirectorCheck ) )
{
if ( HasCurrentState ( curState , DirectorCheck ) ) {
rets . add ( DirectorCheck . code ) ;
}
if ( HasCurrentState ( curState , NurseSubmit ) )
{
if ( HasCurrentState ( curState , NurseSubmit ) ) {
rets . add ( NurseSubmit . code ) ;
}
if ( HasCurrentState ( curState , NurseCheck ) )
{
if ( HasCurrentState ( curState , NurseCheck ) ) {
rets . add ( NurseCheck . code ) ;
}
if ( HasCurrentState ( curState , HeadNurseCheck ) )
{
if ( HasCurrentState ( curState , HeadNurseCheck ) ) {
rets . add ( HeadNurseCheck . code ) ;
}
if ( HasCurrentState ( curState , MedicalRoomCheck ) )
{
if ( HasCurrentState ( curState , MedicalRoomCheck ) ) {
rets . add ( MedicalRoomCheck . code ) ;
}
if ( HasCurrentState ( curState , DortorBack ) )
{
if ( HasCurrentState ( curState , DortorBack ) ) {
rets . add ( DortorBack . code ) ;
}
if ( HasCurrentState ( curState , NurseBack ) )
{
if ( HasCurrentState ( curState , NurseBack ) ) {
rets . add ( NurseBack . code ) ;
}
if ( HasCurrentState ( curState , None ) )
{
if ( HasCurrentState ( curState , None ) ) {
rets . add ( None . code ) ;
}
return rets ;
}
//医生累加code
public static int GetNextStepCode_Dortor ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception
{
public static int GetNextStepCode_Dortor ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception {
//定义医生提交是否有效
int doctorSubmitEffective = 0 ;
//定义医生质控员是否有效
int dortorCheckEffective = 0 ;
//定义科主任审核是否有效
int directorCheckEffective = 0 ;
if ( null ! = flowRoles & & ! flowRoles . isEmpty ( ) ) {
if ( null ! = flowRoles & & ! flowRoles . isEmpty ( ) ) {
for ( ArchiveFlowRole flowRole : flowRoles ) {
if ( flowRole . getCode ( ) . equals ( DortorSubmit . code + "" ) ) {
if ( flowRole . getCode ( ) . equals ( DortorSubmit . code + "" ) ) {
doctorSubmitEffective = flowRole . getEffective ( ) ;
}
if ( flowRole . getCode ( ) . equals ( DortorCheck . code + "" ) ) {
if ( flowRole . getCode ( ) . equals ( DortorCheck . code + "" ) ) {
dortorCheckEffective = flowRole . getEffective ( ) ;
}
if ( flowRole . getCode ( ) . equals ( DirectorCheck . code + "" ) ) {
if ( flowRole . getCode ( ) . equals ( DirectorCheck . code + "" ) ) {
directorCheckEffective = flowRole . getEffective ( ) ;
}
//如果遍历完立即退出循环
if ( doctorSubmitEffective = = 1 & & dortorCheckEffective = = 1 & & directorCheckEffective = = 1 ) {
if ( doctorSubmitEffective = = 1 & & dortorCheckEffective = = 1 & & directorCheckEffective = = 1 ) {
break ;
}
}
}
if ( ! HasCurrentState ( curState , DortorSubmit ) & & doctorSubmitEffective = = 1 )
{
if ( ! HasCurrentState ( curState , DortorSubmit ) & & doctorSubmitEffective = = 1 ) {
//有退回情况, 需减去医生退回code再加当前提交
int state = curState ^ DortorBack . code | DortorSubmit . code ;
//无退回情况,^退回编码会更大,不需要^退回编码
if ( state > ( curState | DortorSubmit . code ) ) {
return curState | DortorSubmit . code ;
} else {
if ( state > ( curState | DortorSubmit . code ) ) {
return curState | DortorSubmit . code ;
} else {
//否则需要减去医生退回部分
return state ;
}
}
if ( ! HasCurrentState ( curState , DortorCheck ) & & dortorCheckEffective = = 1 )
{
return curState | DortorCheck . code ;
if ( ! HasCurrentState ( curState , DortorCheck ) & & dortorCheckEffective = = 1 ) {
return curState | DortorCheck . code ;
}
if ( ! HasCurrentState ( curState , DirectorCheck ) & & directorCheckEffective = = 1 )
{
return curState | DirectorCheck . code ;
if ( ! HasCurrentState ( curState , DirectorCheck ) & & directorCheckEffective = = 1 ) {
return curState | DirectorCheck . code ;
}
/ * if ( HasCurrentState ( curState , DirectorCheck ) )
{
@ -340,120 +322,108 @@ public class EnumVerify {
}
//护士累加code
public static int GetNextStepCode_Nurse ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception
{
public static int GetNextStepCode_Nurse ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception {
int nurseSubmitEffective = 0 ;
int nurseCheckEffective = 0 ;
if ( null ! = flowRoles & & ! flowRoles . isEmpty ( ) ) {
if ( null ! = flowRoles & & ! flowRoles . isEmpty ( ) ) {
for ( ArchiveFlowRole flowRole : flowRoles ) {
if ( flowRole . getCode ( ) . equals ( NurseSubmit . code + "" ) ) {
if ( flowRole . getCode ( ) . equals ( NurseSubmit . code + "" ) ) {
nurseSubmitEffective = flowRole . getEffective ( ) ;
}
if ( flowRole . getCode ( ) . equals ( NurseCheck . code + "" ) ) {
if ( flowRole . getCode ( ) . equals ( NurseCheck . code + "" ) ) {
nurseCheckEffective = flowRole . getEffective ( ) ;
}
//两者都遍历到立即退出循环
if ( nurseSubmitEffective = = 1 & & nurseCheckEffective = = 1 ) {
if ( nurseSubmitEffective = = 1 & & nurseCheckEffective = = 1 ) {
break ;
}
}
}
if ( ! HasCurrentState ( curState , NurseSubmit ) & & nurseSubmitEffective = = 1 )
{
if ( ! HasCurrentState ( curState , NurseSubmit ) & & nurseSubmitEffective = = 1 ) {
int state = curState ^ NurseBack . code | NurseSubmit . code ;
if ( state > ( curState | NurseSubmit . code ) ) {
if ( state > ( curState | NurseSubmit . code ) ) {
return curState | NurseSubmit . code ;
} else {
} else {
return state ;
}
}
if ( ! HasCurrentState ( curState , NurseCheck ) & & nurseCheckEffective = = 1 )
{
if ( ! HasCurrentState ( curState , NurseCheck ) & & nurseCheckEffective = = 1 ) {
return curState | NurseCheck . code ;
}
throw new Exception ( "护士提交的状态未知。" ) ;
}
//一般审核者累加code
public static int GetNextStepCode_Generate ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception
{
public static int GetNextStepCode_Generate ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception {
int headNurseCheckEffective = 0 ;
int medicalRoomCheckEffective = 0 ;
if ( null ! = flowRoles & & ! flowRoles . isEmpty ( ) ) {
if ( null ! = flowRoles & & ! flowRoles . isEmpty ( ) ) {
for ( ArchiveFlowRole flowRole : flowRoles ) {
if ( flowRole . getCode ( ) . equals ( HeadNurseCheck . code + "" ) ) {
if ( flowRole . getCode ( ) . equals ( HeadNurseCheck . code + "" ) ) {
headNurseCheckEffective = flowRole . getEffective ( ) ;
}
if ( flowRole . getCode ( ) . equals ( MedicalRoomCheck . code + "" ) ) {
if ( flowRole . getCode ( ) . equals ( MedicalRoomCheck . code + "" ) ) {
medicalRoomCheckEffective = flowRole . getEffective ( ) ;
}
}
}
if ( ! HasCurrentState ( curState , HeadNurseCheck ) & & headNurseCheckEffective = = 1 )
{
if ( ! HasCurrentState ( curState , HeadNurseCheck ) & & headNurseCheckEffective = = 1 ) {
return HeadNurseCheck . code ;
}
if ( ! HasCurrentState ( curState , MedicalRoomCheck ) & & medicalRoomCheckEffective = = 1 )
{
if ( ! HasCurrentState ( curState , MedicalRoomCheck ) & & medicalRoomCheckEffective = = 1 ) {
return MedicalRoomCheck . code ;
}
throw new Exception ( "一般工作者提交的状态未知。" ) ;
}
//累加当前code
public static int GetNextStepCode ( int curState , Integer isDortor , List < ArchiveFlowRole > flowRoles ) throws Exception
{
if ( curState = = None . code )
{
if ( isDortor = = Checker . Dortor . code )
{
public static int GetNextStepCode ( int curState , Integer isDortor , List < ArchiveFlowRole > flowRoles ) throws Exception {
if ( curState = = None . code ) {
if ( isDortor = = Checker . Dortor . code ) {
return DortorSubmit . code ;
}
if ( isDortor = = Checker . Nurse . code )
{
if ( isDortor = = Checker . Nurse . code ) {
return NurseSubmit . code ;
}
throw new Exception ( "初始状态,只有可能是医生或护士进行提交" ) ;
throw new Exception ( "初始状态,只有可能是医生或护士进行提交" ) ;
}
if ( isDortor = = Checker . Dortor . code )
{
return GetNextStepCode_Dortor ( curState , flowRoles ) ;
if ( isDortor = = Checker . Dortor . code ) {
return GetNextStepCode_Dortor ( curState , flowRoles ) ;
}
if ( isDortor = = Checker . Nurse . code )
{
return GetNextStepCode_Nurse ( curState , flowRoles ) ;
if ( isDortor = = Checker . Nurse . code ) {
return GetNextStepCode_Nurse ( curState , flowRoles ) ;
}
if ( isDortor = = Checker . Generate . code )
{
return GetNextStepCode_Generate ( curState , flowRoles ) ;
if ( isDortor = = Checker . Generate . code ) {
return GetNextStepCode_Generate ( curState , flowRoles ) ;
}
throw new Exception ( String . format ( "参数出错 %d" , curState ) ) ;
}
//医生退回
public static int backToDoctor ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception {
if ( curState ! = HeadNurseCheck . code & & curState ! = CallBacked . code ) {
public static int backToDoctor ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception {
if ( curState ! = HeadNurseCheck . code & & curState ! = CallBacked . code ) {
//不是病案室退回节点, 删除医生code
if ( HasCurrentState ( curState , DirectorCheck ) ) {
if ( HasCurrentState ( curState , DirectorCheck ) ) {
curState ^ = DirectorCheck . code ;
}
if ( HasCurrentState ( curState , DortorCheck ) ) {
if ( HasCurrentState ( curState , DortorCheck ) ) {
curState ^ = DortorCheck . code ;
}
if ( HasCurrentState ( curState , DortorSubmit ) ) {
if ( HasCurrentState ( curState , DortorSubmit ) ) {
curState ^ = DortorSubmit . code ;
}
if ( HasCurrentState ( curState , HeadNurseCheck ) ) {
if ( HasCurrentState ( curState , HeadNurseCheck ) ) {
curState ^ = HeadNurseCheck . code ;
}
} else {
} else {
curState = 0 ;
//是病案室退回节点, 累加护士code
for ( ArchiveFlowRole flowRole : flowRoles ) {
for ( ArchiveFlowRole flowRole : flowRoles ) {
if ( flowRole . getEffective ( ) = = 1 ) {
if ( flowRole . getCode ( ) . equals ( NurseSubmit . getCode ( ) + "" ) ) {
if ( flowRole . getCode ( ) . equals ( NurseSubmit . getCode ( ) + "" ) ) {
curState = curState | NurseSubmit . getCode ( ) ;
} else if ( flowRole . getCode ( ) . equals ( NurseCheck . getCode ( ) + "" ) ) {
} else if ( flowRole . getCode ( ) . equals ( NurseCheck . getCode ( ) + "" ) ) {
curState = curState | NurseCheck . getCode ( ) ;
}
}
@ -461,29 +431,30 @@ public class EnumVerify {
}
return curState | DortorBack . code ;
}
//护士退回
public static int backToNurse ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception {
if ( curState ! = HeadNurseCheck . code & & curState ! = CallBacked . code ) {
public static int backToNurse ( int curState , List < ArchiveFlowRole > flowRoles ) throws Exception {
if ( curState ! = HeadNurseCheck . code & & curState ! = CallBacked . code ) {
//不是病案室退回节点, 删除护士code
if ( HasCurrentState ( curState , NurseCheck ) ) {
if ( HasCurrentState ( curState , NurseCheck ) ) {
curState ^ = NurseCheck . code ;
}
if ( HasCurrentState ( curState , NurseSubmit ) ) {
if ( HasCurrentState ( curState , NurseSubmit ) ) {
curState ^ = NurseSubmit . code ;
}
if ( HasCurrentState ( curState , HeadNurseCheck ) ) {
if ( HasCurrentState ( curState , HeadNurseCheck ) ) {
curState ^ = HeadNurseCheck . code ;
}
} else {
} else {
curState = 0 ;
//是病案室退回节点,累加医生节点
for ( ArchiveFlowRole flowRole : flowRoles ) {
for ( ArchiveFlowRole flowRole : flowRoles ) {
if ( flowRole . getEffective ( ) = = 1 ) {
if ( flowRole . getCode ( ) . equals ( DortorSubmit . getCode ( ) + "" ) ) {
if ( flowRole . getCode ( ) . equals ( DortorSubmit . getCode ( ) + "" ) ) {
curState = curState | DortorSubmit . getCode ( ) ;
} else if ( flowRole . getCode ( ) . equals ( DortorCheck . getCode ( ) + "" ) ) {
} else if ( flowRole . getCode ( ) . equals ( DortorCheck . getCode ( ) + "" ) ) {
curState = curState | DortorCheck . getCode ( ) ;
} else if ( flowRole . getCode ( ) . equals ( DirectorCheck . getCode ( ) + "" ) ) {
} else if ( flowRole . getCode ( ) . equals ( DirectorCheck . getCode ( ) + "" ) ) {
curState = curState | DirectorCheck . getCode ( ) ;
}
}
@ -491,8 +462,9 @@ public class EnumVerify {
}
return curState | NurseBack . code ;
}
//医生护士全退回
public static int backToAll ( ) {
public static int backToAll ( ) {
return DortorBack . code | NurseBack . code ;
}
}