In one embodiment, a method of programming an implantable medical device (IMD) to provide therapeutic operations for a patient, comprises: receiving first programming data by the IMD from the external programming device to provide therapeutic operations according to at least one instance of settings data during a first communication session; receiving second programming data by the IMD from the external programming device to define limitations of reprogramming during one or more subsequent offline programming sessions; conducting a second communication session between the IMD with an external programming device when network connectivity is not available; receiving third programming data by IMD from the external programming device to provide therapeutic operations according to at least one instance of settings data during the second communication session; and determining whether the third programming data is permitted according to limitations defined by the second programming data.